shred-api-client 2.2.2 → 2.2.4-rc.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/index.d.mts CHANGED
@@ -617,6 +617,7 @@ declare const PreferencesSchema$1: z.ZodObject<{
617
617
  primaryColor: z.ZodOptional<z.ZodString>;
618
618
  secondaryColor: z.ZodOptional<z.ZodString>;
619
619
  facebookLink: z.ZodOptional<z.ZodString>;
620
+ isFeedbackEnabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
620
621
  instagramLink: z.ZodOptional<z.ZodString>;
621
622
  bRoll: z.ZodOptional<z.ZodBoolean>;
622
623
  logo: z.ZodOptional<z.ZodString>;
@@ -624,6 +625,7 @@ declare const PreferencesSchema$1: z.ZodObject<{
624
625
  primaryColor?: string | undefined;
625
626
  secondaryColor?: string | undefined;
626
627
  facebookLink?: string | undefined;
628
+ isFeedbackEnabled?: boolean | undefined;
627
629
  instagramLink?: string | undefined;
628
630
  bRoll?: boolean | undefined;
629
631
  logo?: string | undefined;
@@ -631,6 +633,7 @@ declare const PreferencesSchema$1: z.ZodObject<{
631
633
  primaryColor?: string | undefined;
632
634
  secondaryColor?: string | undefined;
633
635
  facebookLink?: string | undefined;
636
+ isFeedbackEnabled?: boolean | undefined;
634
637
  instagramLink?: string | undefined;
635
638
  bRoll?: boolean | undefined;
636
639
  logo?: string | undefined;
@@ -646,6 +649,7 @@ declare const UserSchema: z.ZodObject<{
646
649
  primaryColor: z.ZodOptional<z.ZodString>;
647
650
  secondaryColor: z.ZodOptional<z.ZodString>;
648
651
  facebookLink: z.ZodOptional<z.ZodString>;
652
+ isFeedbackEnabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
649
653
  instagramLink: z.ZodOptional<z.ZodString>;
650
654
  bRoll: z.ZodOptional<z.ZodBoolean>;
651
655
  logo: z.ZodOptional<z.ZodString>;
@@ -653,6 +657,7 @@ declare const UserSchema: z.ZodObject<{
653
657
  primaryColor?: string | undefined;
654
658
  secondaryColor?: string | undefined;
655
659
  facebookLink?: string | undefined;
660
+ isFeedbackEnabled?: boolean | undefined;
656
661
  instagramLink?: string | undefined;
657
662
  bRoll?: boolean | undefined;
658
663
  logo?: string | undefined;
@@ -660,6 +665,7 @@ declare const UserSchema: z.ZodObject<{
660
665
  primaryColor?: string | undefined;
661
666
  secondaryColor?: string | undefined;
662
667
  facebookLink?: string | undefined;
668
+ isFeedbackEnabled?: boolean | undefined;
663
669
  instagramLink?: string | undefined;
664
670
  bRoll?: boolean | undefined;
665
671
  logo?: string | undefined;
@@ -682,6 +688,7 @@ declare const UserSchema: z.ZodObject<{
682
688
  primaryColor?: string | undefined;
683
689
  secondaryColor?: string | undefined;
684
690
  facebookLink?: string | undefined;
691
+ isFeedbackEnabled?: boolean | undefined;
685
692
  instagramLink?: string | undefined;
686
693
  bRoll?: boolean | undefined;
687
694
  logo?: string | undefined;
@@ -703,6 +710,7 @@ declare const UserSchema: z.ZodObject<{
703
710
  primaryColor?: string | undefined;
704
711
  secondaryColor?: string | undefined;
705
712
  facebookLink?: string | undefined;
713
+ isFeedbackEnabled?: boolean | undefined;
706
714
  instagramLink?: string | undefined;
707
715
  bRoll?: boolean | undefined;
708
716
  logo?: string | undefined;
package/dist/index.d.ts CHANGED
@@ -617,6 +617,7 @@ declare const PreferencesSchema$1: z.ZodObject<{
617
617
  primaryColor: z.ZodOptional<z.ZodString>;
618
618
  secondaryColor: z.ZodOptional<z.ZodString>;
619
619
  facebookLink: z.ZodOptional<z.ZodString>;
620
+ isFeedbackEnabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
620
621
  instagramLink: z.ZodOptional<z.ZodString>;
621
622
  bRoll: z.ZodOptional<z.ZodBoolean>;
622
623
  logo: z.ZodOptional<z.ZodString>;
@@ -624,6 +625,7 @@ declare const PreferencesSchema$1: z.ZodObject<{
624
625
  primaryColor?: string | undefined;
625
626
  secondaryColor?: string | undefined;
626
627
  facebookLink?: string | undefined;
628
+ isFeedbackEnabled?: boolean | undefined;
627
629
  instagramLink?: string | undefined;
628
630
  bRoll?: boolean | undefined;
629
631
  logo?: string | undefined;
@@ -631,6 +633,7 @@ declare const PreferencesSchema$1: z.ZodObject<{
631
633
  primaryColor?: string | undefined;
632
634
  secondaryColor?: string | undefined;
633
635
  facebookLink?: string | undefined;
636
+ isFeedbackEnabled?: boolean | undefined;
634
637
  instagramLink?: string | undefined;
635
638
  bRoll?: boolean | undefined;
636
639
  logo?: string | undefined;
@@ -646,6 +649,7 @@ declare const UserSchema: z.ZodObject<{
646
649
  primaryColor: z.ZodOptional<z.ZodString>;
647
650
  secondaryColor: z.ZodOptional<z.ZodString>;
648
651
  facebookLink: z.ZodOptional<z.ZodString>;
652
+ isFeedbackEnabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
649
653
  instagramLink: z.ZodOptional<z.ZodString>;
650
654
  bRoll: z.ZodOptional<z.ZodBoolean>;
651
655
  logo: z.ZodOptional<z.ZodString>;
@@ -653,6 +657,7 @@ declare const UserSchema: z.ZodObject<{
653
657
  primaryColor?: string | undefined;
654
658
  secondaryColor?: string | undefined;
655
659
  facebookLink?: string | undefined;
660
+ isFeedbackEnabled?: boolean | undefined;
656
661
  instagramLink?: string | undefined;
657
662
  bRoll?: boolean | undefined;
658
663
  logo?: string | undefined;
@@ -660,6 +665,7 @@ declare const UserSchema: z.ZodObject<{
660
665
  primaryColor?: string | undefined;
661
666
  secondaryColor?: string | undefined;
662
667
  facebookLink?: string | undefined;
668
+ isFeedbackEnabled?: boolean | undefined;
663
669
  instagramLink?: string | undefined;
664
670
  bRoll?: boolean | undefined;
665
671
  logo?: string | undefined;
@@ -682,6 +688,7 @@ declare const UserSchema: z.ZodObject<{
682
688
  primaryColor?: string | undefined;
683
689
  secondaryColor?: string | undefined;
684
690
  facebookLink?: string | undefined;
691
+ isFeedbackEnabled?: boolean | undefined;
685
692
  instagramLink?: string | undefined;
686
693
  bRoll?: boolean | undefined;
687
694
  logo?: string | undefined;
@@ -703,6 +710,7 @@ declare const UserSchema: z.ZodObject<{
703
710
  primaryColor?: string | undefined;
704
711
  secondaryColor?: string | undefined;
705
712
  facebookLink?: string | undefined;
713
+ isFeedbackEnabled?: boolean | undefined;
706
714
  instagramLink?: string | undefined;
707
715
  bRoll?: boolean | undefined;
708
716
  logo?: string | undefined;
package/dist/index.js CHANGED
@@ -1683,6 +1683,7 @@ var PreferencesSchema2 = import_zod10.z.object({
1683
1683
  primaryColor: import_zod10.z.string().optional(),
1684
1684
  secondaryColor: import_zod10.z.string().optional(),
1685
1685
  facebookLink: import_zod10.z.string().optional(),
1686
+ isFeedbackEnabled: import_zod10.z.boolean().default(true).optional(),
1686
1687
  instagramLink: import_zod10.z.string().optional(),
1687
1688
  bRoll: import_zod10.z.boolean().optional(),
1688
1689
  logo: import_zod10.z.string().optional()
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/util/HTTPClient.ts","../src/model/notification/index.ts","../src/model/notification/Notification.schema.ts","../src/model/notification/Notification.api.ts","../src/api/Notification.api.ts","../src/api/Prompt.api.ts","../src/api/Subscription.api.ts","../src/api/Tenant.api.ts","../src/util/parseQuery.ts","../src/api/User.api.ts","../src/api/Track.api.ts","../src/model/email/index.ts","../src/model/email/Email.schema.ts","../src/model/email/Email.api.ts","../src/api/Email.api.ts","../src/model/project/index.ts","../src/model/project/Project.schema.ts","../src/model/asset/index.ts","../src/model/asset/Asset.schema.ts","../src/model/project/Project.api.ts","../src/api/Project.api.ts","../src/model/goal/index.ts","../src/model/goal/Goal.schema.ts","../src/model/goal/Goal.api.ts","../src/api/Goal.api.ts","../src/model/app-config/AppConfig.api.ts","../src/api/AppConfig.api.ts","../src/model/note/index.ts","../src/model/note/Note.schema.ts","../src/model/note/Note.api.ts","../src/api/Note.api.ts","../src/model/Api.ts","../src/model/exceptions/index.ts","../src/model/exceptions/ShredException.ts","../src/model/exceptions/ConflictException.ts","../src/model/exceptions/InvalidArgumentException.ts","../src/model/exceptions/ResourceNotFoundException.ts","../src/model/exceptions/UnauthorizedException.ts","../src/model/exceptions/ForbiddenException.ts","../src/model/prompt/index.ts","../src/model/prompt/Prompt.schema.ts","../src/model/prompt/Prompt.api.ts","../src/model/tenant/index.ts","../src/model/tenant/Tenant.schema.ts","../src/model/subscription/Subscription.schema.ts","../src/model/tenant/Tenant.api.ts","../src/model/user/index.ts","../src/model/user/User.schema.ts","../src/model/user/User.api.ts","../src/model/subscription/index.ts","../src/model/subscription/Subscription.api.ts","../src/model/track/index.ts","../src/model/track/Track.schema.ts","../src/model/track/Track.api.ts","../src/model/core/index.ts"],"sourcesContent":["import { ShredAPI } from \"./model/Api\";\n\n//V2\nexport * as Exceptions from \"./model/exceptions\";\nexport * as Prompt from \"./model/prompt\";\nexport * as Asset from \"./model/asset\";\nexport * as Tenant from \"./model/tenant\";\nexport * as User from \"./model/user\";\nexport * as Subscription from \"./model/subscription\";\nexport * as Track from \"./model/track\";\nexport * as Email from \"./model/email\";\nexport * as Core from \"./model/core\";\nexport * as Project from \"./model/project\";\nexport * as Goal from \"./model/goal\";\nexport * as Notification from \"./model/notification\";\nexport * as Note from \"./model/note\";\n\nexport default ShredAPI;\n","import Environment from \"../model/Env\";\nimport Context from \"./../model/Context\";\nimport fetch from \"cross-fetch\";\n\nconst HOSTS = {\n prod: \"https://api.shreditapp.com\",\n staging: \"https://api.staging.shreditapp.com\",\n local: \"https://api.staging.shreditapp.com\",\n};\n\nconst OLD_HOSTS = {\n prod: \"https://api.shredmedia.co\",\n staging: \"https://api-staging.shredmedia.co\",\n local: \"https://api-staging.shredmedia.co\",\n};\n\nexport default class HTTPClient {\n async makeRequest(\n env: Environment,\n uri: string,\n method: string,\n data?: any,\n context?: Context | null,\n useLegacyApi?: boolean\n ): Promise<any> {\n const hostDict = useLegacyApi ? OLD_HOSTS : HOSTS;\n const host = hostDict[env] || hostDict.staging;\n const url = host + uri;\n\n const headers: Record<string, string> = {\n \"Content-Type\": useLegacyApi\n ? \"application/x-www-form-urlencoded\"\n : \"application/json\",\n };\n\n if (context?.token) {\n headers[\"Authorization\"] = `Bearer ${context.token}`;\n }\n\n if (context?.requestId) {\n headers[\"X-Request-ID\"] = context.requestId;\n }\n\n const fetchOptions: RequestInit = {\n method,\n headers,\n };\n\n if (method !== \"GET\" && data) {\n fetchOptions.body = useLegacyApi\n ? new URLSearchParams(data).toString()\n : JSON.stringify(data);\n }\n\n try {\n const response = await fetch(url, fetchOptions);\n\n if (!response.ok) {\n const errorText = await response.text();\n throw {\n status: response.status,\n statusText: response.statusText,\n body: errorText,\n };\n }\n\n try {\n return await response.json();\n } catch {\n return await response.text();\n }\n } catch (error: any) {\n let parsedBody: any = {};\n\n try {\n parsedBody = error.body ? JSON.parse(error.body) : {};\n } catch {\n parsedBody = { message: error.body || \"Unknown error\" };\n }\n\n throw {\n message: parsedBody.message || \"Unexpected error occurred\",\n original: error,\n };\n }\n }\n}\n","export type {\n Trigger,\n NotificationDetail,\n NotificationItem,\n RecurrenceRule,\n History,\n Criteria,\n} from \"./Notification.schema\";\n\nexport {\n TriggerSchema,\n NotificationDetailSchema,\n NotificationItemSchema,\n RecurrenceRuleSchema,\n CriteriaSchema,\n HistorySchema,\n Frequency,\n WeekDay,\n CriteriaType,\n TransportType,\n Status,\n} from \"./Notification.schema\";\n\nexport * from \"./Notification.api\";\n","import { z } from \"zod\";\n\nexport enum Frequency {\n DAILY = \"daily\",\n WEEKLY = \"weekly\",\n MONTHLY = \"monthly\",\n}\n\nexport enum WeekDay {\n MONDAY = 1,\n TUESDAY = 2,\n WEDNESDAY = 3,\n THURSDAY = 4,\n FRIDAY = 5,\n SATURDAY = 6,\n SUNDAY = 7,\n}\n\nexport enum CriteriaType {\n AllUsers = \"allUsers\",\n NoProjects = \"noProjects\",\n NoSubscription = \"noSubscription\",\n UsersFromTier = \"usersFromTier\",\n}\n\nexport enum TransportType {\n Push = \"push\",\n Email = \"email\",\n}\n\nexport enum Status {\n SCHEDULED = \"scheduled\",\n RUNNING = \"running\",\n COMPLETED = \"completed\",\n FAILED = \"failed\",\n PAUSED = \"paused\",\n CANCELLED = \"cancelled\",\n ACTIVE = \"active\",\n EXPIRED = \"expired\",\n}\n\nexport const NotificationItemSchema = z.object({\n id: z.string(),\n userId: z.string(),\n triggerId: z.string().optional(),\n title: z.string(),\n body: z.string(),\n status: z.enum([\"failed\", \"delivered\", \"deleted\"]),\n deliveredAt: z.number(),\n openedAt: z.number().optional(),\n deletedAt: z.number().optional(),\n cta: z.object({ label: z.string(), url: z.string().url() }).optional(),\n metadata: z.record(z.union([z.string(), z.number()])),\n error: z.string().optional(),\n});\n\nexport const NotificationDetailSchema = NotificationItemSchema.pick({\n title: true,\n body: true,\n userId: true,\n metadata: true,\n});\n\nexport const CriteriaSchema = z.object({\n type: z.nativeEnum(CriteriaType),\n params: z.record(z.any()),\n});\n\nexport const HistorySchema = z.object({\n batchId: z.string(),\n executedAt: z.number(),\n timezone: z.string(),\n status: z.enum([\"success\", \"failed\", \"info\", \"warn\"]),\n users: z.object({\n total: z.number(),\n success: z.number(),\n error: z.number(),\n }),\n errorList: z\n .array(\n z.object({\n token: z.string(),\n error: z.string(),\n })\n )\n .optional(),\n executionTimeDuration: z.number().optional(),\n});\n\nexport const RecurrenceRuleSchema = z.object({\n frequency: z.nativeEnum(Frequency),\n interval: z.number(),\n weekDays: z.array(z.nativeEnum(WeekDay)).optional(),\n dayOfMonth: z.number().optional(),\n endDate: z.string().optional(),\n ocurrences: z.number().optional(),\n});\n\nexport const TriggerSchema = z.object({\n id: z.string(),\n title: z.string(),\n description: z.string(),\n transportType: z.array(z.nativeEnum(TransportType)),\n notification: NotificationDetailSchema,\n history: z.array(HistorySchema).optional(),\n status: z.nativeEnum(Status),\n recurrence: RecurrenceRuleSchema.optional(),\n timezone: z.string().nullable().optional(),\n tenantIds: z.array(z.string()).optional(),\n executionDate: z.string().optional(),\n timeOfDay: z.string(),\n criteria: CriteriaSchema,\n nextExecution: z.number().optional(),\n createdAt: z.number().optional(),\n modified: z.number().optional(),\n});\n\nexport type NotificationItem = z.infer<typeof NotificationItemSchema>;\nexport type NotificationDetail = z.infer<typeof NotificationDetailSchema>;\nexport type Trigger = z.infer<typeof TriggerSchema>;\nexport type RecurrenceRule = z.infer<typeof RecurrenceRuleSchema>;\nexport type History = z.infer<typeof HistorySchema>;\nexport type Criteria = z.infer<typeof CriteriaSchema>;\n","import Context from \"../Context\";\nimport {\n Trigger,\n NotificationDetail,\n NotificationItem,\n} from \"./Notification.schema\";\nimport * as Core from \"../core/\";\n\nexport interface IAPI {\n getTriggers: (ctx: Context) => Promise<Core.APIResponse<Trigger>>;\n createTrigger: (ctx: Context, t: Trigger) => Promise<Trigger>;\n deleteTrigger: (ctx: Context, triggerId: string) => Promise<boolean>;\n updateTrigger: (\n ctx: Context,\n triggerId: string,\n trigger: Partial<Trigger>\n ) => Promise<Trigger>;\n push: (\n context: Context,\n notification: NotificationDetail\n ) => Promise<boolean>;\n getNotifications: (\n ctx: Context\n ) => Promise<Core.APIResponse<NotificationItem>>;\n markAsRead: (ctx: Context, id: string) => Promise<boolean>;\n clearNotifications: (ctx: Context) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n Create: { uri: \"/notifications/trigger/\", method: \"POST\" },\n List: { uri: \"/notifications/trigger/list/\", method: \"GET\" },\n Update: { uri: \"/notifications/trigger/:id/\", method: \"PUT\" },\n Delete: { uri: \"/notifications/trigger/:id/\", method: \"DELETE\" },\n Push: { uri: \"/notifications/push/\", method: \"POST\" },\n ListNotifications: { uri: \"/notifications/list/\", method: \"GET\" },\n MarkAsRead: { uri: \"/notifications/:id/read/\", method: \"PUT\" },\n ClearNotifications: { uri: \"/notifications/clear/\", method: \"DELETE\" },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as Notification from \"../model/notification\";\nimport * as Core from \"../model/core\";\nimport Context from \"../model/Context\";\n\nclass NotificationAPI implements Notification.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async clearNotifications(ctx: Context): Promise<boolean> {\n const endpointData = Notification.Endpoints.ClearNotifications;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async markAsRead(ctx: Context, id: string): Promise<boolean> {\n const endpointData = Notification.Endpoints.MarkAsRead;\n const endpoint = endpointData.uri.replace(\":id\", id);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async getNotifications(\n ctx: Context\n ): Promise<Core.APIResponse<Notification.NotificationItem>> {\n const endpointData = Notification.Endpoints.ListNotifications;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async deleteTrigger(ctx: Context, triggerId: string): Promise<boolean> {\n const endpointData = Notification.Endpoints.Delete;\n const endpoint = endpointData.uri.replace(\":id\", triggerId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async updateTrigger(\n ctx: Context,\n triggerId: string,\n t: Partial<Notification.Trigger>\n ): Promise<Notification.Trigger> {\n const endpointData = Notification.Endpoints.Update;\n const endpoint = endpointData.uri.replace(\":id\", triggerId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n t,\n ctx\n );\n return data;\n }\n\n async createTrigger(\n ctx: Context,\n t: Notification.Trigger\n ): Promise<Notification.Trigger> {\n const endpointData = Notification.Endpoints.Create;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n t,\n ctx\n );\n return data;\n }\n\n async getTriggers(\n ctx: Context\n ): Promise<Core.APIResponse<Notification.Trigger>> {\n const endpointInfo = Notification.Endpoints.List;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n return data;\n }\n\n async push(\n ctx: Context,\n notification: Notification.NotificationDetail\n ): Promise<boolean> {\n const endpointInfo = Notification.Endpoints.Push;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n notification,\n ctx\n );\n\n return data.success;\n }\n}\n\nexport default NotificationAPI;\n","import Context from \"../model/Context\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport { Prompt } from \"../\";\nimport Environment from \"../model/Env\";\n\nclass PromptAPI implements Prompt.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getPrompt(context: Context): Promise<Prompt.Entity> {\n const endpointInfo = Prompt.Endpoints.GetPrompt;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n context\n );\n return data;\n }\n\n async getScripts(context: Context): Promise<Prompt.Script[]> {\n const endpointInfo = Prompt.Endpoints.ListScript;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n context\n );\n return data;\n }\n\n async updateScript(\n c: Context,\n id: string,\n script: Partial<Prompt.Script>\n ): Promise<boolean> {\n const endpointData = Prompt.Endpoints.UpdateScript;\n const endpoint = endpointData.uri.replace(\":id\", id);\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n { ...script },\n c\n );\n return data;\n }\n\n async addScript(\n c: Context,\n script: Partial<Prompt.Script>\n ): Promise<Prompt.Script> {\n const endpointInfo = Prompt.Endpoints.AddScript;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n { ...script },\n c\n );\n return data;\n }\n\n async deleteScript(c: Context, id: string): Promise<boolean> {\n const endpointData = Prompt.Endpoints.DeleteScript;\n const endpoint = endpointData.uri.replace(\":id\", id);\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n c\n );\n return data;\n }\n}\n\nexport default PromptAPI;\n","import Context from \"../model/Context\";\nimport { Subscription } from \"../\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\n\nclass SubscriptionAPI implements Subscription.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getPortalUrl(ctx: Context): Promise<string> {\n const endpointInfo = Subscription.Endpoints.GetPortal;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data.url;\n }\n\n async updatePlan(ctx: Context, planId: string): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.UpdatePlan;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n { planId },\n ctx\n );\n\n return data;\n }\n\n async getProduct(\n id: string,\n context?: Context\n ): Promise<Subscription.Product> {\n const endpointInfo = Subscription.Endpoints.GetProduct;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}/${id}`,\n endpointInfo.method,\n null,\n context\n );\n\n return data;\n }\n async getCharges(ctx: Context): Promise<Subscription.Charge[]> {\n const endpointInfo = Subscription.Endpoints.GetCharges;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data;\n }\n\n async getSubscription(\n context: Context,\n userId?: string\n ): Promise<Subscription.Entity | null> {\n const endpointInfo = Subscription.Endpoints.GetActiveSubscription;\n let uri = endpointInfo.uri;\n let method = endpointInfo.method;\n\n if (userId) {\n const endpointData = Subscription.Endpoints.GetUserActiveSubscription;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n uri = endpoint;\n method = endpointData.method;\n }\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n uri,\n method,\n null,\n context\n );\n return data;\n }\n\n async charge(ctx: Context): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.Charge;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data.success;\n }\n\n async pause(ctx: Context): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.Pause;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n return data;\n }\n\n async resume(ctx: Context): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.Resume;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n return data;\n }\n\n async getProducts(ctx?: Context): Promise<Subscription.Product[]> {\n const endpointInfo = ctx\n ? Subscription.Endpoints.GetProductsByUser\n : Subscription.Endpoints.GetProducts;\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data;\n }\n\n async createCheckout(planId: string | null, ctx: Context): Promise<string> {\n const endpointInfo = Subscription.Endpoints.Checkout;\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n { planId },\n ctx\n );\n\n return data.url;\n }\n}\n\nexport default SubscriptionAPI;\n","import Context from \"../model/Context\";\nimport { Tenant } from \"../\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\n\nclass TenantAPI implements Tenant.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getByInviteCode(\n inviteCode: string,\n context?: Context\n ): Promise<Tenant.Entity | null> {\n const endpointInfo = Tenant.Endpoints.GetByInviteCode;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}/${inviteCode}`,\n endpointInfo.method,\n null,\n context\n );\n\n return data;\n }\n\n async getTenant(\n context: Context,\n tenantId?: string\n ): Promise<Tenant.Entity | null> {\n const endpointInfo = Tenant.Endpoints.GetTenant;\n let uri = endpointInfo.uri;\n let method = endpointInfo.method;\n\n if (tenantId) {\n const endpointData = Tenant.Endpoints.GetTenantById;\n const endpoint = endpointData.uri.replace(\":tenantId\", tenantId);\n uri = endpoint;\n method = endpointData.method;\n }\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n uri,\n method,\n null,\n context\n );\n\n return data;\n }\n\n async create(t: Tenant.Entity, context: Context): Promise<boolean> {\n const endpointInfo = Tenant.Endpoints.CreateTenant;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n { ...t },\n context\n );\n\n return data;\n }\n\n async list(context: Context): Promise<Tenant.Entity[]> {\n const endpointInfo = Tenant.Endpoints.ListAll;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n null,\n context\n );\n\n return data;\n }\n\n async update(\n tenantId: string,\n updateData: Pick<Tenant.Entity, \"preferences\">,\n context: Context\n ): Promise<boolean> {\n const endpointInfo = Tenant.Endpoints.UpdateTenant;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n { tenantId, data: updateData },\n context\n );\n\n return data;\n }\n}\n\nexport default TenantAPI;\n","import * as Core from \"../model/core\";\n\nexport const buildQueryString = <T>(\n query: Partial<Core.QueryOptions<T>>\n): string => {\n const params: Record<string, string[]> = {};\n\n if (query.perPage) {\n params[\"perPage\"] = [String(query.perPage)];\n }\n\n if (query.cursor !== undefined && query.cursor !== null) {\n params[\"cursor\"] = [String(query.cursor)];\n }\n\n if (query.orderBy) {\n params[\"orderBy\"] = [\n `${String(query.orderBy.field)}:${query.orderBy.direction}`,\n ];\n }\n\n if (query.wheres && query.wheres.length > 0) {\n params[\"wheres\"] = query.wheres.map(\n (w) => `${String(w.field)}:${String(w.operation)}:${String(w.value)}`\n );\n }\n\n const queryString = Object.entries(params)\n .flatMap(([key, values]) =>\n values.map((value) => `${key}=${encodeURIComponent(value)}`)\n )\n .join(\"&\");\n\n return queryString ? `?${queryString}` : \"\";\n};\n","import Context from \"../model/Context\";\nimport { User } from \"../\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as Core from \"../model/core\";\nimport { buildQueryString } from \"../util/parseQuery\";\n\nclass UserAPI implements User.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async search(\n ctx: Context,\n query: Core.QueryOptions<User.Entity>\n ): Promise<Core.APIResponse<User.Entity>> {\n const endpointData = User.Endpoints.Search;\n const qs = buildQueryString(query);\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}${qs}`,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async deleteAccount(ctx: Context): Promise<boolean> {\n const endpointData = User.Endpoints.DeleteAccount;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data.success;\n }\n\n async createIntegrationToken(ctx: Context): Promise<string> {\n const endpointData = User.Endpoints.CreateToken;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n ctx\n );\n return data.token;\n }\n\n async getIntegrationToken(ctx: Context): Promise<string | null> {\n const endpointData = User.Endpoints.GetIntegrationToken;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n ctx\n );\n return data.token;\n }\n\n async sendValidationCode(email: string): Promise<boolean> {\n const endpointData = User.Endpoints.SendValidationCode;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}?email=${email}`,\n endpointData.method\n );\n return data.success;\n }\n\n async changePassword(\n email: string,\n pass: string,\n passConfirm: string,\n code: number\n ): Promise<boolean> {\n const endpointData = User.Endpoints.ChangePassword;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n { email, pass, passConfirm, code }\n );\n return data.success;\n }\n\n async changeEmail(\n ctx: Context,\n email: string,\n code: number\n ): Promise<boolean> {\n const endpointData = User.Endpoints.ChangeEmail;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n { email, code },\n ctx\n );\n return data.success;\n }\n\n async confirmCode(\n email: string,\n code: number,\n keepCode?: boolean\n ): Promise<boolean> {\n const endpointData = User.Endpoints.ConfirmCode;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}?email=${email}&code=${code}&keepCode=${keepCode}`,\n endpointData.method\n );\n return data.success;\n }\n\n async isEmailAvaliable(email: string): Promise<boolean> {\n const endpointData = User.Endpoints.IsEmailAvaliable;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}?email=${email}`,\n endpointData.method\n );\n return data.isValid;\n }\n\n async update(\n context: Context,\n update: Partial<User.Update>\n ): Promise<boolean> {\n const endpointData = User.Endpoints.UpdateUser;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n { ...update },\n context\n );\n return data.isValid;\n }\n\n async getBindedUsers(context: Context): Promise<User.Entity[]> {\n const endpointData = User.Endpoints.GetBindedUsers;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async setup(context: Context): Promise<boolean> {\n const endpointData = User.Endpoints.Setup;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async authenticate(\n email: string,\n password: string,\n system: User.System\n ): Promise<string> {\n const endpointData = User.Endpoints.Authenticate;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n { system, email, password }\n );\n return data.token;\n }\n\n async createUser(\n email: string,\n name: string,\n password: string,\n passwordConfirmation: string,\n profession: string | null,\n invitationCode: string | null\n ) {\n const endpointData = User.Endpoints.CreateUser;\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n {\n email,\n name,\n password,\n passwordConfirmation,\n profession,\n invitationCode,\n },\n null\n );\n\n return data;\n }\n\n async getUserInfo(context: Context): Promise<User.Entity> {\n const endpointData = User.Endpoints.GetUserInfo;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n\n return data;\n }\n}\n\nexport default UserAPI;\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport { Track } from \"../\";\n\nclass TrackAPI implements Track.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async send(t: Track.Entity): Promise<boolean> {\n const endpointInfo = Track.Endpoints.Track;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n t\n );\n\n return data;\n }\n}\n\nexport default TrackAPI;\n","export type { Email as Entity } from \"./Email.schema\";\nexport { EmailSchema } from \"./Email.schema\";\nexport * from \"./Email.api\";\n","import { z } from \"zod\";\n\nexport const EmailSchema = z.object({\n to: z.string().email().optional(),\n subject: z.string(),\n body: z.string(),\n});\n\nexport type Email = z.infer<typeof EmailSchema>;\n","import Context from \"../Context\";\nimport { Email } from \"./Email.schema\";\n\nexport interface IAPI {\n send: (email: Email, ctx?: Context) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n SendEmail: {\n uri: \"/emails/public/send\",\n method: \"POST\",\n },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport Context from \"../model/Context\";\nimport * as Email from \"../model/email\";\n\nclass EmailAPI implements Email.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async send(email: Email.Entity, ctx?: Context): Promise<boolean> {\n const endpointInfo = Email.Endpoints.SendEmail;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n email,\n ctx\n );\n\n return data.result;\n }\n}\n\nexport default EmailAPI;\n","export type {\n Project as Entity,\n Approve,\n Style,\n ProjectCreation,\n SendToApproval,\n TimelineItem,\n Feedback,\n} from \"./Project.schema\";\n\nexport {\n ProjectSchema,\n Status,\n CaptionStyle,\n Styles,\n TimelineItemSchema,\n FeedbackSchema,\n} from \"./Project.schema\";\n\nexport * from \"./Project.api\";\n","import { z } from \"zod\";\nimport { AssetSchema } from \"../asset\";\n\nexport enum Status {\n SUBMITTED = 0,\n EDITING = 1,\n COMPLETED = 2,\n WAITING_APPROVE = 3,\n DENIED = 4,\n REVISIONING = 5,\n CANCELLED = 6,\n SCHEDULED = 7,\n}\n\nexport enum CaptionStyle {\n ONE_LINE = 1,\n ONE_LINE_EMOJIS = 2,\n TWO_LINES = 5,\n TWO_LINES_EMOJIS = 3,\n HOME_HIGHLIGHT = 4,\n}\n\nexport const StatusSchema = z.nativeEnum(Status);\nexport const CaptionStyleStatus = z.nativeEnum(CaptionStyle);\n\nexport const Styles: Style[] = [\n { value: CaptionStyle.ONE_LINE, label: \"One Line\" },\n { value: CaptionStyle.ONE_LINE_EMOJIS, label: \"One Line + Emojis\" },\n { value: CaptionStyle.TWO_LINES, label: \"Two Lines\" },\n { value: CaptionStyle.TWO_LINES_EMOJIS, label: \"Two Lines + Emojis\" },\n { value: CaptionStyle.HOME_HIGHLIGHT, label: \"Home Tour\" },\n];\n\nexport type Style = {\n value: CaptionStyle;\n label: string;\n};\n\nexport const TimelineItemSchema = z.object({\n status: z.nativeEnum(Status),\n title: z.string(),\n description: z.string(),\n timestamp: z.number(),\n metadata: z.record(z.any()),\n});\n\nexport const FeedbackSchema = z.object({\n criteria: z.array(\n z.object({\n id: z.string(),\n label: z.string(),\n score: z.number().min(0).max(10),\n comment: z.string().optional(),\n })\n ),\n comment: z.string().optional(),\n});\n\nexport const ProjectSchema = z.object({\n id: z.string(),\n title: z.string(),\n instructions: z.string(),\n submitMonth: z.string(),\n captionStyle: z.nativeEnum(CaptionStyle),\n finalVideoId: z.string().optional(),\n thumbnailUrl: z.string().optional(),\n modified: z.number(),\n feedback: FeedbackSchema.optional(),\n captionSuggestion: z.string().optional(),\n editorId: z.string().optional(),\n userId: z.string(),\n assets: z.array(AssetSchema).optional(),\n expirationTimestamp: z.number(),\n isFree: z.boolean().optional(),\n timeline: z.array(TimelineItemSchema),\n submitTimestamp: z.number(),\n tenantId: z.string().optional(),\n status: z.nativeEnum(Status),\n});\n\nexport type ProjectCreation = Pick<\n Project,\n \"title\" | \"instructions\" | \"captionStyle\" | \"assets\"\n>;\n\nexport type SendToApproval = {\n video: string;\n thumbnail: string;\n captionSuggestion: string;\n};\n\nexport type Approve = {\n scheduleTime?: number;\n captionSuggestion: string;\n feedback?: Feedback;\n};\n\nexport type Project = z.infer<typeof ProjectSchema>;\nexport type TimelineItem = z.infer<typeof TimelineItemSchema>;\nexport type Feedback = z.infer<typeof FeedbackSchema>;\n","export { AssetSchema } from \"./Asset.schema\";\nexport type { Asset as Entity } from \"./Asset.schema\";\n","import { z } from \"zod\";\n\nconst AssetSchema = z.object({\n assetId: z.string(),\n fileName: z.string(),\n extension: z.string(),\n fileSize: z.number(),\n assetUrl: z.string().url(),\n thumbnailUrl: z.string().url(),\n type: z.string(),\n duration: z.number().optional(),\n progress: z.number().optional(),\n error: z.string().optional(),\n authorId: z.string(),\n uploadedAt: z.number(),\n});\n\ntype Asset = z.infer<typeof AssetSchema>;\n\nexport { Asset, AssetSchema };\n","import Context from \"../Context\";\nimport {\n Project,\n ProjectCreation,\n SendToApproval,\n Approve,\n} from \"./Project.schema\";\nimport * as Core from \"../core\";\n\nexport interface IAPI {\n reorder: (\n context: Context,\n projectId: string,\n position: number\n ) => Promise<boolean>;\n find: (context: Context, projectId: string) => Promise<Project>;\n create: (context: Context, data: ProjectCreation) => Promise<Project>;\n review: (\n context: Context,\n projectId: string,\n revision: string\n ) => Promise<boolean>;\n cancel: (context: Context, projectId: string) => Promise<boolean>;\n list: (\n context: Context,\n query: Core.QueryOptions<Project>\n ) => Promise<Project[]>;\n start: (context: Context) => Promise<boolean>;\n sendToApproval: (\n context: Context,\n projectId: string,\n data: SendToApproval\n ) => Promise<boolean>;\n approve: (\n context: Context,\n projectId: string,\n data: Approve\n ) => Promise<boolean>;\n deny: (\n context: Context,\n projectId: string,\n denyFeedback: string,\n categories?: string[]\n ) => Promise<boolean>;\n unschedule: (context: Context, projectId: string) => Promise<boolean>;\n rollback: (context: Context, projectId: string) => Promise<boolean>;\n getNext: (context: Context, userId: string) => Promise<Project | null>;\n getUserHistory: (\n context: Context,\n userId: string\n ) => Promise<Core.APIResponse<Project>>;\n\n getPoolSize(context: Context): Promise<number>;\n\n permissions: {\n isEligibleForFreeProject(context: Context): Promise<boolean>;\n };\n}\n\nexport const Endpoints = {\n Reorder: { uri: \"/projects/reorder/\", method: \"POST\" },\n List: { uri: \"/projects/list\", method: \"GET\" },\n GetNext: { uri: \"/projects/:userId/next\", method: \"GET\" },\n CreateProject: { uri: \"/projects/create\", method: \"POST\" },\n FindOne: { uri: `/projects/:projectId/`, method: \"GET\" },\n GetGoals: { uri: `/projects/goals/list/`, method: \"GET\" },\n Review: { uri: \"/projects/:projectId/review/\", method: \"POST\" },\n Cancel: { uri: \"/projects/:projectId/cancel/\", method: \"DELETE\" },\n StartEdition: { uri: \"/projects/edition/start/\", method: \"PUT\" },\n SendToApproval: {\n uri: \"/projects/:projectId/sendToApproval/\",\n method: \"PUT\",\n },\n IsEligibleForFreeProject: {\n uri: \"/projects/free/allowed/\",\n method: \"GET\",\n },\n Approve: { uri: \"/projects/:projectId/approve/\", method: \"POST\" },\n Unschedule: { uri: \"/projects/:projectId/unschedule/\", method: \"POST\" },\n Rollback: { uri: \"/projects/:projectId/rollback/\", method: \"POST\" },\n Deny: { uri: \"/projects/:projectId/deny/\", method: \"POST\" },\n GetUserHistory: { uri: \"/projects/user/:userId/history/\", method: \"GET\" },\n GetPoolSize: { uri: \"/projects/pool/size/\", method: \"GET\" },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as Project from \"../model/project\";\nimport Context from \"../model/Context\";\nimport * as Core from \"../model/core\";\nimport { buildQueryString } from \"../util/parseQuery\";\n\nclass ProjectAPI implements Project.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getPoolSize(context: Context): Promise<number> {\n const endpointData = Project.Endpoints.GetPoolSize;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n return data.size;\n }\n\n async reorder(\n ctx: Context,\n projectId: string,\n position: number\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.Reorder;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n { projectId, position },\n ctx\n );\n\n return data.success;\n }\n\n permissions = {\n isEligibleForFreeProject: async (ctx: Context): Promise<boolean> => {\n const endpointData = Project.Endpoints.IsEligibleForFreeProject;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data.canCreate;\n },\n };\n\n async getNext(ctx: Context, userId: string): Promise<Project.Entity | null> {\n const endpointData = Project.Endpoints.GetNext;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async getUserHistory(\n context: Context,\n userId: string\n ): Promise<Core.APIResponse<Project.Entity>> {\n const endpointData = Project.Endpoints.GetUserHistory;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async find(context: Context, projectId: string): Promise<Project.Entity> {\n const endpointData = Project.Endpoints.FindOne;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async create(\n context: Context,\n createData: Project.ProjectCreation\n ): Promise<Project.Entity> {\n const endpointData = Project.Endpoints.CreateProject;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n createData,\n context\n );\n return data;\n }\n\n async review(ctx: Context, pId: string, revision: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Review;\n const endpoint = endpointData.uri.replace(\":projectId\", pId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n { revision },\n ctx\n );\n return data.success;\n }\n\n async cancel(ctx: Context, projectId: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Cancel;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data.success;\n }\n\n async list(\n context: Context,\n query: Core.QueryOptions<Project.Entity>\n ): Promise<Project.Entity[]> {\n const endpointData = Project.Endpoints.List;\n const qs = buildQueryString(query);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}${qs}`,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async deny(\n ctx: Context,\n pId: string,\n denyFB: string,\n categories?: string[]\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.Deny;\n const endpoint = endpointData.uri.replace(\":projectId\", pId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n { denyFeedback: denyFB, categories: categories || [] },\n ctx\n );\n return data.success;\n }\n\n async unschedule(context: Context, projectId: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Unschedule;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async rollback(context: Context, projectId: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Rollback;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async start(context: Context): Promise<boolean> {\n const endpointData = Project.Endpoints.StartEdition;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async approve(\n ctx: Context,\n pId: string,\n approve: Project.Approve\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.Approve;\n const endpoint = endpointData.uri.replace(\":projectId\", pId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n approve,\n ctx\n );\n return data.success;\n }\n\n async sendToApproval(\n context: Context,\n projectId: string,\n approval: Project.SendToApproval\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.SendToApproval;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n approval,\n context\n );\n return data.success;\n }\n}\n\nexport default ProjectAPI;\n","export type { Goal as Entity, DailyMilestone } from \"./Goal.schema\";\n\nexport { GoalSchema, DailyMilestoneSchema } from \"./Goal.schema\";\n\nexport * from \"./Goal.api\";\n","import { z } from \"zod\";\n\nexport const DailyMilestoneSchema = z.object({\n id: z.string(),\n date: z.string(),\n target: z.number(),\n progress: z.number(),\n});\n\nexport const GoalSchema = z.object({\n id: z.string(),\n editorId: z.string(),\n isoWeek: z.string(), // ex: \"2026-W27\"\n target: z.number(),\n progress: z.number(),\n createdAt: z.number(),\n dailyMilestones: z.array(DailyMilestoneSchema),\n});\n\nexport type DailyMilestone = z.infer<typeof DailyMilestoneSchema>;\nexport type Goal = z.infer<typeof GoalSchema>;\n","import Context from \"../Context\";\nimport { Goal } from \"./Goal.schema\";\n\nexport interface IAPI {\n getGoals: (context: Context) => Promise<Goal[]>;\n}\n\nexport const Endpoints = {\n GetGoals: { uri: `/projects/goals/list/`, method: \"GET\" },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport Context from \"../model/Context\";\nimport * as Goal from \"../model/goal\";\n\nclass GoalAPI implements Goal.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getGoals(context: Context): Promise<Goal.Entity[]> {\n const endpointData = Goal.Endpoints.GetGoals;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n}\n\nexport default GoalAPI;\n","export interface IAPI {\n version: () => Promise<string>;\n}\n\nexport const Endpoints = {\n Version: {\n uri: \"/app-config/public/version/latest\",\n method: \"GET\",\n },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as APPConfig from \"../model/app-config\";\n\nclass AppConfigAPI implements APPConfig.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async version(): Promise<string> {\n const endpointInfo = APPConfig.Endpoints.Version;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method\n );\n\n return data.version;\n }\n}\n\nexport default AppConfigAPI;\n","export { NoteSchema, NoteHistorySchema } from \"./Note.schema\";\nexport type { Note as Entity, NoteHistory } from \"./Note.schema\";\nexport * from \"./Note.api\";\n","import { z } from \"zod\";\nimport { AssetSchema } from \"../asset\";\n\nconst NoteHistorySchema = z.object({\n type: z.enum([\n \"created\",\n \"updated\",\n \"deleted\",\n \"asset-added\",\n \"asset-removed\",\n ]),\n actorEmail: z.string().email(),\n timestamp: z.number(),\n details: z.string().optional(),\n});\n\nconst NoteSchema = z.object({\n id: z.string(),\n userId: z.string(),\n authorEmail: z.string().email(),\n assets: z.array(AssetSchema),\n title: z.string(),\n content: z.string(),\n createdAt: z.number(),\n modified: z.number(),\n history: z.array(NoteHistorySchema).optional(),\n});\n\ntype Note = z.infer<typeof NoteSchema>;\ntype NoteHistory = z.infer<typeof NoteHistorySchema>;\n\nexport { NoteHistorySchema, NoteSchema, NoteHistory, Note };\n","import Context from \"../Context\";\nimport { Note } from \"./Note.schema\";\n\nexport interface IAPI {\n list: (c: Context, userId: string) => Promise<Note[]>;\n add: (c: Context, note: Partial<Note>) => Promise<Note>;\n update: (c: Context, id: string, script: Partial<Note>) => Promise<Note>;\n delete: (c: Context, id: string) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n GetNotes: {\n uri: \"/user-context/notes/user/:userId/\",\n method: \"GET\",\n },\n AddNote: {\n uri: \"/user-context/notes/\",\n method: \"PUT\",\n },\n DeleteNote: {\n uri: \"/user-context/notes/:id/\",\n method: \"DELETE\",\n },\n UpdateNote: {\n uri: \"/user-context/notes/:id/\",\n method: \"POST\",\n },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport Context from \"../model/Context\";\nimport * as Note from \"../model/note\";\n\nclass NoteAPI implements Note.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async list(c: Context, userId: string): Promise<Note.Entity[]> {\n const endpointData = Note.Endpoints.GetNotes;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n c\n );\n return data;\n }\n\n async add(c: Context, note: Partial<Note.Entity>): Promise<Note.Entity> {\n const endpointData = Note.Endpoints.AddNote;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n note,\n c\n );\n return data;\n }\n\n async update(\n c: Context,\n id: string,\n toUpdate: Partial<Note.Entity>\n ): Promise<Note.Entity> {\n const endpointData = Note.Endpoints.UpdateNote;\n const endpoint = endpointData.uri.replace(\":id\", id);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n toUpdate,\n c\n );\n return data;\n }\n\n async delete(c: Context, id: string): Promise<boolean> {\n const endpointData = Note.Endpoints.DeleteNote;\n const endpoint = endpointData.uri.replace(\":id\", id);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n c\n );\n return data;\n }\n}\n\nexport default NoteAPI;\n","import NotificationAPI from \"../api/Notification.api\";\nimport PromptAPI from \"../api/Prompt.api\";\nimport SubscriptionAPI from \"../api/Subscription.api\";\nimport TenantAPI from \"../api/Tenant.api\";\nimport UserAPI from \"../api/User.api\";\nimport TrackAPI from \"../api/Track.api\";\nimport EmailAPI from \"../api/Email.api\";\nimport ProjectAPI from \"../api/Project.api\";\nimport GoalAPI from \"../api/Goal.api\";\nimport AppConfigAPI from \"../api/AppConfig.api\";\nimport NoteAPI from \"../api/Note.api\";\n\nimport Environment from \"./Env\";\n\nimport * as Prompt from \"./../model/prompt\";\nimport * as Subscription from \"./../model/subscription\";\nimport * as User from \"./../model/user\";\nimport * as Tenant from \"./../model/tenant\";\nimport * as Track from \"./../model/track\";\nimport * as Email from \"./../model/email\";\nimport * as Project from \"./../model/project\";\nimport * as Goal from \"./../model/goal\";\nimport * as Notification from \"./../model/notification\";\nimport * as AppConfig from \"./../model/app-config\";\nimport * as Note from \"./../model/note\";\n\nexport class ShredAPI {\n user: User.IAPI;\n goal: Goal.IAPI;\n subscription: Subscription.IAPI;\n prompt: Prompt.IAPI;\n pushNotification: Notification.IAPI;\n email: Email.IAPI;\n tenant: Tenant.IAPI;\n app: AppConfig.IAPI;\n project: Project.IAPI;\n track: Track.IAPI;\n note: Note.IAPI;\n\n constructor(env: Environment) {\n this.user = new UserAPI(env);\n this.goal = new GoalAPI(env);\n this.prompt = new PromptAPI(env);\n this.subscription = new SubscriptionAPI(env);\n this.pushNotification = new NotificationAPI(env);\n this.email = new EmailAPI(env);\n this.tenant = new TenantAPI(env);\n this.project = new ProjectAPI(env);\n this.app = new AppConfigAPI(env);\n this.track = new TrackAPI(env);\n this.note = new NoteAPI(env);\n }\n}\n","import ConflictException from \"./ConflictException\";\nimport InvalidArgumentException from \"./InvalidArgumentException\";\nimport ResourceNotFoundException from \"./ResourceNotFoundException\";\nimport ShredException from \"./ShredException\";\nimport UnauthorizedException from \"./UnauthorizedException\";\nimport ForbiddenException from \"./ForbiddenException\";\n\nconst Exceptions = {\n ConflictException,\n InvalidArgumentException,\n ResourceNotFoundException,\n ShredException,\n UnauthorizedException,\n ForbiddenException,\n};\n\nexport default Exceptions;\n\nexport type {\n ConflictException,\n InvalidArgumentException,\n ResourceNotFoundException,\n ShredException,\n UnauthorizedException,\n ForbiddenException,\n};\n","export default class ShredException extends Error {\n public status: number;\n\n constructor(message: string, status: number) {\n super(message);\n this.name = \"ShredException\";\n this.status = status;\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class ConflictException extends ShredException {\n constructor(message: string) {\n super(message, 409);\n this.name = \"ConflictException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class InvalidArgumentException extends ShredException {\n constructor(message: string) {\n super(message, 400);\n this.name = \"InvalidArgumentException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class ResourceNotFoundException extends ShredException {\n constructor(message: string) {\n super(message, 404);\n this.name = \"ResourceNotFoundException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class UnauthorizedException extends ShredException {\n constructor(message: string) {\n super(message, 401);\n this.name = \"UnauthorizedException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class ForbiddenException extends ShredException {\n constructor(message: string) {\n super(message, 403);\n this.name = \"ForbiddenException\";\n }\n}\n","export { PromptSchema, ScriptSchema, CategorySchema } from \"./Prompt.schema\";\nexport type { Prompt as Entity, Script, Category } from \"./Prompt.schema\";\nexport * from \"./Prompt.api\";\n","import { z } from \"zod\";\n\nexport const ScriptSchema = z.object({\n id: z.string(),\n title: z.string(),\n content: z.string(),\n tags: z.array(z.string()).optional(),\n userId: z.string().optional(),\n});\n\nexport const CategorySchema = z.object({\n id: z.string(),\n title: z.string(),\n pictureUrl: z.string().url(),\n backgroundColor: z.string(),\n active: z.boolean(),\n scripts: z.array(ScriptSchema),\n});\n\nexport const PromptSchema = z.object({\n id: z.string(),\n tenantId: z.string(),\n categories: z.array(CategorySchema),\n});\n\n// Infer types\nexport type Script = z.infer<typeof ScriptSchema>;\nexport type Category = z.infer<typeof CategorySchema>;\nexport type Prompt = z.infer<typeof PromptSchema>;\n","import Context from \"../Context\";\nimport { Prompt, Script } from \"./Prompt.schema\";\n\nexport interface IAPI {\n getPrompt: (c: Context) => Promise<Prompt>;\n addScript: (c: Context, script: Partial<Script>) => Promise<Script>;\n deleteScript: (c: Context, id: string) => Promise<boolean>;\n getScripts: (c: Context) => Promise<Script[]>;\n updateScript: (\n c: Context,\n id: string,\n script: Partial<Script>\n ) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n GetPrompt: {\n uri: \"/prompts/getPrompt\",\n method: \"GET\",\n },\n AddScript: {\n uri: \"/prompts/script/new/\",\n method: \"POST\",\n },\n DeleteScript: {\n uri: \"/prompts/script/:id/delete/\",\n method: \"DELETE\",\n },\n ListScript: {\n uri: \"/prompts/script/list/\",\n method: \"GET\",\n },\n UpdateScript: {\n uri: \"/prompts/script/:id/update/\",\n method: \"PUT\",\n },\n};\n","export type { Tenant as Entity, Preferences } from \"./Tenant.schema\";\nexport { TenantSchema, PreferencesSchema } from \"./Tenant.schema\";\nexport * from \"./Tenant.api\";\n","import { z } from \"zod\";\nimport { SubscriptionSchema } from \"../subscription/Subscription.schema\";\n\nexport const PreferencesSchema = z.object({\n iconUrl: z.string().url(),\n logoUrl: z.string().url(),\n primaryColor: z.string(),\n secondaryColor: z.string(),\n guidelinesUrl: z.string().url().optional(),\n});\n\nexport const TenantSchema = z.object({\n id: z.string(),\n name: z.string(),\n isActive: z.boolean(),\n isSubscriptionActive: z.boolean(),\n preferences: PreferencesSchema,\n inviteCode: z.string(),\n totalUsersAllowed: z.number(),\n currentUsersSize: z.number().optional(),\n chargeByEmail: z.boolean(),\n defaultProductId: z.string().optional(),\n defaultPlanId: z.string().optional(),\n defaultCoupomCode: z.string().optional(),\n allowedProducts: z.array(z.string()).optional(),\n useOwnScripts: z.boolean().optional(),\n subscription: z.optional(z.lazy(() => SubscriptionSchema)),\n});\n\nexport type Tenant = z.infer<typeof TenantSchema>;\nexport type Preferences = z.infer<typeof PreferencesSchema>;\n","import { z } from \"zod\";\n\nexport enum Type {\n CUSTOMER_SUBSCRIPTION = 0,\n TENANT_SUBSCRIPTION = 1,\n}\n\nexport const SubscriptionTypeSchema = z.nativeEnum(Type);\n\nexport const PlanSchema = z.object({\n id: z.string(),\n currency: z.string(),\n price: z.number(),\n interval: z.string(),\n metadata: z.record(z.string()),\n subscriptionItemId: z.string(),\n});\n\nexport const DescriptionSchema = z.object({\n description: z.string(),\n subtitle: z.string(),\n});\n\nexport const ProductSchema = z.object({\n id: z.string(),\n name: z.string(),\n descriptions: z.array(DescriptionSchema),\n metadata: z.any(),\n plans: z.array(PlanSchema),\n percentOff: z.number().default(0),\n});\n\nexport const ChargeSchema = z.object({\n id: z.number(),\n created: z.number(),\n paid: z.boolean(),\n receiptUrl: z.string(),\n status: z.string(),\n price: z.string(),\n paymentType: z.string(),\n last4: z.string().optional(),\n brand: z.string().optional(),\n});\n\nexport const SubscriptionSchema = z.object({\n id: z.string(),\n status: z.string(),\n startDate: z.number().optional(),\n daysUntilDue: z.number().optional(),\n renewAutomatically: z.boolean().optional(),\n currentPeriodStart: z.number().optional(),\n currentPeriodEnd: z.number().optional(),\n paymentMethodId: z.string().optional(),\n product: ProductSchema,\n type: z.nativeEnum(Type).optional(),\n plan: PlanSchema.optional(),\n});\n\nexport type Subscription = z.infer<typeof SubscriptionSchema>;\nexport type Charge = z.infer<typeof ChargeSchema>;\nexport type Plan = z.infer<typeof PlanSchema>;\nexport type Product = z.infer<typeof ProductSchema>;\n","import Context from \"../Context\";\nimport { Tenant } from \"./Tenant.schema\";\n\nexport interface IAPI {\n getByInviteCode: (code: string, context?: Context) => Promise<Tenant | null>;\n create: (tenant: Tenant, context: Context) => Promise<boolean>;\n list: (context: Context) => Promise<Tenant[]>;\n getTenant: (context: Context, tenantId?: string) => Promise<Tenant | null>;\n update: (\n tenantId: string,\n data: Pick<Tenant, \"preferences\">,\n context: Context\n ) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n GetByInviteCode: {\n uri: \"/tenants/public/invitation/\",\n method: \"GET\",\n },\n CreateTenant: {\n uri: \"/tenants/create\",\n method: \"PUT\",\n },\n GetTenant: {\n uri: \"/tenants/me\",\n method: \"GET\",\n },\n GetTenantById: {\n uri: \"/tenants/:tenantId/find\",\n method: \"GET\",\n },\n UpdateTenant: {\n uri: \"/tenants/update\",\n method: \"POST\",\n },\n ListAll: {\n uri: \"/tenants/list\",\n method: \"GET\",\n },\n};\n","export type { User as Entity, Preferences, Update } from \"./User.schema\";\nexport { UserSchema, PreferencesSchema, Role, System } from \"./User.schema\";\nexport * from \"./User.api\";\n","import { z } from \"zod\";\n\nexport enum Role {\n USER = \"User\",\n EDITOR = \"Editor\",\n QA = \"QA\",\n ADMIN = \"ADMIN\",\n SYSTEM = \"SYSTEM\",\n}\n\nexport enum System {\n APP = \"APP\",\n EDITOR = \"EDITOR\",\n QA = \"QA\",\n ADMIN = \"ADMIN\",\n}\n\nexport const PreferencesSchema = z.object({\n primaryColor: z.string().optional(),\n secondaryColor: z.string().optional(),\n facebookLink: z.string().optional(),\n instagramLink: z.string().optional(),\n bRoll: z.boolean().optional(),\n logo: z.string().optional(),\n});\n\nexport const UserSchema = z.object({\n id: z.string(),\n name: z.string(),\n email: z.string().email(),\n fcmToken: z.string().optional(),\n profession: z.string().optional(),\n photoUrl: z.string().optional(),\n preferences: PreferencesSchema.optional(),\n tenantId: z.string().optional(),\n editorId: z.string().optional(),\n timezone: z.string().optional(),\n experienceId: z.string().optional(),\n customerId: z.string(),\n role: z.nativeEnum(Role),\n});\n\nexport type User = z.infer<typeof UserSchema>;\nexport type Preferences = z.infer<typeof PreferencesSchema>;\nexport type Update = Pick<\n User,\n | \"name\"\n | \"profession\"\n | \"preferences\"\n | \"photoUrl\"\n | \"fcmToken\"\n | \"timezone\"\n | \"experienceId\"\n>;\n","import * as Core from \"../core\";\nimport Context from \"../Context\";\nimport { System, User, Update } from \"./User.schema\";\n\nexport interface IAPI {\n getUserInfo: (context: Context) => Promise<User>;\n isEmailAvaliable: (email: string) => Promise<boolean>;\n sendValidationCode: (email: string) => Promise<boolean>;\n confirmCode: (\n email: string,\n code: number,\n keepCode?: boolean\n ) => Promise<boolean>;\n changePassword: (\n email: string,\n pass: string,\n passConfirm: string,\n code: number\n ) => Promise<boolean>;\n changeEmail: (ctx: Context, email: string, code: number) => Promise<boolean>;\n authenticate: (\n email: string,\n password: string,\n system: System\n ) => Promise<string>;\n update: (context: Context, update: Partial<Update>) => Promise<boolean>;\n setup: (context: Context) => Promise<boolean>;\n getBindedUsers: (ctx: Context) => Promise<User[]>;\n deleteAccount: (ctx: Context) => Promise<boolean>;\n getIntegrationToken: (ctx: Context) => Promise<string | null>;\n createIntegrationToken: (ctx: Context) => Promise<string>;\n search: (\n ctx: Context,\n query: Core.QueryOptions<User>\n ) => Promise<Core.APIResponse<User>>;\n createUser: (\n email: string,\n name: string,\n password: string,\n passwordConfirmation: string,\n profession: string | null,\n invitationCode: string | null\n ) => Promise<User>;\n}\n\nexport const Endpoints = {\n ChangeEmail: { uri: \"/accounts/user/changeEmail\", method: \"PUT\" },\n GetUserInfo: { uri: \"/accounts/user/info\", method: \"GET\" },\n GetBindedUsers: { uri: \"/accounts/binded/list\", method: \"GET\" },\n EnableUser: { uri: \"/api/user/register\", method: \"POST\" },\n ChangePassword: { uri: \"/accounts/public/changePassword/\", method: \"POST\" },\n IsEmailAvaliable: { uri: \"/accounts/public/email/avaliable\", method: \"GET\" },\n GetIntegrationToken: { uri: \"/accounts/user/getToken/\", method: \"GET\" },\n CreateToken: { uri: \"/accounts/user/createToken/\", method: \"POST\" },\n ConfirmCode: { uri: \"/accounts/public/email/validate\", method: \"POST\" },\n DeleteAccount: { uri: \"/accounts/user/delete/\", method: \"DELETE\" },\n SendValidationCode: { uri: \"/accounts/public/email/send\", method: \"POST\" },\n Authenticate: { uri: \"/accounts/public/login\", method: \"POST\" },\n CreateUser: { uri: \"/accounts/public/create\", method: \"POST\" },\n UpdateUser: { uri: \"/accounts/user/update\", method: \"PUT\" },\n Setup: { uri: \"/accounts/user/setup/\", method: \"POST\" },\n Search: { uri: \"/accounts/users/search/\", method: \"GET\" },\n};\n","export type {\n Subscription as Entity,\n Product,\n Plan,\n Charge,\n} from \"./Subscription.schema\";\n\nexport {\n SubscriptionSchema,\n ProductSchema,\n PlanSchema,\n ChargeSchema,\n Type,\n SubscriptionTypeSchema,\n} from \"./Subscription.schema\";\n\nexport * from \"./Subscription.api\";\n","import Context from \"../Context\";\nimport { Charge, Product, Subscription } from \"./Subscription.schema\";\n\nexport interface IAPI {\n getCharges: (ctx: Context) => Promise<Charge[]>;\n getPortalUrl: (ctx: Context) => Promise<string>;\n getSubscription: (\n context: Context,\n userId?: string\n ) => Promise<Subscription | null>;\n getProduct: (id: string, context?: Context) => Promise<Product>;\n getProducts: (ctx?: Context) => Promise<Product[]>;\n charge: (ctx: Context) => Promise<boolean>;\n pause: (ctx: Context) => Promise<boolean>;\n resume: (ctx: Context) => Promise<boolean>;\n updatePlan: (ctx: Context, planId: string) => Promise<boolean>;\n createCheckout: (planId: string | null, ctx: Context) => Promise<string>;\n}\n\nexport const Endpoints = {\n GetPortal: {\n uri: \"/subscriptions/portal/\",\n method: \"GET\",\n },\n GetProduct: {\n uri: \"/subscriptions/products/public/retrieve/\",\n method: \"GET\",\n },\n GetActiveSubscription: {\n uri: \"/subscriptions/active/\",\n method: \"GET\",\n },\n GetCharges: {\n uri: \"/subscriptions/payment/charge/list/\",\n method: \"GET\",\n },\n GetUserActiveSubscription: {\n uri: \"/subscriptions/:userId/find/\",\n method: \"GET\",\n },\n GetProducts: {\n uri: \"/subscriptions/products/public/list/\",\n method: \"GET\",\n },\n GetProductsByUser: {\n uri: \"/subscriptions/products/list/\",\n method: \"GET\",\n },\n Checkout: {\n uri: \"/subscriptions/payment/checkout/\",\n method: \"POST\",\n },\n Charge: {\n uri: \"/subscriptions/payment/charge/\",\n method: \"POST\",\n },\n Pause: {\n uri: \"/subscriptions/pause/\",\n method: \"PUT\",\n },\n Resume: {\n uri: \"/subscriptions/resume/\",\n method: \"PUT\",\n },\n UpdatePlan: {\n uri: \"/subscriptions/plan/update/\",\n method: \"PUT\",\n },\n};\n","export type { Track as Entity, TrackParam } from \"./Track.schema\";\nexport { TrackSchema, TrackParamSchema } from \"./Track.schema\";\nexport * from \"./Track.api\";\n","import { z } from \"zod\";\n\nexport const TrackParamSchema = z.object({\n name: z.string(),\n value: z.union([z.string(), z.number()]),\n});\n\nexport const TrackSchema = z.object({\n category: z.string(),\n label: z.string(),\n action: z.string(),\n params: z.array(TrackParamSchema).optional(),\n});\n\nexport type Track = z.infer<typeof TrackSchema>;\nexport type TrackParam = z.infer<typeof TrackParamSchema>;\n","import { Track } from \"./Track.schema\";\n\nexport interface IAPI {\n send: (t: Track) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n Track: {\n uri: \"/track/public/send/\",\n method: \"POST\",\n },\n};\n","export * from \"./Query\";\nexport * from \"./APIResponse\";\n"],"mappings":"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","names":["fetch","Frequency","WeekDay","CriteriaType","TransportType","Status","Endpoints","import_zod","Endpoints","Endpoints","Endpoints","Status","import_zod","import_zod","Status","CaptionStyle","Endpoints","Endpoints","Endpoints","import_zod","Endpoints","Endpoints","Endpoints","Endpoints","Endpoints","import_zod","Endpoints","Endpoints","Endpoints","import_zod","Endpoints","Endpoints","import_zod","import_zod","Type","Endpoints","Endpoints","PreferencesSchema","import_zod","Role","System","PreferencesSchema","Endpoints","Endpoints","Endpoints","Endpoints","import_zod","Endpoints"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/util/HTTPClient.ts","../src/model/notification/index.ts","../src/model/notification/Notification.schema.ts","../src/model/notification/Notification.api.ts","../src/api/Notification.api.ts","../src/api/Prompt.api.ts","../src/api/Subscription.api.ts","../src/api/Tenant.api.ts","../src/util/parseQuery.ts","../src/api/User.api.ts","../src/api/Track.api.ts","../src/model/email/index.ts","../src/model/email/Email.schema.ts","../src/model/email/Email.api.ts","../src/api/Email.api.ts","../src/model/project/index.ts","../src/model/project/Project.schema.ts","../src/model/asset/index.ts","../src/model/asset/Asset.schema.ts","../src/model/project/Project.api.ts","../src/api/Project.api.ts","../src/model/goal/index.ts","../src/model/goal/Goal.schema.ts","../src/model/goal/Goal.api.ts","../src/api/Goal.api.ts","../src/model/app-config/AppConfig.api.ts","../src/api/AppConfig.api.ts","../src/model/note/index.ts","../src/model/note/Note.schema.ts","../src/model/note/Note.api.ts","../src/api/Note.api.ts","../src/model/Api.ts","../src/model/exceptions/index.ts","../src/model/exceptions/ShredException.ts","../src/model/exceptions/ConflictException.ts","../src/model/exceptions/InvalidArgumentException.ts","../src/model/exceptions/ResourceNotFoundException.ts","../src/model/exceptions/UnauthorizedException.ts","../src/model/exceptions/ForbiddenException.ts","../src/model/prompt/index.ts","../src/model/prompt/Prompt.schema.ts","../src/model/prompt/Prompt.api.ts","../src/model/tenant/index.ts","../src/model/tenant/Tenant.schema.ts","../src/model/subscription/Subscription.schema.ts","../src/model/tenant/Tenant.api.ts","../src/model/user/index.ts","../src/model/user/User.schema.ts","../src/model/user/User.api.ts","../src/model/subscription/index.ts","../src/model/subscription/Subscription.api.ts","../src/model/track/index.ts","../src/model/track/Track.schema.ts","../src/model/track/Track.api.ts","../src/model/core/index.ts"],"sourcesContent":["import { ShredAPI } from \"./model/Api\";\n\n//V2\nexport * as Exceptions from \"./model/exceptions\";\nexport * as Prompt from \"./model/prompt\";\nexport * as Asset from \"./model/asset\";\nexport * as Tenant from \"./model/tenant\";\nexport * as User from \"./model/user\";\nexport * as Subscription from \"./model/subscription\";\nexport * as Track from \"./model/track\";\nexport * as Email from \"./model/email\";\nexport * as Core from \"./model/core\";\nexport * as Project from \"./model/project\";\nexport * as Goal from \"./model/goal\";\nexport * as Notification from \"./model/notification\";\nexport * as Note from \"./model/note\";\n\nexport default ShredAPI;\n","import Environment from \"../model/Env\";\nimport Context from \"./../model/Context\";\nimport fetch from \"cross-fetch\";\n\nconst HOSTS = {\n prod: \"https://api.shreditapp.com\",\n staging: \"https://api.staging.shreditapp.com\",\n local: \"https://api.staging.shreditapp.com\",\n};\n\nconst OLD_HOSTS = {\n prod: \"https://api.shredmedia.co\",\n staging: \"https://api-staging.shredmedia.co\",\n local: \"https://api-staging.shredmedia.co\",\n};\n\nexport default class HTTPClient {\n async makeRequest(\n env: Environment,\n uri: string,\n method: string,\n data?: any,\n context?: Context | null,\n useLegacyApi?: boolean\n ): Promise<any> {\n const hostDict = useLegacyApi ? OLD_HOSTS : HOSTS;\n const host = hostDict[env] || hostDict.staging;\n const url = host + uri;\n\n const headers: Record<string, string> = {\n \"Content-Type\": useLegacyApi\n ? \"application/x-www-form-urlencoded\"\n : \"application/json\",\n };\n\n if (context?.token) {\n headers[\"Authorization\"] = `Bearer ${context.token}`;\n }\n\n if (context?.requestId) {\n headers[\"X-Request-ID\"] = context.requestId;\n }\n\n const fetchOptions: RequestInit = {\n method,\n headers,\n };\n\n if (method !== \"GET\" && data) {\n fetchOptions.body = useLegacyApi\n ? new URLSearchParams(data).toString()\n : JSON.stringify(data);\n }\n\n try {\n const response = await fetch(url, fetchOptions);\n\n if (!response.ok) {\n const errorText = await response.text();\n throw {\n status: response.status,\n statusText: response.statusText,\n body: errorText,\n };\n }\n\n try {\n return await response.json();\n } catch {\n return await response.text();\n }\n } catch (error: any) {\n let parsedBody: any = {};\n\n try {\n parsedBody = error.body ? JSON.parse(error.body) : {};\n } catch {\n parsedBody = { message: error.body || \"Unknown error\" };\n }\n\n throw {\n message: parsedBody.message || \"Unexpected error occurred\",\n original: error,\n };\n }\n }\n}\n","export type {\n Trigger,\n NotificationDetail,\n NotificationItem,\n RecurrenceRule,\n History,\n Criteria,\n} from \"./Notification.schema\";\n\nexport {\n TriggerSchema,\n NotificationDetailSchema,\n NotificationItemSchema,\n RecurrenceRuleSchema,\n CriteriaSchema,\n HistorySchema,\n Frequency,\n WeekDay,\n CriteriaType,\n TransportType,\n Status,\n} from \"./Notification.schema\";\n\nexport * from \"./Notification.api\";\n","import { z } from \"zod\";\n\nexport enum Frequency {\n DAILY = \"daily\",\n WEEKLY = \"weekly\",\n MONTHLY = \"monthly\",\n}\n\nexport enum WeekDay {\n MONDAY = 1,\n TUESDAY = 2,\n WEDNESDAY = 3,\n THURSDAY = 4,\n FRIDAY = 5,\n SATURDAY = 6,\n SUNDAY = 7,\n}\n\nexport enum CriteriaType {\n AllUsers = \"allUsers\",\n NoProjects = \"noProjects\",\n NoSubscription = \"noSubscription\",\n UsersFromTier = \"usersFromTier\",\n}\n\nexport enum TransportType {\n Push = \"push\",\n Email = \"email\",\n}\n\nexport enum Status {\n SCHEDULED = \"scheduled\",\n RUNNING = \"running\",\n COMPLETED = \"completed\",\n FAILED = \"failed\",\n PAUSED = \"paused\",\n CANCELLED = \"cancelled\",\n ACTIVE = \"active\",\n EXPIRED = \"expired\",\n}\n\nexport const NotificationItemSchema = z.object({\n id: z.string(),\n userId: z.string(),\n triggerId: z.string().optional(),\n title: z.string(),\n body: z.string(),\n status: z.enum([\"failed\", \"delivered\", \"deleted\"]),\n deliveredAt: z.number(),\n openedAt: z.number().optional(),\n deletedAt: z.number().optional(),\n cta: z.object({ label: z.string(), url: z.string().url() }).optional(),\n metadata: z.record(z.union([z.string(), z.number()])),\n error: z.string().optional(),\n});\n\nexport const NotificationDetailSchema = NotificationItemSchema.pick({\n title: true,\n body: true,\n userId: true,\n metadata: true,\n});\n\nexport const CriteriaSchema = z.object({\n type: z.nativeEnum(CriteriaType),\n params: z.record(z.any()),\n});\n\nexport const HistorySchema = z.object({\n batchId: z.string(),\n executedAt: z.number(),\n timezone: z.string(),\n status: z.enum([\"success\", \"failed\", \"info\", \"warn\"]),\n users: z.object({\n total: z.number(),\n success: z.number(),\n error: z.number(),\n }),\n errorList: z\n .array(\n z.object({\n token: z.string(),\n error: z.string(),\n })\n )\n .optional(),\n executionTimeDuration: z.number().optional(),\n});\n\nexport const RecurrenceRuleSchema = z.object({\n frequency: z.nativeEnum(Frequency),\n interval: z.number(),\n weekDays: z.array(z.nativeEnum(WeekDay)).optional(),\n dayOfMonth: z.number().optional(),\n endDate: z.string().optional(),\n ocurrences: z.number().optional(),\n});\n\nexport const TriggerSchema = z.object({\n id: z.string(),\n title: z.string(),\n description: z.string(),\n transportType: z.array(z.nativeEnum(TransportType)),\n notification: NotificationDetailSchema,\n history: z.array(HistorySchema).optional(),\n status: z.nativeEnum(Status),\n recurrence: RecurrenceRuleSchema.optional(),\n timezone: z.string().nullable().optional(),\n tenantIds: z.array(z.string()).optional(),\n executionDate: z.string().optional(),\n timeOfDay: z.string(),\n criteria: CriteriaSchema,\n nextExecution: z.number().optional(),\n createdAt: z.number().optional(),\n modified: z.number().optional(),\n});\n\nexport type NotificationItem = z.infer<typeof NotificationItemSchema>;\nexport type NotificationDetail = z.infer<typeof NotificationDetailSchema>;\nexport type Trigger = z.infer<typeof TriggerSchema>;\nexport type RecurrenceRule = z.infer<typeof RecurrenceRuleSchema>;\nexport type History = z.infer<typeof HistorySchema>;\nexport type Criteria = z.infer<typeof CriteriaSchema>;\n","import Context from \"../Context\";\nimport {\n Trigger,\n NotificationDetail,\n NotificationItem,\n} from \"./Notification.schema\";\nimport * as Core from \"../core/\";\n\nexport interface IAPI {\n getTriggers: (ctx: Context) => Promise<Core.APIResponse<Trigger>>;\n createTrigger: (ctx: Context, t: Trigger) => Promise<Trigger>;\n deleteTrigger: (ctx: Context, triggerId: string) => Promise<boolean>;\n updateTrigger: (\n ctx: Context,\n triggerId: string,\n trigger: Partial<Trigger>\n ) => Promise<Trigger>;\n push: (\n context: Context,\n notification: NotificationDetail\n ) => Promise<boolean>;\n getNotifications: (\n ctx: Context\n ) => Promise<Core.APIResponse<NotificationItem>>;\n markAsRead: (ctx: Context, id: string) => Promise<boolean>;\n clearNotifications: (ctx: Context) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n Create: { uri: \"/notifications/trigger/\", method: \"POST\" },\n List: { uri: \"/notifications/trigger/list/\", method: \"GET\" },\n Update: { uri: \"/notifications/trigger/:id/\", method: \"PUT\" },\n Delete: { uri: \"/notifications/trigger/:id/\", method: \"DELETE\" },\n Push: { uri: \"/notifications/push/\", method: \"POST\" },\n ListNotifications: { uri: \"/notifications/list/\", method: \"GET\" },\n MarkAsRead: { uri: \"/notifications/:id/read/\", method: \"PUT\" },\n ClearNotifications: { uri: \"/notifications/clear/\", method: \"DELETE\" },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as Notification from \"../model/notification\";\nimport * as Core from \"../model/core\";\nimport Context from \"../model/Context\";\n\nclass NotificationAPI implements Notification.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async clearNotifications(ctx: Context): Promise<boolean> {\n const endpointData = Notification.Endpoints.ClearNotifications;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async markAsRead(ctx: Context, id: string): Promise<boolean> {\n const endpointData = Notification.Endpoints.MarkAsRead;\n const endpoint = endpointData.uri.replace(\":id\", id);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async getNotifications(\n ctx: Context\n ): Promise<Core.APIResponse<Notification.NotificationItem>> {\n const endpointData = Notification.Endpoints.ListNotifications;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async deleteTrigger(ctx: Context, triggerId: string): Promise<boolean> {\n const endpointData = Notification.Endpoints.Delete;\n const endpoint = endpointData.uri.replace(\":id\", triggerId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async updateTrigger(\n ctx: Context,\n triggerId: string,\n t: Partial<Notification.Trigger>\n ): Promise<Notification.Trigger> {\n const endpointData = Notification.Endpoints.Update;\n const endpoint = endpointData.uri.replace(\":id\", triggerId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n t,\n ctx\n );\n return data;\n }\n\n async createTrigger(\n ctx: Context,\n t: Notification.Trigger\n ): Promise<Notification.Trigger> {\n const endpointData = Notification.Endpoints.Create;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n t,\n ctx\n );\n return data;\n }\n\n async getTriggers(\n ctx: Context\n ): Promise<Core.APIResponse<Notification.Trigger>> {\n const endpointInfo = Notification.Endpoints.List;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n return data;\n }\n\n async push(\n ctx: Context,\n notification: Notification.NotificationDetail\n ): Promise<boolean> {\n const endpointInfo = Notification.Endpoints.Push;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n notification,\n ctx\n );\n\n return data.success;\n }\n}\n\nexport default NotificationAPI;\n","import Context from \"../model/Context\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport { Prompt } from \"../\";\nimport Environment from \"../model/Env\";\n\nclass PromptAPI implements Prompt.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getPrompt(context: Context): Promise<Prompt.Entity> {\n const endpointInfo = Prompt.Endpoints.GetPrompt;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n context\n );\n return data;\n }\n\n async getScripts(context: Context): Promise<Prompt.Script[]> {\n const endpointInfo = Prompt.Endpoints.ListScript;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n context\n );\n return data;\n }\n\n async updateScript(\n c: Context,\n id: string,\n script: Partial<Prompt.Script>\n ): Promise<boolean> {\n const endpointData = Prompt.Endpoints.UpdateScript;\n const endpoint = endpointData.uri.replace(\":id\", id);\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n { ...script },\n c\n );\n return data;\n }\n\n async addScript(\n c: Context,\n script: Partial<Prompt.Script>\n ): Promise<Prompt.Script> {\n const endpointInfo = Prompt.Endpoints.AddScript;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n { ...script },\n c\n );\n return data;\n }\n\n async deleteScript(c: Context, id: string): Promise<boolean> {\n const endpointData = Prompt.Endpoints.DeleteScript;\n const endpoint = endpointData.uri.replace(\":id\", id);\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n c\n );\n return data;\n }\n}\n\nexport default PromptAPI;\n","import Context from \"../model/Context\";\nimport { Subscription } from \"../\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\n\nclass SubscriptionAPI implements Subscription.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getPortalUrl(ctx: Context): Promise<string> {\n const endpointInfo = Subscription.Endpoints.GetPortal;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data.url;\n }\n\n async updatePlan(ctx: Context, planId: string): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.UpdatePlan;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n { planId },\n ctx\n );\n\n return data;\n }\n\n async getProduct(\n id: string,\n context?: Context\n ): Promise<Subscription.Product> {\n const endpointInfo = Subscription.Endpoints.GetProduct;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}/${id}`,\n endpointInfo.method,\n null,\n context\n );\n\n return data;\n }\n async getCharges(ctx: Context): Promise<Subscription.Charge[]> {\n const endpointInfo = Subscription.Endpoints.GetCharges;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data;\n }\n\n async getSubscription(\n context: Context,\n userId?: string\n ): Promise<Subscription.Entity | null> {\n const endpointInfo = Subscription.Endpoints.GetActiveSubscription;\n let uri = endpointInfo.uri;\n let method = endpointInfo.method;\n\n if (userId) {\n const endpointData = Subscription.Endpoints.GetUserActiveSubscription;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n uri = endpoint;\n method = endpointData.method;\n }\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n uri,\n method,\n null,\n context\n );\n return data;\n }\n\n async charge(ctx: Context): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.Charge;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data.success;\n }\n\n async pause(ctx: Context): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.Pause;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n return data;\n }\n\n async resume(ctx: Context): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.Resume;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n return data;\n }\n\n async getProducts(ctx?: Context): Promise<Subscription.Product[]> {\n const endpointInfo = ctx\n ? Subscription.Endpoints.GetProductsByUser\n : Subscription.Endpoints.GetProducts;\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data;\n }\n\n async createCheckout(planId: string | null, ctx: Context): Promise<string> {\n const endpointInfo = Subscription.Endpoints.Checkout;\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n { planId },\n ctx\n );\n\n return data.url;\n }\n}\n\nexport default SubscriptionAPI;\n","import Context from \"../model/Context\";\nimport { Tenant } from \"../\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\n\nclass TenantAPI implements Tenant.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getByInviteCode(\n inviteCode: string,\n context?: Context\n ): Promise<Tenant.Entity | null> {\n const endpointInfo = Tenant.Endpoints.GetByInviteCode;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}/${inviteCode}`,\n endpointInfo.method,\n null,\n context\n );\n\n return data;\n }\n\n async getTenant(\n context: Context,\n tenantId?: string\n ): Promise<Tenant.Entity | null> {\n const endpointInfo = Tenant.Endpoints.GetTenant;\n let uri = endpointInfo.uri;\n let method = endpointInfo.method;\n\n if (tenantId) {\n const endpointData = Tenant.Endpoints.GetTenantById;\n const endpoint = endpointData.uri.replace(\":tenantId\", tenantId);\n uri = endpoint;\n method = endpointData.method;\n }\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n uri,\n method,\n null,\n context\n );\n\n return data;\n }\n\n async create(t: Tenant.Entity, context: Context): Promise<boolean> {\n const endpointInfo = Tenant.Endpoints.CreateTenant;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n { ...t },\n context\n );\n\n return data;\n }\n\n async list(context: Context): Promise<Tenant.Entity[]> {\n const endpointInfo = Tenant.Endpoints.ListAll;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n null,\n context\n );\n\n return data;\n }\n\n async update(\n tenantId: string,\n updateData: Pick<Tenant.Entity, \"preferences\">,\n context: Context\n ): Promise<boolean> {\n const endpointInfo = Tenant.Endpoints.UpdateTenant;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n { tenantId, data: updateData },\n context\n );\n\n return data;\n }\n}\n\nexport default TenantAPI;\n","import * as Core from \"../model/core\";\n\nexport const buildQueryString = <T>(\n query: Partial<Core.QueryOptions<T>>\n): string => {\n const params: Record<string, string[]> = {};\n\n if (query.perPage) {\n params[\"perPage\"] = [String(query.perPage)];\n }\n\n if (query.cursor !== undefined && query.cursor !== null) {\n params[\"cursor\"] = [String(query.cursor)];\n }\n\n if (query.orderBy) {\n params[\"orderBy\"] = [\n `${String(query.orderBy.field)}:${query.orderBy.direction}`,\n ];\n }\n\n if (query.wheres && query.wheres.length > 0) {\n params[\"wheres\"] = query.wheres.map(\n (w) => `${String(w.field)}:${String(w.operation)}:${String(w.value)}`\n );\n }\n\n const queryString = Object.entries(params)\n .flatMap(([key, values]) =>\n values.map((value) => `${key}=${encodeURIComponent(value)}`)\n )\n .join(\"&\");\n\n return queryString ? `?${queryString}` : \"\";\n};\n","import Context from \"../model/Context\";\nimport { User } from \"../\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as Core from \"../model/core\";\nimport { buildQueryString } from \"../util/parseQuery\";\n\nclass UserAPI implements User.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async search(\n ctx: Context,\n query: Core.QueryOptions<User.Entity>\n ): Promise<Core.APIResponse<User.Entity>> {\n const endpointData = User.Endpoints.Search;\n const qs = buildQueryString(query);\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}${qs}`,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async deleteAccount(ctx: Context): Promise<boolean> {\n const endpointData = User.Endpoints.DeleteAccount;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data.success;\n }\n\n async createIntegrationToken(ctx: Context): Promise<string> {\n const endpointData = User.Endpoints.CreateToken;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n ctx\n );\n return data.token;\n }\n\n async getIntegrationToken(ctx: Context): Promise<string | null> {\n const endpointData = User.Endpoints.GetIntegrationToken;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n ctx\n );\n return data.token;\n }\n\n async sendValidationCode(email: string): Promise<boolean> {\n const endpointData = User.Endpoints.SendValidationCode;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}?email=${email}`,\n endpointData.method\n );\n return data.success;\n }\n\n async changePassword(\n email: string,\n pass: string,\n passConfirm: string,\n code: number\n ): Promise<boolean> {\n const endpointData = User.Endpoints.ChangePassword;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n { email, pass, passConfirm, code }\n );\n return data.success;\n }\n\n async changeEmail(\n ctx: Context,\n email: string,\n code: number\n ): Promise<boolean> {\n const endpointData = User.Endpoints.ChangeEmail;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n { email, code },\n ctx\n );\n return data.success;\n }\n\n async confirmCode(\n email: string,\n code: number,\n keepCode?: boolean\n ): Promise<boolean> {\n const endpointData = User.Endpoints.ConfirmCode;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}?email=${email}&code=${code}&keepCode=${keepCode}`,\n endpointData.method\n );\n return data.success;\n }\n\n async isEmailAvaliable(email: string): Promise<boolean> {\n const endpointData = User.Endpoints.IsEmailAvaliable;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}?email=${email}`,\n endpointData.method\n );\n return data.isValid;\n }\n\n async update(\n context: Context,\n update: Partial<User.Update>\n ): Promise<boolean> {\n const endpointData = User.Endpoints.UpdateUser;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n { ...update },\n context\n );\n return data.isValid;\n }\n\n async getBindedUsers(context: Context): Promise<User.Entity[]> {\n const endpointData = User.Endpoints.GetBindedUsers;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async setup(context: Context): Promise<boolean> {\n const endpointData = User.Endpoints.Setup;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async authenticate(\n email: string,\n password: string,\n system: User.System\n ): Promise<string> {\n const endpointData = User.Endpoints.Authenticate;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n { system, email, password }\n );\n return data.token;\n }\n\n async createUser(\n email: string,\n name: string,\n password: string,\n passwordConfirmation: string,\n profession: string | null,\n invitationCode: string | null\n ) {\n const endpointData = User.Endpoints.CreateUser;\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n {\n email,\n name,\n password,\n passwordConfirmation,\n profession,\n invitationCode,\n },\n null\n );\n\n return data;\n }\n\n async getUserInfo(context: Context): Promise<User.Entity> {\n const endpointData = User.Endpoints.GetUserInfo;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n\n return data;\n }\n}\n\nexport default UserAPI;\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport { Track } from \"../\";\n\nclass TrackAPI implements Track.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async send(t: Track.Entity): Promise<boolean> {\n const endpointInfo = Track.Endpoints.Track;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n t\n );\n\n return data;\n }\n}\n\nexport default TrackAPI;\n","export type { Email as Entity } from \"./Email.schema\";\nexport { EmailSchema } from \"./Email.schema\";\nexport * from \"./Email.api\";\n","import { z } from \"zod\";\n\nexport const EmailSchema = z.object({\n to: z.string().email().optional(),\n subject: z.string(),\n body: z.string(),\n});\n\nexport type Email = z.infer<typeof EmailSchema>;\n","import Context from \"../Context\";\nimport { Email } from \"./Email.schema\";\n\nexport interface IAPI {\n send: (email: Email, ctx?: Context) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n SendEmail: {\n uri: \"/emails/public/send\",\n method: \"POST\",\n },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport Context from \"../model/Context\";\nimport * as Email from \"../model/email\";\n\nclass EmailAPI implements Email.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async send(email: Email.Entity, ctx?: Context): Promise<boolean> {\n const endpointInfo = Email.Endpoints.SendEmail;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n email,\n ctx\n );\n\n return data.result;\n }\n}\n\nexport default EmailAPI;\n","export type {\n Project as Entity,\n Approve,\n Style,\n ProjectCreation,\n SendToApproval,\n TimelineItem,\n Feedback,\n} from \"./Project.schema\";\n\nexport {\n ProjectSchema,\n Status,\n CaptionStyle,\n Styles,\n TimelineItemSchema,\n FeedbackSchema,\n} from \"./Project.schema\";\n\nexport * from \"./Project.api\";\n","import { z } from \"zod\";\nimport { AssetSchema } from \"../asset\";\n\nexport enum Status {\n SUBMITTED = 0,\n EDITING = 1,\n COMPLETED = 2,\n WAITING_APPROVE = 3,\n DENIED = 4,\n REVISIONING = 5,\n CANCELLED = 6,\n SCHEDULED = 7,\n}\n\nexport enum CaptionStyle {\n ONE_LINE = 1,\n ONE_LINE_EMOJIS = 2,\n TWO_LINES = 5,\n TWO_LINES_EMOJIS = 3,\n HOME_HIGHLIGHT = 4,\n}\n\nexport const StatusSchema = z.nativeEnum(Status);\nexport const CaptionStyleStatus = z.nativeEnum(CaptionStyle);\n\nexport const Styles: Style[] = [\n { value: CaptionStyle.ONE_LINE, label: \"One Line\" },\n { value: CaptionStyle.ONE_LINE_EMOJIS, label: \"One Line + Emojis\" },\n { value: CaptionStyle.TWO_LINES, label: \"Two Lines\" },\n { value: CaptionStyle.TWO_LINES_EMOJIS, label: \"Two Lines + Emojis\" },\n { value: CaptionStyle.HOME_HIGHLIGHT, label: \"Home Tour\" },\n];\n\nexport type Style = {\n value: CaptionStyle;\n label: string;\n};\n\nexport const TimelineItemSchema = z.object({\n status: z.nativeEnum(Status),\n title: z.string(),\n description: z.string(),\n timestamp: z.number(),\n metadata: z.record(z.any()),\n});\n\nexport const FeedbackSchema = z.object({\n criteria: z.array(\n z.object({\n id: z.string(),\n label: z.string(),\n score: z.number().min(0).max(10),\n comment: z.string().optional(),\n })\n ),\n comment: z.string().optional(),\n});\n\nexport const ProjectSchema = z.object({\n id: z.string(),\n title: z.string(),\n instructions: z.string(),\n submitMonth: z.string(),\n captionStyle: z.nativeEnum(CaptionStyle),\n finalVideoId: z.string().optional(),\n thumbnailUrl: z.string().optional(),\n modified: z.number(),\n feedback: FeedbackSchema.optional(),\n captionSuggestion: z.string().optional(),\n editorId: z.string().optional(),\n userId: z.string(),\n assets: z.array(AssetSchema).optional(),\n expirationTimestamp: z.number(),\n isFree: z.boolean().optional(),\n timeline: z.array(TimelineItemSchema),\n submitTimestamp: z.number(),\n tenantId: z.string().optional(),\n status: z.nativeEnum(Status),\n});\n\nexport type ProjectCreation = Pick<\n Project,\n \"title\" | \"instructions\" | \"captionStyle\" | \"assets\"\n>;\n\nexport type SendToApproval = {\n video: string;\n thumbnail: string;\n captionSuggestion: string;\n};\n\nexport type Approve = {\n scheduleTime?: number;\n captionSuggestion: string;\n feedback?: Feedback;\n};\n\nexport type Project = z.infer<typeof ProjectSchema>;\nexport type TimelineItem = z.infer<typeof TimelineItemSchema>;\nexport type Feedback = z.infer<typeof FeedbackSchema>;\n","export { AssetSchema } from \"./Asset.schema\";\nexport type { Asset as Entity } from \"./Asset.schema\";\n","import { z } from \"zod\";\n\nconst AssetSchema = z.object({\n assetId: z.string(),\n fileName: z.string(),\n extension: z.string(),\n fileSize: z.number(),\n assetUrl: z.string().url(),\n thumbnailUrl: z.string().url(),\n type: z.string(),\n duration: z.number().optional(),\n progress: z.number().optional(),\n error: z.string().optional(),\n authorId: z.string(),\n uploadedAt: z.number(),\n});\n\ntype Asset = z.infer<typeof AssetSchema>;\n\nexport { Asset, AssetSchema };\n","import Context from \"../Context\";\nimport {\n Project,\n ProjectCreation,\n SendToApproval,\n Approve,\n} from \"./Project.schema\";\nimport * as Core from \"../core\";\n\nexport interface IAPI {\n reorder: (\n context: Context,\n projectId: string,\n position: number\n ) => Promise<boolean>;\n find: (context: Context, projectId: string) => Promise<Project>;\n create: (context: Context, data: ProjectCreation) => Promise<Project>;\n review: (\n context: Context,\n projectId: string,\n revision: string\n ) => Promise<boolean>;\n cancel: (context: Context, projectId: string) => Promise<boolean>;\n list: (\n context: Context,\n query: Core.QueryOptions<Project>\n ) => Promise<Project[]>;\n start: (context: Context) => Promise<boolean>;\n sendToApproval: (\n context: Context,\n projectId: string,\n data: SendToApproval\n ) => Promise<boolean>;\n approve: (\n context: Context,\n projectId: string,\n data: Approve\n ) => Promise<boolean>;\n deny: (\n context: Context,\n projectId: string,\n denyFeedback: string,\n categories?: string[]\n ) => Promise<boolean>;\n unschedule: (context: Context, projectId: string) => Promise<boolean>;\n rollback: (context: Context, projectId: string) => Promise<boolean>;\n getNext: (context: Context, userId: string) => Promise<Project | null>;\n getUserHistory: (\n context: Context,\n userId: string\n ) => Promise<Core.APIResponse<Project>>;\n\n getPoolSize(context: Context): Promise<number>;\n\n permissions: {\n isEligibleForFreeProject(context: Context): Promise<boolean>;\n };\n}\n\nexport const Endpoints = {\n Reorder: { uri: \"/projects/reorder/\", method: \"POST\" },\n List: { uri: \"/projects/list\", method: \"GET\" },\n GetNext: { uri: \"/projects/:userId/next\", method: \"GET\" },\n CreateProject: { uri: \"/projects/create\", method: \"POST\" },\n FindOne: { uri: `/projects/:projectId/`, method: \"GET\" },\n GetGoals: { uri: `/projects/goals/list/`, method: \"GET\" },\n Review: { uri: \"/projects/:projectId/review/\", method: \"POST\" },\n Cancel: { uri: \"/projects/:projectId/cancel/\", method: \"DELETE\" },\n StartEdition: { uri: \"/projects/edition/start/\", method: \"PUT\" },\n SendToApproval: {\n uri: \"/projects/:projectId/sendToApproval/\",\n method: \"PUT\",\n },\n IsEligibleForFreeProject: {\n uri: \"/projects/free/allowed/\",\n method: \"GET\",\n },\n Approve: { uri: \"/projects/:projectId/approve/\", method: \"POST\" },\n Unschedule: { uri: \"/projects/:projectId/unschedule/\", method: \"POST\" },\n Rollback: { uri: \"/projects/:projectId/rollback/\", method: \"POST\" },\n Deny: { uri: \"/projects/:projectId/deny/\", method: \"POST\" },\n GetUserHistory: { uri: \"/projects/user/:userId/history/\", method: \"GET\" },\n GetPoolSize: { uri: \"/projects/pool/size/\", method: \"GET\" },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as Project from \"../model/project\";\nimport Context from \"../model/Context\";\nimport * as Core from \"../model/core\";\nimport { buildQueryString } from \"../util/parseQuery\";\n\nclass ProjectAPI implements Project.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getPoolSize(context: Context): Promise<number> {\n const endpointData = Project.Endpoints.GetPoolSize;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n return data.size;\n }\n\n async reorder(\n ctx: Context,\n projectId: string,\n position: number\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.Reorder;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n { projectId, position },\n ctx\n );\n\n return data.success;\n }\n\n permissions = {\n isEligibleForFreeProject: async (ctx: Context): Promise<boolean> => {\n const endpointData = Project.Endpoints.IsEligibleForFreeProject;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data.canCreate;\n },\n };\n\n async getNext(ctx: Context, userId: string): Promise<Project.Entity | null> {\n const endpointData = Project.Endpoints.GetNext;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async getUserHistory(\n context: Context,\n userId: string\n ): Promise<Core.APIResponse<Project.Entity>> {\n const endpointData = Project.Endpoints.GetUserHistory;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async find(context: Context, projectId: string): Promise<Project.Entity> {\n const endpointData = Project.Endpoints.FindOne;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async create(\n context: Context,\n createData: Project.ProjectCreation\n ): Promise<Project.Entity> {\n const endpointData = Project.Endpoints.CreateProject;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n createData,\n context\n );\n return data;\n }\n\n async review(ctx: Context, pId: string, revision: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Review;\n const endpoint = endpointData.uri.replace(\":projectId\", pId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n { revision },\n ctx\n );\n return data.success;\n }\n\n async cancel(ctx: Context, projectId: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Cancel;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data.success;\n }\n\n async list(\n context: Context,\n query: Core.QueryOptions<Project.Entity>\n ): Promise<Project.Entity[]> {\n const endpointData = Project.Endpoints.List;\n const qs = buildQueryString(query);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}${qs}`,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async deny(\n ctx: Context,\n pId: string,\n denyFB: string,\n categories?: string[]\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.Deny;\n const endpoint = endpointData.uri.replace(\":projectId\", pId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n { denyFeedback: denyFB, categories: categories || [] },\n ctx\n );\n return data.success;\n }\n\n async unschedule(context: Context, projectId: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Unschedule;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async rollback(context: Context, projectId: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Rollback;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async start(context: Context): Promise<boolean> {\n const endpointData = Project.Endpoints.StartEdition;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async approve(\n ctx: Context,\n pId: string,\n approve: Project.Approve\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.Approve;\n const endpoint = endpointData.uri.replace(\":projectId\", pId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n approve,\n ctx\n );\n return data.success;\n }\n\n async sendToApproval(\n context: Context,\n projectId: string,\n approval: Project.SendToApproval\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.SendToApproval;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n approval,\n context\n );\n return data.success;\n }\n}\n\nexport default ProjectAPI;\n","export type { Goal as Entity, DailyMilestone } from \"./Goal.schema\";\n\nexport { GoalSchema, DailyMilestoneSchema } from \"./Goal.schema\";\n\nexport * from \"./Goal.api\";\n","import { z } from \"zod\";\n\nexport const DailyMilestoneSchema = z.object({\n id: z.string(),\n date: z.string(),\n target: z.number(),\n progress: z.number(),\n});\n\nexport const GoalSchema = z.object({\n id: z.string(),\n editorId: z.string(),\n isoWeek: z.string(), // ex: \"2026-W27\"\n target: z.number(),\n progress: z.number(),\n createdAt: z.number(),\n dailyMilestones: z.array(DailyMilestoneSchema),\n});\n\nexport type DailyMilestone = z.infer<typeof DailyMilestoneSchema>;\nexport type Goal = z.infer<typeof GoalSchema>;\n","import Context from \"../Context\";\nimport { Goal } from \"./Goal.schema\";\n\nexport interface IAPI {\n getGoals: (context: Context) => Promise<Goal[]>;\n}\n\nexport const Endpoints = {\n GetGoals: { uri: `/projects/goals/list/`, method: \"GET\" },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport Context from \"../model/Context\";\nimport * as Goal from \"../model/goal\";\n\nclass GoalAPI implements Goal.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getGoals(context: Context): Promise<Goal.Entity[]> {\n const endpointData = Goal.Endpoints.GetGoals;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n}\n\nexport default GoalAPI;\n","export interface IAPI {\n version: () => Promise<string>;\n}\n\nexport const Endpoints = {\n Version: {\n uri: \"/app-config/public/version/latest\",\n method: \"GET\",\n },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as APPConfig from \"../model/app-config\";\n\nclass AppConfigAPI implements APPConfig.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async version(): Promise<string> {\n const endpointInfo = APPConfig.Endpoints.Version;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method\n );\n\n return data.version;\n }\n}\n\nexport default AppConfigAPI;\n","export { NoteSchema, NoteHistorySchema } from \"./Note.schema\";\nexport type { Note as Entity, NoteHistory } from \"./Note.schema\";\nexport * from \"./Note.api\";\n","import { z } from \"zod\";\nimport { AssetSchema } from \"../asset\";\n\nconst NoteHistorySchema = z.object({\n type: z.enum([\n \"created\",\n \"updated\",\n \"deleted\",\n \"asset-added\",\n \"asset-removed\",\n ]),\n actorEmail: z.string().email(),\n timestamp: z.number(),\n details: z.string().optional(),\n});\n\nconst NoteSchema = z.object({\n id: z.string(),\n userId: z.string(),\n authorEmail: z.string().email(),\n assets: z.array(AssetSchema),\n title: z.string(),\n content: z.string(),\n createdAt: z.number(),\n modified: z.number(),\n history: z.array(NoteHistorySchema).optional(),\n});\n\ntype Note = z.infer<typeof NoteSchema>;\ntype NoteHistory = z.infer<typeof NoteHistorySchema>;\n\nexport { NoteHistorySchema, NoteSchema, NoteHistory, Note };\n","import Context from \"../Context\";\nimport { Note } from \"./Note.schema\";\n\nexport interface IAPI {\n list: (c: Context, userId: string) => Promise<Note[]>;\n add: (c: Context, note: Partial<Note>) => Promise<Note>;\n update: (c: Context, id: string, script: Partial<Note>) => Promise<Note>;\n delete: (c: Context, id: string) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n GetNotes: {\n uri: \"/user-context/notes/user/:userId/\",\n method: \"GET\",\n },\n AddNote: {\n uri: \"/user-context/notes/\",\n method: \"PUT\",\n },\n DeleteNote: {\n uri: \"/user-context/notes/:id/\",\n method: \"DELETE\",\n },\n UpdateNote: {\n uri: \"/user-context/notes/:id/\",\n method: \"POST\",\n },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport Context from \"../model/Context\";\nimport * as Note from \"../model/note\";\n\nclass NoteAPI implements Note.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async list(c: Context, userId: string): Promise<Note.Entity[]> {\n const endpointData = Note.Endpoints.GetNotes;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n c\n );\n return data;\n }\n\n async add(c: Context, note: Partial<Note.Entity>): Promise<Note.Entity> {\n const endpointData = Note.Endpoints.AddNote;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n note,\n c\n );\n return data;\n }\n\n async update(\n c: Context,\n id: string,\n toUpdate: Partial<Note.Entity>\n ): Promise<Note.Entity> {\n const endpointData = Note.Endpoints.UpdateNote;\n const endpoint = endpointData.uri.replace(\":id\", id);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n toUpdate,\n c\n );\n return data;\n }\n\n async delete(c: Context, id: string): Promise<boolean> {\n const endpointData = Note.Endpoints.DeleteNote;\n const endpoint = endpointData.uri.replace(\":id\", id);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n c\n );\n return data;\n }\n}\n\nexport default NoteAPI;\n","import NotificationAPI from \"../api/Notification.api\";\nimport PromptAPI from \"../api/Prompt.api\";\nimport SubscriptionAPI from \"../api/Subscription.api\";\nimport TenantAPI from \"../api/Tenant.api\";\nimport UserAPI from \"../api/User.api\";\nimport TrackAPI from \"../api/Track.api\";\nimport EmailAPI from \"../api/Email.api\";\nimport ProjectAPI from \"../api/Project.api\";\nimport GoalAPI from \"../api/Goal.api\";\nimport AppConfigAPI from \"../api/AppConfig.api\";\nimport NoteAPI from \"../api/Note.api\";\n\nimport Environment from \"./Env\";\n\nimport * as Prompt from \"./../model/prompt\";\nimport * as Subscription from \"./../model/subscription\";\nimport * as User from \"./../model/user\";\nimport * as Tenant from \"./../model/tenant\";\nimport * as Track from \"./../model/track\";\nimport * as Email from \"./../model/email\";\nimport * as Project from \"./../model/project\";\nimport * as Goal from \"./../model/goal\";\nimport * as Notification from \"./../model/notification\";\nimport * as AppConfig from \"./../model/app-config\";\nimport * as Note from \"./../model/note\";\n\nexport class ShredAPI {\n user: User.IAPI;\n goal: Goal.IAPI;\n subscription: Subscription.IAPI;\n prompt: Prompt.IAPI;\n pushNotification: Notification.IAPI;\n email: Email.IAPI;\n tenant: Tenant.IAPI;\n app: AppConfig.IAPI;\n project: Project.IAPI;\n track: Track.IAPI;\n note: Note.IAPI;\n\n constructor(env: Environment) {\n this.user = new UserAPI(env);\n this.goal = new GoalAPI(env);\n this.prompt = new PromptAPI(env);\n this.subscription = new SubscriptionAPI(env);\n this.pushNotification = new NotificationAPI(env);\n this.email = new EmailAPI(env);\n this.tenant = new TenantAPI(env);\n this.project = new ProjectAPI(env);\n this.app = new AppConfigAPI(env);\n this.track = new TrackAPI(env);\n this.note = new NoteAPI(env);\n }\n}\n","import ConflictException from \"./ConflictException\";\nimport InvalidArgumentException from \"./InvalidArgumentException\";\nimport ResourceNotFoundException from \"./ResourceNotFoundException\";\nimport ShredException from \"./ShredException\";\nimport UnauthorizedException from \"./UnauthorizedException\";\nimport ForbiddenException from \"./ForbiddenException\";\n\nconst Exceptions = {\n ConflictException,\n InvalidArgumentException,\n ResourceNotFoundException,\n ShredException,\n UnauthorizedException,\n ForbiddenException,\n};\n\nexport default Exceptions;\n\nexport type {\n ConflictException,\n InvalidArgumentException,\n ResourceNotFoundException,\n ShredException,\n UnauthorizedException,\n ForbiddenException,\n};\n","export default class ShredException extends Error {\n public status: number;\n\n constructor(message: string, status: number) {\n super(message);\n this.name = \"ShredException\";\n this.status = status;\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class ConflictException extends ShredException {\n constructor(message: string) {\n super(message, 409);\n this.name = \"ConflictException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class InvalidArgumentException extends ShredException {\n constructor(message: string) {\n super(message, 400);\n this.name = \"InvalidArgumentException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class ResourceNotFoundException extends ShredException {\n constructor(message: string) {\n super(message, 404);\n this.name = \"ResourceNotFoundException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class UnauthorizedException extends ShredException {\n constructor(message: string) {\n super(message, 401);\n this.name = \"UnauthorizedException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class ForbiddenException extends ShredException {\n constructor(message: string) {\n super(message, 403);\n this.name = \"ForbiddenException\";\n }\n}\n","export { PromptSchema, ScriptSchema, CategorySchema } from \"./Prompt.schema\";\nexport type { Prompt as Entity, Script, Category } from \"./Prompt.schema\";\nexport * from \"./Prompt.api\";\n","import { z } from \"zod\";\n\nexport const ScriptSchema = z.object({\n id: z.string(),\n title: z.string(),\n content: z.string(),\n tags: z.array(z.string()).optional(),\n userId: z.string().optional(),\n});\n\nexport const CategorySchema = z.object({\n id: z.string(),\n title: z.string(),\n pictureUrl: z.string().url(),\n backgroundColor: z.string(),\n active: z.boolean(),\n scripts: z.array(ScriptSchema),\n});\n\nexport const PromptSchema = z.object({\n id: z.string(),\n tenantId: z.string(),\n categories: z.array(CategorySchema),\n});\n\n// Infer types\nexport type Script = z.infer<typeof ScriptSchema>;\nexport type Category = z.infer<typeof CategorySchema>;\nexport type Prompt = z.infer<typeof PromptSchema>;\n","import Context from \"../Context\";\nimport { Prompt, Script } from \"./Prompt.schema\";\n\nexport interface IAPI {\n getPrompt: (c: Context) => Promise<Prompt>;\n addScript: (c: Context, script: Partial<Script>) => Promise<Script>;\n deleteScript: (c: Context, id: string) => Promise<boolean>;\n getScripts: (c: Context) => Promise<Script[]>;\n updateScript: (\n c: Context,\n id: string,\n script: Partial<Script>\n ) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n GetPrompt: {\n uri: \"/prompts/getPrompt\",\n method: \"GET\",\n },\n AddScript: {\n uri: \"/prompts/script/new/\",\n method: \"POST\",\n },\n DeleteScript: {\n uri: \"/prompts/script/:id/delete/\",\n method: \"DELETE\",\n },\n ListScript: {\n uri: \"/prompts/script/list/\",\n method: \"GET\",\n },\n UpdateScript: {\n uri: \"/prompts/script/:id/update/\",\n method: \"PUT\",\n },\n};\n","export type { Tenant as Entity, Preferences } from \"./Tenant.schema\";\nexport { TenantSchema, PreferencesSchema } from \"./Tenant.schema\";\nexport * from \"./Tenant.api\";\n","import { z } from \"zod\";\nimport { SubscriptionSchema } from \"../subscription/Subscription.schema\";\n\nexport const PreferencesSchema = z.object({\n iconUrl: z.string().url(),\n logoUrl: z.string().url(),\n primaryColor: z.string(),\n secondaryColor: z.string(),\n guidelinesUrl: z.string().url().optional(),\n});\n\nexport const TenantSchema = z.object({\n id: z.string(),\n name: z.string(),\n isActive: z.boolean(),\n isSubscriptionActive: z.boolean(),\n preferences: PreferencesSchema,\n inviteCode: z.string(),\n totalUsersAllowed: z.number(),\n currentUsersSize: z.number().optional(),\n chargeByEmail: z.boolean(),\n defaultProductId: z.string().optional(),\n defaultPlanId: z.string().optional(),\n defaultCoupomCode: z.string().optional(),\n allowedProducts: z.array(z.string()).optional(),\n useOwnScripts: z.boolean().optional(),\n subscription: z.optional(z.lazy(() => SubscriptionSchema)),\n});\n\nexport type Tenant = z.infer<typeof TenantSchema>;\nexport type Preferences = z.infer<typeof PreferencesSchema>;\n","import { z } from \"zod\";\n\nexport enum Type {\n CUSTOMER_SUBSCRIPTION = 0,\n TENANT_SUBSCRIPTION = 1,\n}\n\nexport const SubscriptionTypeSchema = z.nativeEnum(Type);\n\nexport const PlanSchema = z.object({\n id: z.string(),\n currency: z.string(),\n price: z.number(),\n interval: z.string(),\n metadata: z.record(z.string()),\n subscriptionItemId: z.string(),\n});\n\nexport const DescriptionSchema = z.object({\n description: z.string(),\n subtitle: z.string(),\n});\n\nexport const ProductSchema = z.object({\n id: z.string(),\n name: z.string(),\n descriptions: z.array(DescriptionSchema),\n metadata: z.any(),\n plans: z.array(PlanSchema),\n percentOff: z.number().default(0),\n});\n\nexport const ChargeSchema = z.object({\n id: z.number(),\n created: z.number(),\n paid: z.boolean(),\n receiptUrl: z.string(),\n status: z.string(),\n price: z.string(),\n paymentType: z.string(),\n last4: z.string().optional(),\n brand: z.string().optional(),\n});\n\nexport const SubscriptionSchema = z.object({\n id: z.string(),\n status: z.string(),\n startDate: z.number().optional(),\n daysUntilDue: z.number().optional(),\n renewAutomatically: z.boolean().optional(),\n currentPeriodStart: z.number().optional(),\n currentPeriodEnd: z.number().optional(),\n paymentMethodId: z.string().optional(),\n product: ProductSchema,\n type: z.nativeEnum(Type).optional(),\n plan: PlanSchema.optional(),\n});\n\nexport type Subscription = z.infer<typeof SubscriptionSchema>;\nexport type Charge = z.infer<typeof ChargeSchema>;\nexport type Plan = z.infer<typeof PlanSchema>;\nexport type Product = z.infer<typeof ProductSchema>;\n","import Context from \"../Context\";\nimport { Tenant } from \"./Tenant.schema\";\n\nexport interface IAPI {\n getByInviteCode: (code: string, context?: Context) => Promise<Tenant | null>;\n create: (tenant: Tenant, context: Context) => Promise<boolean>;\n list: (context: Context) => Promise<Tenant[]>;\n getTenant: (context: Context, tenantId?: string) => Promise<Tenant | null>;\n update: (\n tenantId: string,\n data: Pick<Tenant, \"preferences\">,\n context: Context\n ) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n GetByInviteCode: {\n uri: \"/tenants/public/invitation/\",\n method: \"GET\",\n },\n CreateTenant: {\n uri: \"/tenants/create\",\n method: \"PUT\",\n },\n GetTenant: {\n uri: \"/tenants/me\",\n method: \"GET\",\n },\n GetTenantById: {\n uri: \"/tenants/:tenantId/find\",\n method: \"GET\",\n },\n UpdateTenant: {\n uri: \"/tenants/update\",\n method: \"POST\",\n },\n ListAll: {\n uri: \"/tenants/list\",\n method: \"GET\",\n },\n};\n","export type { User as Entity, Preferences, Update } from \"./User.schema\";\nexport { UserSchema, PreferencesSchema, Role, System } from \"./User.schema\";\nexport * from \"./User.api\";\n","import { z } from \"zod\";\n\nexport enum Role {\n USER = \"User\",\n EDITOR = \"Editor\",\n QA = \"QA\",\n ADMIN = \"ADMIN\",\n SYSTEM = \"SYSTEM\",\n}\n\nexport enum System {\n APP = \"APP\",\n EDITOR = \"EDITOR\",\n QA = \"QA\",\n ADMIN = \"ADMIN\",\n}\n\nexport const PreferencesSchema = z.object({\n primaryColor: z.string().optional(),\n secondaryColor: z.string().optional(),\n facebookLink: z.string().optional(),\n isFeedbackEnabled: z.boolean().default(true).optional(),\n instagramLink: z.string().optional(),\n bRoll: z.boolean().optional(),\n logo: z.string().optional(),\n});\n\nexport const UserSchema = z.object({\n id: z.string(),\n name: z.string(),\n email: z.string().email(),\n fcmToken: z.string().optional(),\n profession: z.string().optional(),\n photoUrl: z.string().optional(),\n preferences: PreferencesSchema.optional(),\n tenantId: z.string().optional(),\n editorId: z.string().optional(),\n timezone: z.string().optional(),\n experienceId: z.string().optional(),\n customerId: z.string(),\n role: z.nativeEnum(Role),\n});\n\nexport type User = z.infer<typeof UserSchema>;\nexport type Preferences = z.infer<typeof PreferencesSchema>;\nexport type Update = Pick<\n User,\n | \"name\"\n | \"profession\"\n | \"preferences\"\n | \"photoUrl\"\n | \"fcmToken\"\n | \"timezone\"\n | \"experienceId\"\n>;\n","import * as Core from \"../core\";\nimport Context from \"../Context\";\nimport { System, User, Update } from \"./User.schema\";\n\nexport interface IAPI {\n getUserInfo: (context: Context) => Promise<User>;\n isEmailAvaliable: (email: string) => Promise<boolean>;\n sendValidationCode: (email: string) => Promise<boolean>;\n confirmCode: (\n email: string,\n code: number,\n keepCode?: boolean\n ) => Promise<boolean>;\n changePassword: (\n email: string,\n pass: string,\n passConfirm: string,\n code: number\n ) => Promise<boolean>;\n changeEmail: (ctx: Context, email: string, code: number) => Promise<boolean>;\n authenticate: (\n email: string,\n password: string,\n system: System\n ) => Promise<string>;\n update: (context: Context, update: Partial<Update>) => Promise<boolean>;\n setup: (context: Context) => Promise<boolean>;\n getBindedUsers: (ctx: Context) => Promise<User[]>;\n deleteAccount: (ctx: Context) => Promise<boolean>;\n getIntegrationToken: (ctx: Context) => Promise<string | null>;\n createIntegrationToken: (ctx: Context) => Promise<string>;\n search: (\n ctx: Context,\n query: Core.QueryOptions<User>\n ) => Promise<Core.APIResponse<User>>;\n createUser: (\n email: string,\n name: string,\n password: string,\n passwordConfirmation: string,\n profession: string | null,\n invitationCode: string | null\n ) => Promise<User>;\n}\n\nexport const Endpoints = {\n ChangeEmail: { uri: \"/accounts/user/changeEmail\", method: \"PUT\" },\n GetUserInfo: { uri: \"/accounts/user/info\", method: \"GET\" },\n GetBindedUsers: { uri: \"/accounts/binded/list\", method: \"GET\" },\n EnableUser: { uri: \"/api/user/register\", method: \"POST\" },\n ChangePassword: { uri: \"/accounts/public/changePassword/\", method: \"POST\" },\n IsEmailAvaliable: { uri: \"/accounts/public/email/avaliable\", method: \"GET\" },\n GetIntegrationToken: { uri: \"/accounts/user/getToken/\", method: \"GET\" },\n CreateToken: { uri: \"/accounts/user/createToken/\", method: \"POST\" },\n ConfirmCode: { uri: \"/accounts/public/email/validate\", method: \"POST\" },\n DeleteAccount: { uri: \"/accounts/user/delete/\", method: \"DELETE\" },\n SendValidationCode: { uri: \"/accounts/public/email/send\", method: \"POST\" },\n Authenticate: { uri: \"/accounts/public/login\", method: \"POST\" },\n CreateUser: { uri: \"/accounts/public/create\", method: \"POST\" },\n UpdateUser: { uri: \"/accounts/user/update\", method: \"PUT\" },\n Setup: { uri: \"/accounts/user/setup/\", method: \"POST\" },\n Search: { uri: \"/accounts/users/search/\", method: \"GET\" },\n};\n","export type {\n Subscription as Entity,\n Product,\n Plan,\n Charge,\n} from \"./Subscription.schema\";\n\nexport {\n SubscriptionSchema,\n ProductSchema,\n PlanSchema,\n ChargeSchema,\n Type,\n SubscriptionTypeSchema,\n} from \"./Subscription.schema\";\n\nexport * from \"./Subscription.api\";\n","import Context from \"../Context\";\nimport { Charge, Product, Subscription } from \"./Subscription.schema\";\n\nexport interface IAPI {\n getCharges: (ctx: Context) => Promise<Charge[]>;\n getPortalUrl: (ctx: Context) => Promise<string>;\n getSubscription: (\n context: Context,\n userId?: string\n ) => Promise<Subscription | null>;\n getProduct: (id: string, context?: Context) => Promise<Product>;\n getProducts: (ctx?: Context) => Promise<Product[]>;\n charge: (ctx: Context) => Promise<boolean>;\n pause: (ctx: Context) => Promise<boolean>;\n resume: (ctx: Context) => Promise<boolean>;\n updatePlan: (ctx: Context, planId: string) => Promise<boolean>;\n createCheckout: (planId: string | null, ctx: Context) => Promise<string>;\n}\n\nexport const Endpoints = {\n GetPortal: {\n uri: \"/subscriptions/portal/\",\n method: \"GET\",\n },\n GetProduct: {\n uri: \"/subscriptions/products/public/retrieve/\",\n method: \"GET\",\n },\n GetActiveSubscription: {\n uri: \"/subscriptions/active/\",\n method: \"GET\",\n },\n GetCharges: {\n uri: \"/subscriptions/payment/charge/list/\",\n method: \"GET\",\n },\n GetUserActiveSubscription: {\n uri: \"/subscriptions/:userId/find/\",\n method: \"GET\",\n },\n GetProducts: {\n uri: \"/subscriptions/products/public/list/\",\n method: \"GET\",\n },\n GetProductsByUser: {\n uri: \"/subscriptions/products/list/\",\n method: \"GET\",\n },\n Checkout: {\n uri: \"/subscriptions/payment/checkout/\",\n method: \"POST\",\n },\n Charge: {\n uri: \"/subscriptions/payment/charge/\",\n method: \"POST\",\n },\n Pause: {\n uri: \"/subscriptions/pause/\",\n method: \"PUT\",\n },\n Resume: {\n uri: \"/subscriptions/resume/\",\n method: \"PUT\",\n },\n UpdatePlan: {\n uri: \"/subscriptions/plan/update/\",\n method: \"PUT\",\n },\n};\n","export type { Track as Entity, TrackParam } from \"./Track.schema\";\nexport { TrackSchema, TrackParamSchema } from \"./Track.schema\";\nexport * from \"./Track.api\";\n","import { z } from \"zod\";\n\nexport const TrackParamSchema = z.object({\n name: z.string(),\n value: z.union([z.string(), z.number()]),\n});\n\nexport const TrackSchema = z.object({\n category: z.string(),\n label: z.string(),\n action: z.string(),\n params: z.array(TrackParamSchema).optional(),\n});\n\nexport type Track = z.infer<typeof TrackSchema>;\nexport type TrackParam = z.infer<typeof TrackParamSchema>;\n","import { Track } from \"./Track.schema\";\n\nexport interface IAPI {\n send: (t: Track) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n Track: {\n uri: \"/track/public/send/\",\n method: \"POST\",\n },\n};\n","export * from \"./Query\";\nexport * from \"./APIResponse\";\n"],"mappings":"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","names":["fetch","Frequency","WeekDay","CriteriaType","TransportType","Status","Endpoints","import_zod","Endpoints","Endpoints","Endpoints","Status","import_zod","import_zod","Status","CaptionStyle","Endpoints","Endpoints","Endpoints","import_zod","Endpoints","Endpoints","Endpoints","Endpoints","Endpoints","import_zod","Endpoints","Endpoints","Endpoints","import_zod","Endpoints","Endpoints","import_zod","import_zod","Type","Endpoints","Endpoints","PreferencesSchema","import_zod","Role","System","PreferencesSchema","Endpoints","Endpoints","Endpoints","Endpoints","import_zod","Endpoints"]}
package/dist/index.mjs CHANGED
@@ -1640,6 +1640,7 @@ var PreferencesSchema2 = z10.object({
1640
1640
  primaryColor: z10.string().optional(),
1641
1641
  secondaryColor: z10.string().optional(),
1642
1642
  facebookLink: z10.string().optional(),
1643
+ isFeedbackEnabled: z10.boolean().default(true).optional(),
1643
1644
  instagramLink: z10.string().optional(),
1644
1645
  bRoll: z10.boolean().optional(),
1645
1646
  logo: z10.string().optional()
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/HTTPClient.ts","../src/model/notification/index.ts","../src/model/notification/Notification.schema.ts","../src/model/notification/Notification.api.ts","../src/api/Notification.api.ts","../src/api/Prompt.api.ts","../src/api/Subscription.api.ts","../src/api/Tenant.api.ts","../src/util/parseQuery.ts","../src/api/User.api.ts","../src/api/Track.api.ts","../src/model/email/index.ts","../src/model/email/Email.schema.ts","../src/model/email/Email.api.ts","../src/api/Email.api.ts","../src/model/project/index.ts","../src/model/project/Project.schema.ts","../src/model/asset/index.ts","../src/model/asset/Asset.schema.ts","../src/model/project/Project.api.ts","../src/api/Project.api.ts","../src/model/goal/index.ts","../src/model/goal/Goal.schema.ts","../src/model/goal/Goal.api.ts","../src/api/Goal.api.ts","../src/model/app-config/AppConfig.api.ts","../src/api/AppConfig.api.ts","../src/model/note/index.ts","../src/model/note/Note.schema.ts","../src/model/note/Note.api.ts","../src/api/Note.api.ts","../src/model/Api.ts","../src/model/exceptions/index.ts","../src/model/exceptions/ShredException.ts","../src/model/exceptions/ConflictException.ts","../src/model/exceptions/InvalidArgumentException.ts","../src/model/exceptions/ResourceNotFoundException.ts","../src/model/exceptions/UnauthorizedException.ts","../src/model/exceptions/ForbiddenException.ts","../src/model/prompt/index.ts","../src/model/prompt/Prompt.schema.ts","../src/model/prompt/Prompt.api.ts","../src/model/tenant/index.ts","../src/model/tenant/Tenant.schema.ts","../src/model/subscription/Subscription.schema.ts","../src/model/tenant/Tenant.api.ts","../src/model/user/index.ts","../src/model/user/User.schema.ts","../src/model/user/User.api.ts","../src/model/subscription/index.ts","../src/model/subscription/Subscription.api.ts","../src/model/track/index.ts","../src/model/track/Track.schema.ts","../src/model/track/Track.api.ts","../src/model/core/index.ts","../src/index.ts"],"sourcesContent":["import Environment from \"../model/Env\";\nimport Context from \"./../model/Context\";\nimport fetch from \"cross-fetch\";\n\nconst HOSTS = {\n prod: \"https://api.shreditapp.com\",\n staging: \"https://api.staging.shreditapp.com\",\n local: \"https://api.staging.shreditapp.com\",\n};\n\nconst OLD_HOSTS = {\n prod: \"https://api.shredmedia.co\",\n staging: \"https://api-staging.shredmedia.co\",\n local: \"https://api-staging.shredmedia.co\",\n};\n\nexport default class HTTPClient {\n async makeRequest(\n env: Environment,\n uri: string,\n method: string,\n data?: any,\n context?: Context | null,\n useLegacyApi?: boolean\n ): Promise<any> {\n const hostDict = useLegacyApi ? OLD_HOSTS : HOSTS;\n const host = hostDict[env] || hostDict.staging;\n const url = host + uri;\n\n const headers: Record<string, string> = {\n \"Content-Type\": useLegacyApi\n ? \"application/x-www-form-urlencoded\"\n : \"application/json\",\n };\n\n if (context?.token) {\n headers[\"Authorization\"] = `Bearer ${context.token}`;\n }\n\n if (context?.requestId) {\n headers[\"X-Request-ID\"] = context.requestId;\n }\n\n const fetchOptions: RequestInit = {\n method,\n headers,\n };\n\n if (method !== \"GET\" && data) {\n fetchOptions.body = useLegacyApi\n ? new URLSearchParams(data).toString()\n : JSON.stringify(data);\n }\n\n try {\n const response = await fetch(url, fetchOptions);\n\n if (!response.ok) {\n const errorText = await response.text();\n throw {\n status: response.status,\n statusText: response.statusText,\n body: errorText,\n };\n }\n\n try {\n return await response.json();\n } catch {\n return await response.text();\n }\n } catch (error: any) {\n let parsedBody: any = {};\n\n try {\n parsedBody = error.body ? JSON.parse(error.body) : {};\n } catch {\n parsedBody = { message: error.body || \"Unknown error\" };\n }\n\n throw {\n message: parsedBody.message || \"Unexpected error occurred\",\n original: error,\n };\n }\n }\n}\n","export type {\n Trigger,\n NotificationDetail,\n NotificationItem,\n RecurrenceRule,\n History,\n Criteria,\n} from \"./Notification.schema\";\n\nexport {\n TriggerSchema,\n NotificationDetailSchema,\n NotificationItemSchema,\n RecurrenceRuleSchema,\n CriteriaSchema,\n HistorySchema,\n Frequency,\n WeekDay,\n CriteriaType,\n TransportType,\n Status,\n} from \"./Notification.schema\";\n\nexport * from \"./Notification.api\";\n","import { z } from \"zod\";\n\nexport enum Frequency {\n DAILY = \"daily\",\n WEEKLY = \"weekly\",\n MONTHLY = \"monthly\",\n}\n\nexport enum WeekDay {\n MONDAY = 1,\n TUESDAY = 2,\n WEDNESDAY = 3,\n THURSDAY = 4,\n FRIDAY = 5,\n SATURDAY = 6,\n SUNDAY = 7,\n}\n\nexport enum CriteriaType {\n AllUsers = \"allUsers\",\n NoProjects = \"noProjects\",\n NoSubscription = \"noSubscription\",\n UsersFromTier = \"usersFromTier\",\n}\n\nexport enum TransportType {\n Push = \"push\",\n Email = \"email\",\n}\n\nexport enum Status {\n SCHEDULED = \"scheduled\",\n RUNNING = \"running\",\n COMPLETED = \"completed\",\n FAILED = \"failed\",\n PAUSED = \"paused\",\n CANCELLED = \"cancelled\",\n ACTIVE = \"active\",\n EXPIRED = \"expired\",\n}\n\nexport const NotificationItemSchema = z.object({\n id: z.string(),\n userId: z.string(),\n triggerId: z.string().optional(),\n title: z.string(),\n body: z.string(),\n status: z.enum([\"failed\", \"delivered\", \"deleted\"]),\n deliveredAt: z.number(),\n openedAt: z.number().optional(),\n deletedAt: z.number().optional(),\n cta: z.object({ label: z.string(), url: z.string().url() }).optional(),\n metadata: z.record(z.union([z.string(), z.number()])),\n error: z.string().optional(),\n});\n\nexport const NotificationDetailSchema = NotificationItemSchema.pick({\n title: true,\n body: true,\n userId: true,\n metadata: true,\n});\n\nexport const CriteriaSchema = z.object({\n type: z.nativeEnum(CriteriaType),\n params: z.record(z.any()),\n});\n\nexport const HistorySchema = z.object({\n batchId: z.string(),\n executedAt: z.number(),\n timezone: z.string(),\n status: z.enum([\"success\", \"failed\", \"info\", \"warn\"]),\n users: z.object({\n total: z.number(),\n success: z.number(),\n error: z.number(),\n }),\n errorList: z\n .array(\n z.object({\n token: z.string(),\n error: z.string(),\n })\n )\n .optional(),\n executionTimeDuration: z.number().optional(),\n});\n\nexport const RecurrenceRuleSchema = z.object({\n frequency: z.nativeEnum(Frequency),\n interval: z.number(),\n weekDays: z.array(z.nativeEnum(WeekDay)).optional(),\n dayOfMonth: z.number().optional(),\n endDate: z.string().optional(),\n ocurrences: z.number().optional(),\n});\n\nexport const TriggerSchema = z.object({\n id: z.string(),\n title: z.string(),\n description: z.string(),\n transportType: z.array(z.nativeEnum(TransportType)),\n notification: NotificationDetailSchema,\n history: z.array(HistorySchema).optional(),\n status: z.nativeEnum(Status),\n recurrence: RecurrenceRuleSchema.optional(),\n timezone: z.string().nullable().optional(),\n tenantIds: z.array(z.string()).optional(),\n executionDate: z.string().optional(),\n timeOfDay: z.string(),\n criteria: CriteriaSchema,\n nextExecution: z.number().optional(),\n createdAt: z.number().optional(),\n modified: z.number().optional(),\n});\n\nexport type NotificationItem = z.infer<typeof NotificationItemSchema>;\nexport type NotificationDetail = z.infer<typeof NotificationDetailSchema>;\nexport type Trigger = z.infer<typeof TriggerSchema>;\nexport type RecurrenceRule = z.infer<typeof RecurrenceRuleSchema>;\nexport type History = z.infer<typeof HistorySchema>;\nexport type Criteria = z.infer<typeof CriteriaSchema>;\n","import Context from \"../Context\";\nimport {\n Trigger,\n NotificationDetail,\n NotificationItem,\n} from \"./Notification.schema\";\nimport * as Core from \"../core/\";\n\nexport interface IAPI {\n getTriggers: (ctx: Context) => Promise<Core.APIResponse<Trigger>>;\n createTrigger: (ctx: Context, t: Trigger) => Promise<Trigger>;\n deleteTrigger: (ctx: Context, triggerId: string) => Promise<boolean>;\n updateTrigger: (\n ctx: Context,\n triggerId: string,\n trigger: Partial<Trigger>\n ) => Promise<Trigger>;\n push: (\n context: Context,\n notification: NotificationDetail\n ) => Promise<boolean>;\n getNotifications: (\n ctx: Context\n ) => Promise<Core.APIResponse<NotificationItem>>;\n markAsRead: (ctx: Context, id: string) => Promise<boolean>;\n clearNotifications: (ctx: Context) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n Create: { uri: \"/notifications/trigger/\", method: \"POST\" },\n List: { uri: \"/notifications/trigger/list/\", method: \"GET\" },\n Update: { uri: \"/notifications/trigger/:id/\", method: \"PUT\" },\n Delete: { uri: \"/notifications/trigger/:id/\", method: \"DELETE\" },\n Push: { uri: \"/notifications/push/\", method: \"POST\" },\n ListNotifications: { uri: \"/notifications/list/\", method: \"GET\" },\n MarkAsRead: { uri: \"/notifications/:id/read/\", method: \"PUT\" },\n ClearNotifications: { uri: \"/notifications/clear/\", method: \"DELETE\" },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as Notification from \"../model/notification\";\nimport * as Core from \"../model/core\";\nimport Context from \"../model/Context\";\n\nclass NotificationAPI implements Notification.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async clearNotifications(ctx: Context): Promise<boolean> {\n const endpointData = Notification.Endpoints.ClearNotifications;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async markAsRead(ctx: Context, id: string): Promise<boolean> {\n const endpointData = Notification.Endpoints.MarkAsRead;\n const endpoint = endpointData.uri.replace(\":id\", id);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async getNotifications(\n ctx: Context\n ): Promise<Core.APIResponse<Notification.NotificationItem>> {\n const endpointData = Notification.Endpoints.ListNotifications;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async deleteTrigger(ctx: Context, triggerId: string): Promise<boolean> {\n const endpointData = Notification.Endpoints.Delete;\n const endpoint = endpointData.uri.replace(\":id\", triggerId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async updateTrigger(\n ctx: Context,\n triggerId: string,\n t: Partial<Notification.Trigger>\n ): Promise<Notification.Trigger> {\n const endpointData = Notification.Endpoints.Update;\n const endpoint = endpointData.uri.replace(\":id\", triggerId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n t,\n ctx\n );\n return data;\n }\n\n async createTrigger(\n ctx: Context,\n t: Notification.Trigger\n ): Promise<Notification.Trigger> {\n const endpointData = Notification.Endpoints.Create;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n t,\n ctx\n );\n return data;\n }\n\n async getTriggers(\n ctx: Context\n ): Promise<Core.APIResponse<Notification.Trigger>> {\n const endpointInfo = Notification.Endpoints.List;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n return data;\n }\n\n async push(\n ctx: Context,\n notification: Notification.NotificationDetail\n ): Promise<boolean> {\n const endpointInfo = Notification.Endpoints.Push;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n notification,\n ctx\n );\n\n return data.success;\n }\n}\n\nexport default NotificationAPI;\n","import Context from \"../model/Context\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport { Prompt } from \"../\";\nimport Environment from \"../model/Env\";\n\nclass PromptAPI implements Prompt.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getPrompt(context: Context): Promise<Prompt.Entity> {\n const endpointInfo = Prompt.Endpoints.GetPrompt;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n context\n );\n return data;\n }\n\n async getScripts(context: Context): Promise<Prompt.Script[]> {\n const endpointInfo = Prompt.Endpoints.ListScript;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n context\n );\n return data;\n }\n\n async updateScript(\n c: Context,\n id: string,\n script: Partial<Prompt.Script>\n ): Promise<boolean> {\n const endpointData = Prompt.Endpoints.UpdateScript;\n const endpoint = endpointData.uri.replace(\":id\", id);\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n { ...script },\n c\n );\n return data;\n }\n\n async addScript(\n c: Context,\n script: Partial<Prompt.Script>\n ): Promise<Prompt.Script> {\n const endpointInfo = Prompt.Endpoints.AddScript;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n { ...script },\n c\n );\n return data;\n }\n\n async deleteScript(c: Context, id: string): Promise<boolean> {\n const endpointData = Prompt.Endpoints.DeleteScript;\n const endpoint = endpointData.uri.replace(\":id\", id);\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n c\n );\n return data;\n }\n}\n\nexport default PromptAPI;\n","import Context from \"../model/Context\";\nimport { Subscription } from \"../\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\n\nclass SubscriptionAPI implements Subscription.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getPortalUrl(ctx: Context): Promise<string> {\n const endpointInfo = Subscription.Endpoints.GetPortal;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data.url;\n }\n\n async updatePlan(ctx: Context, planId: string): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.UpdatePlan;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n { planId },\n ctx\n );\n\n return data;\n }\n\n async getProduct(\n id: string,\n context?: Context\n ): Promise<Subscription.Product> {\n const endpointInfo = Subscription.Endpoints.GetProduct;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}/${id}`,\n endpointInfo.method,\n null,\n context\n );\n\n return data;\n }\n async getCharges(ctx: Context): Promise<Subscription.Charge[]> {\n const endpointInfo = Subscription.Endpoints.GetCharges;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data;\n }\n\n async getSubscription(\n context: Context,\n userId?: string\n ): Promise<Subscription.Entity | null> {\n const endpointInfo = Subscription.Endpoints.GetActiveSubscription;\n let uri = endpointInfo.uri;\n let method = endpointInfo.method;\n\n if (userId) {\n const endpointData = Subscription.Endpoints.GetUserActiveSubscription;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n uri = endpoint;\n method = endpointData.method;\n }\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n uri,\n method,\n null,\n context\n );\n return data;\n }\n\n async charge(ctx: Context): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.Charge;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data.success;\n }\n\n async pause(ctx: Context): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.Pause;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n return data;\n }\n\n async resume(ctx: Context): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.Resume;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n return data;\n }\n\n async getProducts(ctx?: Context): Promise<Subscription.Product[]> {\n const endpointInfo = ctx\n ? Subscription.Endpoints.GetProductsByUser\n : Subscription.Endpoints.GetProducts;\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data;\n }\n\n async createCheckout(planId: string | null, ctx: Context): Promise<string> {\n const endpointInfo = Subscription.Endpoints.Checkout;\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n { planId },\n ctx\n );\n\n return data.url;\n }\n}\n\nexport default SubscriptionAPI;\n","import Context from \"../model/Context\";\nimport { Tenant } from \"../\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\n\nclass TenantAPI implements Tenant.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getByInviteCode(\n inviteCode: string,\n context?: Context\n ): Promise<Tenant.Entity | null> {\n const endpointInfo = Tenant.Endpoints.GetByInviteCode;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}/${inviteCode}`,\n endpointInfo.method,\n null,\n context\n );\n\n return data;\n }\n\n async getTenant(\n context: Context,\n tenantId?: string\n ): Promise<Tenant.Entity | null> {\n const endpointInfo = Tenant.Endpoints.GetTenant;\n let uri = endpointInfo.uri;\n let method = endpointInfo.method;\n\n if (tenantId) {\n const endpointData = Tenant.Endpoints.GetTenantById;\n const endpoint = endpointData.uri.replace(\":tenantId\", tenantId);\n uri = endpoint;\n method = endpointData.method;\n }\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n uri,\n method,\n null,\n context\n );\n\n return data;\n }\n\n async create(t: Tenant.Entity, context: Context): Promise<boolean> {\n const endpointInfo = Tenant.Endpoints.CreateTenant;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n { ...t },\n context\n );\n\n return data;\n }\n\n async list(context: Context): Promise<Tenant.Entity[]> {\n const endpointInfo = Tenant.Endpoints.ListAll;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n null,\n context\n );\n\n return data;\n }\n\n async update(\n tenantId: string,\n updateData: Pick<Tenant.Entity, \"preferences\">,\n context: Context\n ): Promise<boolean> {\n const endpointInfo = Tenant.Endpoints.UpdateTenant;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n { tenantId, data: updateData },\n context\n );\n\n return data;\n }\n}\n\nexport default TenantAPI;\n","import * as Core from \"../model/core\";\n\nexport const buildQueryString = <T>(\n query: Partial<Core.QueryOptions<T>>\n): string => {\n const params: Record<string, string[]> = {};\n\n if (query.perPage) {\n params[\"perPage\"] = [String(query.perPage)];\n }\n\n if (query.cursor !== undefined && query.cursor !== null) {\n params[\"cursor\"] = [String(query.cursor)];\n }\n\n if (query.orderBy) {\n params[\"orderBy\"] = [\n `${String(query.orderBy.field)}:${query.orderBy.direction}`,\n ];\n }\n\n if (query.wheres && query.wheres.length > 0) {\n params[\"wheres\"] = query.wheres.map(\n (w) => `${String(w.field)}:${String(w.operation)}:${String(w.value)}`\n );\n }\n\n const queryString = Object.entries(params)\n .flatMap(([key, values]) =>\n values.map((value) => `${key}=${encodeURIComponent(value)}`)\n )\n .join(\"&\");\n\n return queryString ? `?${queryString}` : \"\";\n};\n","import Context from \"../model/Context\";\nimport { User } from \"../\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as Core from \"../model/core\";\nimport { buildQueryString } from \"../util/parseQuery\";\n\nclass UserAPI implements User.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async search(\n ctx: Context,\n query: Core.QueryOptions<User.Entity>\n ): Promise<Core.APIResponse<User.Entity>> {\n const endpointData = User.Endpoints.Search;\n const qs = buildQueryString(query);\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}${qs}`,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async deleteAccount(ctx: Context): Promise<boolean> {\n const endpointData = User.Endpoints.DeleteAccount;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data.success;\n }\n\n async createIntegrationToken(ctx: Context): Promise<string> {\n const endpointData = User.Endpoints.CreateToken;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n ctx\n );\n return data.token;\n }\n\n async getIntegrationToken(ctx: Context): Promise<string | null> {\n const endpointData = User.Endpoints.GetIntegrationToken;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n ctx\n );\n return data.token;\n }\n\n async sendValidationCode(email: string): Promise<boolean> {\n const endpointData = User.Endpoints.SendValidationCode;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}?email=${email}`,\n endpointData.method\n );\n return data.success;\n }\n\n async changePassword(\n email: string,\n pass: string,\n passConfirm: string,\n code: number\n ): Promise<boolean> {\n const endpointData = User.Endpoints.ChangePassword;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n { email, pass, passConfirm, code }\n );\n return data.success;\n }\n\n async changeEmail(\n ctx: Context,\n email: string,\n code: number\n ): Promise<boolean> {\n const endpointData = User.Endpoints.ChangeEmail;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n { email, code },\n ctx\n );\n return data.success;\n }\n\n async confirmCode(\n email: string,\n code: number,\n keepCode?: boolean\n ): Promise<boolean> {\n const endpointData = User.Endpoints.ConfirmCode;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}?email=${email}&code=${code}&keepCode=${keepCode}`,\n endpointData.method\n );\n return data.success;\n }\n\n async isEmailAvaliable(email: string): Promise<boolean> {\n const endpointData = User.Endpoints.IsEmailAvaliable;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}?email=${email}`,\n endpointData.method\n );\n return data.isValid;\n }\n\n async update(\n context: Context,\n update: Partial<User.Update>\n ): Promise<boolean> {\n const endpointData = User.Endpoints.UpdateUser;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n { ...update },\n context\n );\n return data.isValid;\n }\n\n async getBindedUsers(context: Context): Promise<User.Entity[]> {\n const endpointData = User.Endpoints.GetBindedUsers;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async setup(context: Context): Promise<boolean> {\n const endpointData = User.Endpoints.Setup;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async authenticate(\n email: string,\n password: string,\n system: User.System\n ): Promise<string> {\n const endpointData = User.Endpoints.Authenticate;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n { system, email, password }\n );\n return data.token;\n }\n\n async createUser(\n email: string,\n name: string,\n password: string,\n passwordConfirmation: string,\n profession: string | null,\n invitationCode: string | null\n ) {\n const endpointData = User.Endpoints.CreateUser;\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n {\n email,\n name,\n password,\n passwordConfirmation,\n profession,\n invitationCode,\n },\n null\n );\n\n return data;\n }\n\n async getUserInfo(context: Context): Promise<User.Entity> {\n const endpointData = User.Endpoints.GetUserInfo;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n\n return data;\n }\n}\n\nexport default UserAPI;\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport { Track } from \"../\";\n\nclass TrackAPI implements Track.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async send(t: Track.Entity): Promise<boolean> {\n const endpointInfo = Track.Endpoints.Track;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n t\n );\n\n return data;\n }\n}\n\nexport default TrackAPI;\n","export type { Email as Entity } from \"./Email.schema\";\nexport { EmailSchema } from \"./Email.schema\";\nexport * from \"./Email.api\";\n","import { z } from \"zod\";\n\nexport const EmailSchema = z.object({\n to: z.string().email().optional(),\n subject: z.string(),\n body: z.string(),\n});\n\nexport type Email = z.infer<typeof EmailSchema>;\n","import Context from \"../Context\";\nimport { Email } from \"./Email.schema\";\n\nexport interface IAPI {\n send: (email: Email, ctx?: Context) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n SendEmail: {\n uri: \"/emails/public/send\",\n method: \"POST\",\n },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport Context from \"../model/Context\";\nimport * as Email from \"../model/email\";\n\nclass EmailAPI implements Email.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async send(email: Email.Entity, ctx?: Context): Promise<boolean> {\n const endpointInfo = Email.Endpoints.SendEmail;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n email,\n ctx\n );\n\n return data.result;\n }\n}\n\nexport default EmailAPI;\n","export type {\n Project as Entity,\n Approve,\n Style,\n ProjectCreation,\n SendToApproval,\n TimelineItem,\n Feedback,\n} from \"./Project.schema\";\n\nexport {\n ProjectSchema,\n Status,\n CaptionStyle,\n Styles,\n TimelineItemSchema,\n FeedbackSchema,\n} from \"./Project.schema\";\n\nexport * from \"./Project.api\";\n","import { z } from \"zod\";\nimport { AssetSchema } from \"../asset\";\n\nexport enum Status {\n SUBMITTED = 0,\n EDITING = 1,\n COMPLETED = 2,\n WAITING_APPROVE = 3,\n DENIED = 4,\n REVISIONING = 5,\n CANCELLED = 6,\n SCHEDULED = 7,\n}\n\nexport enum CaptionStyle {\n ONE_LINE = 1,\n ONE_LINE_EMOJIS = 2,\n TWO_LINES = 5,\n TWO_LINES_EMOJIS = 3,\n HOME_HIGHLIGHT = 4,\n}\n\nexport const StatusSchema = z.nativeEnum(Status);\nexport const CaptionStyleStatus = z.nativeEnum(CaptionStyle);\n\nexport const Styles: Style[] = [\n { value: CaptionStyle.ONE_LINE, label: \"One Line\" },\n { value: CaptionStyle.ONE_LINE_EMOJIS, label: \"One Line + Emojis\" },\n { value: CaptionStyle.TWO_LINES, label: \"Two Lines\" },\n { value: CaptionStyle.TWO_LINES_EMOJIS, label: \"Two Lines + Emojis\" },\n { value: CaptionStyle.HOME_HIGHLIGHT, label: \"Home Tour\" },\n];\n\nexport type Style = {\n value: CaptionStyle;\n label: string;\n};\n\nexport const TimelineItemSchema = z.object({\n status: z.nativeEnum(Status),\n title: z.string(),\n description: z.string(),\n timestamp: z.number(),\n metadata: z.record(z.any()),\n});\n\nexport const FeedbackSchema = z.object({\n criteria: z.array(\n z.object({\n id: z.string(),\n label: z.string(),\n score: z.number().min(0).max(10),\n comment: z.string().optional(),\n })\n ),\n comment: z.string().optional(),\n});\n\nexport const ProjectSchema = z.object({\n id: z.string(),\n title: z.string(),\n instructions: z.string(),\n submitMonth: z.string(),\n captionStyle: z.nativeEnum(CaptionStyle),\n finalVideoId: z.string().optional(),\n thumbnailUrl: z.string().optional(),\n modified: z.number(),\n feedback: FeedbackSchema.optional(),\n captionSuggestion: z.string().optional(),\n editorId: z.string().optional(),\n userId: z.string(),\n assets: z.array(AssetSchema).optional(),\n expirationTimestamp: z.number(),\n isFree: z.boolean().optional(),\n timeline: z.array(TimelineItemSchema),\n submitTimestamp: z.number(),\n tenantId: z.string().optional(),\n status: z.nativeEnum(Status),\n});\n\nexport type ProjectCreation = Pick<\n Project,\n \"title\" | \"instructions\" | \"captionStyle\" | \"assets\"\n>;\n\nexport type SendToApproval = {\n video: string;\n thumbnail: string;\n captionSuggestion: string;\n};\n\nexport type Approve = {\n scheduleTime?: number;\n captionSuggestion: string;\n feedback?: Feedback;\n};\n\nexport type Project = z.infer<typeof ProjectSchema>;\nexport type TimelineItem = z.infer<typeof TimelineItemSchema>;\nexport type Feedback = z.infer<typeof FeedbackSchema>;\n","export { AssetSchema } from \"./Asset.schema\";\nexport type { Asset as Entity } from \"./Asset.schema\";\n","import { z } from \"zod\";\n\nconst AssetSchema = z.object({\n assetId: z.string(),\n fileName: z.string(),\n extension: z.string(),\n fileSize: z.number(),\n assetUrl: z.string().url(),\n thumbnailUrl: z.string().url(),\n type: z.string(),\n duration: z.number().optional(),\n progress: z.number().optional(),\n error: z.string().optional(),\n authorId: z.string(),\n uploadedAt: z.number(),\n});\n\ntype Asset = z.infer<typeof AssetSchema>;\n\nexport { Asset, AssetSchema };\n","import Context from \"../Context\";\nimport {\n Project,\n ProjectCreation,\n SendToApproval,\n Approve,\n} from \"./Project.schema\";\nimport * as Core from \"../core\";\n\nexport interface IAPI {\n reorder: (\n context: Context,\n projectId: string,\n position: number\n ) => Promise<boolean>;\n find: (context: Context, projectId: string) => Promise<Project>;\n create: (context: Context, data: ProjectCreation) => Promise<Project>;\n review: (\n context: Context,\n projectId: string,\n revision: string\n ) => Promise<boolean>;\n cancel: (context: Context, projectId: string) => Promise<boolean>;\n list: (\n context: Context,\n query: Core.QueryOptions<Project>\n ) => Promise<Project[]>;\n start: (context: Context) => Promise<boolean>;\n sendToApproval: (\n context: Context,\n projectId: string,\n data: SendToApproval\n ) => Promise<boolean>;\n approve: (\n context: Context,\n projectId: string,\n data: Approve\n ) => Promise<boolean>;\n deny: (\n context: Context,\n projectId: string,\n denyFeedback: string,\n categories?: string[]\n ) => Promise<boolean>;\n unschedule: (context: Context, projectId: string) => Promise<boolean>;\n rollback: (context: Context, projectId: string) => Promise<boolean>;\n getNext: (context: Context, userId: string) => Promise<Project | null>;\n getUserHistory: (\n context: Context,\n userId: string\n ) => Promise<Core.APIResponse<Project>>;\n\n getPoolSize(context: Context): Promise<number>;\n\n permissions: {\n isEligibleForFreeProject(context: Context): Promise<boolean>;\n };\n}\n\nexport const Endpoints = {\n Reorder: { uri: \"/projects/reorder/\", method: \"POST\" },\n List: { uri: \"/projects/list\", method: \"GET\" },\n GetNext: { uri: \"/projects/:userId/next\", method: \"GET\" },\n CreateProject: { uri: \"/projects/create\", method: \"POST\" },\n FindOne: { uri: `/projects/:projectId/`, method: \"GET\" },\n GetGoals: { uri: `/projects/goals/list/`, method: \"GET\" },\n Review: { uri: \"/projects/:projectId/review/\", method: \"POST\" },\n Cancel: { uri: \"/projects/:projectId/cancel/\", method: \"DELETE\" },\n StartEdition: { uri: \"/projects/edition/start/\", method: \"PUT\" },\n SendToApproval: {\n uri: \"/projects/:projectId/sendToApproval/\",\n method: \"PUT\",\n },\n IsEligibleForFreeProject: {\n uri: \"/projects/free/allowed/\",\n method: \"GET\",\n },\n Approve: { uri: \"/projects/:projectId/approve/\", method: \"POST\" },\n Unschedule: { uri: \"/projects/:projectId/unschedule/\", method: \"POST\" },\n Rollback: { uri: \"/projects/:projectId/rollback/\", method: \"POST\" },\n Deny: { uri: \"/projects/:projectId/deny/\", method: \"POST\" },\n GetUserHistory: { uri: \"/projects/user/:userId/history/\", method: \"GET\" },\n GetPoolSize: { uri: \"/projects/pool/size/\", method: \"GET\" },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as Project from \"../model/project\";\nimport Context from \"../model/Context\";\nimport * as Core from \"../model/core\";\nimport { buildQueryString } from \"../util/parseQuery\";\n\nclass ProjectAPI implements Project.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getPoolSize(context: Context): Promise<number> {\n const endpointData = Project.Endpoints.GetPoolSize;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n return data.size;\n }\n\n async reorder(\n ctx: Context,\n projectId: string,\n position: number\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.Reorder;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n { projectId, position },\n ctx\n );\n\n return data.success;\n }\n\n permissions = {\n isEligibleForFreeProject: async (ctx: Context): Promise<boolean> => {\n const endpointData = Project.Endpoints.IsEligibleForFreeProject;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data.canCreate;\n },\n };\n\n async getNext(ctx: Context, userId: string): Promise<Project.Entity | null> {\n const endpointData = Project.Endpoints.GetNext;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async getUserHistory(\n context: Context,\n userId: string\n ): Promise<Core.APIResponse<Project.Entity>> {\n const endpointData = Project.Endpoints.GetUserHistory;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async find(context: Context, projectId: string): Promise<Project.Entity> {\n const endpointData = Project.Endpoints.FindOne;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async create(\n context: Context,\n createData: Project.ProjectCreation\n ): Promise<Project.Entity> {\n const endpointData = Project.Endpoints.CreateProject;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n createData,\n context\n );\n return data;\n }\n\n async review(ctx: Context, pId: string, revision: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Review;\n const endpoint = endpointData.uri.replace(\":projectId\", pId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n { revision },\n ctx\n );\n return data.success;\n }\n\n async cancel(ctx: Context, projectId: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Cancel;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data.success;\n }\n\n async list(\n context: Context,\n query: Core.QueryOptions<Project.Entity>\n ): Promise<Project.Entity[]> {\n const endpointData = Project.Endpoints.List;\n const qs = buildQueryString(query);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}${qs}`,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async deny(\n ctx: Context,\n pId: string,\n denyFB: string,\n categories?: string[]\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.Deny;\n const endpoint = endpointData.uri.replace(\":projectId\", pId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n { denyFeedback: denyFB, categories: categories || [] },\n ctx\n );\n return data.success;\n }\n\n async unschedule(context: Context, projectId: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Unschedule;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async rollback(context: Context, projectId: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Rollback;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async start(context: Context): Promise<boolean> {\n const endpointData = Project.Endpoints.StartEdition;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async approve(\n ctx: Context,\n pId: string,\n approve: Project.Approve\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.Approve;\n const endpoint = endpointData.uri.replace(\":projectId\", pId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n approve,\n ctx\n );\n return data.success;\n }\n\n async sendToApproval(\n context: Context,\n projectId: string,\n approval: Project.SendToApproval\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.SendToApproval;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n approval,\n context\n );\n return data.success;\n }\n}\n\nexport default ProjectAPI;\n","export type { Goal as Entity, DailyMilestone } from \"./Goal.schema\";\n\nexport { GoalSchema, DailyMilestoneSchema } from \"./Goal.schema\";\n\nexport * from \"./Goal.api\";\n","import { z } from \"zod\";\n\nexport const DailyMilestoneSchema = z.object({\n id: z.string(),\n date: z.string(),\n target: z.number(),\n progress: z.number(),\n});\n\nexport const GoalSchema = z.object({\n id: z.string(),\n editorId: z.string(),\n isoWeek: z.string(), // ex: \"2026-W27\"\n target: z.number(),\n progress: z.number(),\n createdAt: z.number(),\n dailyMilestones: z.array(DailyMilestoneSchema),\n});\n\nexport type DailyMilestone = z.infer<typeof DailyMilestoneSchema>;\nexport type Goal = z.infer<typeof GoalSchema>;\n","import Context from \"../Context\";\nimport { Goal } from \"./Goal.schema\";\n\nexport interface IAPI {\n getGoals: (context: Context) => Promise<Goal[]>;\n}\n\nexport const Endpoints = {\n GetGoals: { uri: `/projects/goals/list/`, method: \"GET\" },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport Context from \"../model/Context\";\nimport * as Goal from \"../model/goal\";\n\nclass GoalAPI implements Goal.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getGoals(context: Context): Promise<Goal.Entity[]> {\n const endpointData = Goal.Endpoints.GetGoals;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n}\n\nexport default GoalAPI;\n","export interface IAPI {\n version: () => Promise<string>;\n}\n\nexport const Endpoints = {\n Version: {\n uri: \"/app-config/public/version/latest\",\n method: \"GET\",\n },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as APPConfig from \"../model/app-config\";\n\nclass AppConfigAPI implements APPConfig.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async version(): Promise<string> {\n const endpointInfo = APPConfig.Endpoints.Version;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method\n );\n\n return data.version;\n }\n}\n\nexport default AppConfigAPI;\n","export { NoteSchema, NoteHistorySchema } from \"./Note.schema\";\nexport type { Note as Entity, NoteHistory } from \"./Note.schema\";\nexport * from \"./Note.api\";\n","import { z } from \"zod\";\nimport { AssetSchema } from \"../asset\";\n\nconst NoteHistorySchema = z.object({\n type: z.enum([\n \"created\",\n \"updated\",\n \"deleted\",\n \"asset-added\",\n \"asset-removed\",\n ]),\n actorEmail: z.string().email(),\n timestamp: z.number(),\n details: z.string().optional(),\n});\n\nconst NoteSchema = z.object({\n id: z.string(),\n userId: z.string(),\n authorEmail: z.string().email(),\n assets: z.array(AssetSchema),\n title: z.string(),\n content: z.string(),\n createdAt: z.number(),\n modified: z.number(),\n history: z.array(NoteHistorySchema).optional(),\n});\n\ntype Note = z.infer<typeof NoteSchema>;\ntype NoteHistory = z.infer<typeof NoteHistorySchema>;\n\nexport { NoteHistorySchema, NoteSchema, NoteHistory, Note };\n","import Context from \"../Context\";\nimport { Note } from \"./Note.schema\";\n\nexport interface IAPI {\n list: (c: Context, userId: string) => Promise<Note[]>;\n add: (c: Context, note: Partial<Note>) => Promise<Note>;\n update: (c: Context, id: string, script: Partial<Note>) => Promise<Note>;\n delete: (c: Context, id: string) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n GetNotes: {\n uri: \"/user-context/notes/user/:userId/\",\n method: \"GET\",\n },\n AddNote: {\n uri: \"/user-context/notes/\",\n method: \"PUT\",\n },\n DeleteNote: {\n uri: \"/user-context/notes/:id/\",\n method: \"DELETE\",\n },\n UpdateNote: {\n uri: \"/user-context/notes/:id/\",\n method: \"POST\",\n },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport Context from \"../model/Context\";\nimport * as Note from \"../model/note\";\n\nclass NoteAPI implements Note.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async list(c: Context, userId: string): Promise<Note.Entity[]> {\n const endpointData = Note.Endpoints.GetNotes;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n c\n );\n return data;\n }\n\n async add(c: Context, note: Partial<Note.Entity>): Promise<Note.Entity> {\n const endpointData = Note.Endpoints.AddNote;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n note,\n c\n );\n return data;\n }\n\n async update(\n c: Context,\n id: string,\n toUpdate: Partial<Note.Entity>\n ): Promise<Note.Entity> {\n const endpointData = Note.Endpoints.UpdateNote;\n const endpoint = endpointData.uri.replace(\":id\", id);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n toUpdate,\n c\n );\n return data;\n }\n\n async delete(c: Context, id: string): Promise<boolean> {\n const endpointData = Note.Endpoints.DeleteNote;\n const endpoint = endpointData.uri.replace(\":id\", id);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n c\n );\n return data;\n }\n}\n\nexport default NoteAPI;\n","import NotificationAPI from \"../api/Notification.api\";\nimport PromptAPI from \"../api/Prompt.api\";\nimport SubscriptionAPI from \"../api/Subscription.api\";\nimport TenantAPI from \"../api/Tenant.api\";\nimport UserAPI from \"../api/User.api\";\nimport TrackAPI from \"../api/Track.api\";\nimport EmailAPI from \"../api/Email.api\";\nimport ProjectAPI from \"../api/Project.api\";\nimport GoalAPI from \"../api/Goal.api\";\nimport AppConfigAPI from \"../api/AppConfig.api\";\nimport NoteAPI from \"../api/Note.api\";\n\nimport Environment from \"./Env\";\n\nimport * as Prompt from \"./../model/prompt\";\nimport * as Subscription from \"./../model/subscription\";\nimport * as User from \"./../model/user\";\nimport * as Tenant from \"./../model/tenant\";\nimport * as Track from \"./../model/track\";\nimport * as Email from \"./../model/email\";\nimport * as Project from \"./../model/project\";\nimport * as Goal from \"./../model/goal\";\nimport * as Notification from \"./../model/notification\";\nimport * as AppConfig from \"./../model/app-config\";\nimport * as Note from \"./../model/note\";\n\nexport class ShredAPI {\n user: User.IAPI;\n goal: Goal.IAPI;\n subscription: Subscription.IAPI;\n prompt: Prompt.IAPI;\n pushNotification: Notification.IAPI;\n email: Email.IAPI;\n tenant: Tenant.IAPI;\n app: AppConfig.IAPI;\n project: Project.IAPI;\n track: Track.IAPI;\n note: Note.IAPI;\n\n constructor(env: Environment) {\n this.user = new UserAPI(env);\n this.goal = new GoalAPI(env);\n this.prompt = new PromptAPI(env);\n this.subscription = new SubscriptionAPI(env);\n this.pushNotification = new NotificationAPI(env);\n this.email = new EmailAPI(env);\n this.tenant = new TenantAPI(env);\n this.project = new ProjectAPI(env);\n this.app = new AppConfigAPI(env);\n this.track = new TrackAPI(env);\n this.note = new NoteAPI(env);\n }\n}\n","import ConflictException from \"./ConflictException\";\nimport InvalidArgumentException from \"./InvalidArgumentException\";\nimport ResourceNotFoundException from \"./ResourceNotFoundException\";\nimport ShredException from \"./ShredException\";\nimport UnauthorizedException from \"./UnauthorizedException\";\nimport ForbiddenException from \"./ForbiddenException\";\n\nconst Exceptions = {\n ConflictException,\n InvalidArgumentException,\n ResourceNotFoundException,\n ShredException,\n UnauthorizedException,\n ForbiddenException,\n};\n\nexport default Exceptions;\n\nexport type {\n ConflictException,\n InvalidArgumentException,\n ResourceNotFoundException,\n ShredException,\n UnauthorizedException,\n ForbiddenException,\n};\n","export default class ShredException extends Error {\n public status: number;\n\n constructor(message: string, status: number) {\n super(message);\n this.name = \"ShredException\";\n this.status = status;\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class ConflictException extends ShredException {\n constructor(message: string) {\n super(message, 409);\n this.name = \"ConflictException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class InvalidArgumentException extends ShredException {\n constructor(message: string) {\n super(message, 400);\n this.name = \"InvalidArgumentException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class ResourceNotFoundException extends ShredException {\n constructor(message: string) {\n super(message, 404);\n this.name = \"ResourceNotFoundException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class UnauthorizedException extends ShredException {\n constructor(message: string) {\n super(message, 401);\n this.name = \"UnauthorizedException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class ForbiddenException extends ShredException {\n constructor(message: string) {\n super(message, 403);\n this.name = \"ForbiddenException\";\n }\n}\n","export { PromptSchema, ScriptSchema, CategorySchema } from \"./Prompt.schema\";\nexport type { Prompt as Entity, Script, Category } from \"./Prompt.schema\";\nexport * from \"./Prompt.api\";\n","import { z } from \"zod\";\n\nexport const ScriptSchema = z.object({\n id: z.string(),\n title: z.string(),\n content: z.string(),\n tags: z.array(z.string()).optional(),\n userId: z.string().optional(),\n});\n\nexport const CategorySchema = z.object({\n id: z.string(),\n title: z.string(),\n pictureUrl: z.string().url(),\n backgroundColor: z.string(),\n active: z.boolean(),\n scripts: z.array(ScriptSchema),\n});\n\nexport const PromptSchema = z.object({\n id: z.string(),\n tenantId: z.string(),\n categories: z.array(CategorySchema),\n});\n\n// Infer types\nexport type Script = z.infer<typeof ScriptSchema>;\nexport type Category = z.infer<typeof CategorySchema>;\nexport type Prompt = z.infer<typeof PromptSchema>;\n","import Context from \"../Context\";\nimport { Prompt, Script } from \"./Prompt.schema\";\n\nexport interface IAPI {\n getPrompt: (c: Context) => Promise<Prompt>;\n addScript: (c: Context, script: Partial<Script>) => Promise<Script>;\n deleteScript: (c: Context, id: string) => Promise<boolean>;\n getScripts: (c: Context) => Promise<Script[]>;\n updateScript: (\n c: Context,\n id: string,\n script: Partial<Script>\n ) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n GetPrompt: {\n uri: \"/prompts/getPrompt\",\n method: \"GET\",\n },\n AddScript: {\n uri: \"/prompts/script/new/\",\n method: \"POST\",\n },\n DeleteScript: {\n uri: \"/prompts/script/:id/delete/\",\n method: \"DELETE\",\n },\n ListScript: {\n uri: \"/prompts/script/list/\",\n method: \"GET\",\n },\n UpdateScript: {\n uri: \"/prompts/script/:id/update/\",\n method: \"PUT\",\n },\n};\n","export type { Tenant as Entity, Preferences } from \"./Tenant.schema\";\nexport { TenantSchema, PreferencesSchema } from \"./Tenant.schema\";\nexport * from \"./Tenant.api\";\n","import { z } from \"zod\";\nimport { SubscriptionSchema } from \"../subscription/Subscription.schema\";\n\nexport const PreferencesSchema = z.object({\n iconUrl: z.string().url(),\n logoUrl: z.string().url(),\n primaryColor: z.string(),\n secondaryColor: z.string(),\n guidelinesUrl: z.string().url().optional(),\n});\n\nexport const TenantSchema = z.object({\n id: z.string(),\n name: z.string(),\n isActive: z.boolean(),\n isSubscriptionActive: z.boolean(),\n preferences: PreferencesSchema,\n inviteCode: z.string(),\n totalUsersAllowed: z.number(),\n currentUsersSize: z.number().optional(),\n chargeByEmail: z.boolean(),\n defaultProductId: z.string().optional(),\n defaultPlanId: z.string().optional(),\n defaultCoupomCode: z.string().optional(),\n allowedProducts: z.array(z.string()).optional(),\n useOwnScripts: z.boolean().optional(),\n subscription: z.optional(z.lazy(() => SubscriptionSchema)),\n});\n\nexport type Tenant = z.infer<typeof TenantSchema>;\nexport type Preferences = z.infer<typeof PreferencesSchema>;\n","import { z } from \"zod\";\n\nexport enum Type {\n CUSTOMER_SUBSCRIPTION = 0,\n TENANT_SUBSCRIPTION = 1,\n}\n\nexport const SubscriptionTypeSchema = z.nativeEnum(Type);\n\nexport const PlanSchema = z.object({\n id: z.string(),\n currency: z.string(),\n price: z.number(),\n interval: z.string(),\n metadata: z.record(z.string()),\n subscriptionItemId: z.string(),\n});\n\nexport const DescriptionSchema = z.object({\n description: z.string(),\n subtitle: z.string(),\n});\n\nexport const ProductSchema = z.object({\n id: z.string(),\n name: z.string(),\n descriptions: z.array(DescriptionSchema),\n metadata: z.any(),\n plans: z.array(PlanSchema),\n percentOff: z.number().default(0),\n});\n\nexport const ChargeSchema = z.object({\n id: z.number(),\n created: z.number(),\n paid: z.boolean(),\n receiptUrl: z.string(),\n status: z.string(),\n price: z.string(),\n paymentType: z.string(),\n last4: z.string().optional(),\n brand: z.string().optional(),\n});\n\nexport const SubscriptionSchema = z.object({\n id: z.string(),\n status: z.string(),\n startDate: z.number().optional(),\n daysUntilDue: z.number().optional(),\n renewAutomatically: z.boolean().optional(),\n currentPeriodStart: z.number().optional(),\n currentPeriodEnd: z.number().optional(),\n paymentMethodId: z.string().optional(),\n product: ProductSchema,\n type: z.nativeEnum(Type).optional(),\n plan: PlanSchema.optional(),\n});\n\nexport type Subscription = z.infer<typeof SubscriptionSchema>;\nexport type Charge = z.infer<typeof ChargeSchema>;\nexport type Plan = z.infer<typeof PlanSchema>;\nexport type Product = z.infer<typeof ProductSchema>;\n","import Context from \"../Context\";\nimport { Tenant } from \"./Tenant.schema\";\n\nexport interface IAPI {\n getByInviteCode: (code: string, context?: Context) => Promise<Tenant | null>;\n create: (tenant: Tenant, context: Context) => Promise<boolean>;\n list: (context: Context) => Promise<Tenant[]>;\n getTenant: (context: Context, tenantId?: string) => Promise<Tenant | null>;\n update: (\n tenantId: string,\n data: Pick<Tenant, \"preferences\">,\n context: Context\n ) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n GetByInviteCode: {\n uri: \"/tenants/public/invitation/\",\n method: \"GET\",\n },\n CreateTenant: {\n uri: \"/tenants/create\",\n method: \"PUT\",\n },\n GetTenant: {\n uri: \"/tenants/me\",\n method: \"GET\",\n },\n GetTenantById: {\n uri: \"/tenants/:tenantId/find\",\n method: \"GET\",\n },\n UpdateTenant: {\n uri: \"/tenants/update\",\n method: \"POST\",\n },\n ListAll: {\n uri: \"/tenants/list\",\n method: \"GET\",\n },\n};\n","export type { User as Entity, Preferences, Update } from \"./User.schema\";\nexport { UserSchema, PreferencesSchema, Role, System } from \"./User.schema\";\nexport * from \"./User.api\";\n","import { z } from \"zod\";\n\nexport enum Role {\n USER = \"User\",\n EDITOR = \"Editor\",\n QA = \"QA\",\n ADMIN = \"ADMIN\",\n SYSTEM = \"SYSTEM\",\n}\n\nexport enum System {\n APP = \"APP\",\n EDITOR = \"EDITOR\",\n QA = \"QA\",\n ADMIN = \"ADMIN\",\n}\n\nexport const PreferencesSchema = z.object({\n primaryColor: z.string().optional(),\n secondaryColor: z.string().optional(),\n facebookLink: z.string().optional(),\n instagramLink: z.string().optional(),\n bRoll: z.boolean().optional(),\n logo: z.string().optional(),\n});\n\nexport const UserSchema = z.object({\n id: z.string(),\n name: z.string(),\n email: z.string().email(),\n fcmToken: z.string().optional(),\n profession: z.string().optional(),\n photoUrl: z.string().optional(),\n preferences: PreferencesSchema.optional(),\n tenantId: z.string().optional(),\n editorId: z.string().optional(),\n timezone: z.string().optional(),\n experienceId: z.string().optional(),\n customerId: z.string(),\n role: z.nativeEnum(Role),\n});\n\nexport type User = z.infer<typeof UserSchema>;\nexport type Preferences = z.infer<typeof PreferencesSchema>;\nexport type Update = Pick<\n User,\n | \"name\"\n | \"profession\"\n | \"preferences\"\n | \"photoUrl\"\n | \"fcmToken\"\n | \"timezone\"\n | \"experienceId\"\n>;\n","import * as Core from \"../core\";\nimport Context from \"../Context\";\nimport { System, User, Update } from \"./User.schema\";\n\nexport interface IAPI {\n getUserInfo: (context: Context) => Promise<User>;\n isEmailAvaliable: (email: string) => Promise<boolean>;\n sendValidationCode: (email: string) => Promise<boolean>;\n confirmCode: (\n email: string,\n code: number,\n keepCode?: boolean\n ) => Promise<boolean>;\n changePassword: (\n email: string,\n pass: string,\n passConfirm: string,\n code: number\n ) => Promise<boolean>;\n changeEmail: (ctx: Context, email: string, code: number) => Promise<boolean>;\n authenticate: (\n email: string,\n password: string,\n system: System\n ) => Promise<string>;\n update: (context: Context, update: Partial<Update>) => Promise<boolean>;\n setup: (context: Context) => Promise<boolean>;\n getBindedUsers: (ctx: Context) => Promise<User[]>;\n deleteAccount: (ctx: Context) => Promise<boolean>;\n getIntegrationToken: (ctx: Context) => Promise<string | null>;\n createIntegrationToken: (ctx: Context) => Promise<string>;\n search: (\n ctx: Context,\n query: Core.QueryOptions<User>\n ) => Promise<Core.APIResponse<User>>;\n createUser: (\n email: string,\n name: string,\n password: string,\n passwordConfirmation: string,\n profession: string | null,\n invitationCode: string | null\n ) => Promise<User>;\n}\n\nexport const Endpoints = {\n ChangeEmail: { uri: \"/accounts/user/changeEmail\", method: \"PUT\" },\n GetUserInfo: { uri: \"/accounts/user/info\", method: \"GET\" },\n GetBindedUsers: { uri: \"/accounts/binded/list\", method: \"GET\" },\n EnableUser: { uri: \"/api/user/register\", method: \"POST\" },\n ChangePassword: { uri: \"/accounts/public/changePassword/\", method: \"POST\" },\n IsEmailAvaliable: { uri: \"/accounts/public/email/avaliable\", method: \"GET\" },\n GetIntegrationToken: { uri: \"/accounts/user/getToken/\", method: \"GET\" },\n CreateToken: { uri: \"/accounts/user/createToken/\", method: \"POST\" },\n ConfirmCode: { uri: \"/accounts/public/email/validate\", method: \"POST\" },\n DeleteAccount: { uri: \"/accounts/user/delete/\", method: \"DELETE\" },\n SendValidationCode: { uri: \"/accounts/public/email/send\", method: \"POST\" },\n Authenticate: { uri: \"/accounts/public/login\", method: \"POST\" },\n CreateUser: { uri: \"/accounts/public/create\", method: \"POST\" },\n UpdateUser: { uri: \"/accounts/user/update\", method: \"PUT\" },\n Setup: { uri: \"/accounts/user/setup/\", method: \"POST\" },\n Search: { uri: \"/accounts/users/search/\", method: \"GET\" },\n};\n","export type {\n Subscription as Entity,\n Product,\n Plan,\n Charge,\n} from \"./Subscription.schema\";\n\nexport {\n SubscriptionSchema,\n ProductSchema,\n PlanSchema,\n ChargeSchema,\n Type,\n SubscriptionTypeSchema,\n} from \"./Subscription.schema\";\n\nexport * from \"./Subscription.api\";\n","import Context from \"../Context\";\nimport { Charge, Product, Subscription } from \"./Subscription.schema\";\n\nexport interface IAPI {\n getCharges: (ctx: Context) => Promise<Charge[]>;\n getPortalUrl: (ctx: Context) => Promise<string>;\n getSubscription: (\n context: Context,\n userId?: string\n ) => Promise<Subscription | null>;\n getProduct: (id: string, context?: Context) => Promise<Product>;\n getProducts: (ctx?: Context) => Promise<Product[]>;\n charge: (ctx: Context) => Promise<boolean>;\n pause: (ctx: Context) => Promise<boolean>;\n resume: (ctx: Context) => Promise<boolean>;\n updatePlan: (ctx: Context, planId: string) => Promise<boolean>;\n createCheckout: (planId: string | null, ctx: Context) => Promise<string>;\n}\n\nexport const Endpoints = {\n GetPortal: {\n uri: \"/subscriptions/portal/\",\n method: \"GET\",\n },\n GetProduct: {\n uri: \"/subscriptions/products/public/retrieve/\",\n method: \"GET\",\n },\n GetActiveSubscription: {\n uri: \"/subscriptions/active/\",\n method: \"GET\",\n },\n GetCharges: {\n uri: \"/subscriptions/payment/charge/list/\",\n method: \"GET\",\n },\n GetUserActiveSubscription: {\n uri: \"/subscriptions/:userId/find/\",\n method: \"GET\",\n },\n GetProducts: {\n uri: \"/subscriptions/products/public/list/\",\n method: \"GET\",\n },\n GetProductsByUser: {\n uri: \"/subscriptions/products/list/\",\n method: \"GET\",\n },\n Checkout: {\n uri: \"/subscriptions/payment/checkout/\",\n method: \"POST\",\n },\n Charge: {\n uri: \"/subscriptions/payment/charge/\",\n method: \"POST\",\n },\n Pause: {\n uri: \"/subscriptions/pause/\",\n method: \"PUT\",\n },\n Resume: {\n uri: \"/subscriptions/resume/\",\n method: \"PUT\",\n },\n UpdatePlan: {\n uri: \"/subscriptions/plan/update/\",\n method: \"PUT\",\n },\n};\n","export type { Track as Entity, TrackParam } from \"./Track.schema\";\nexport { TrackSchema, TrackParamSchema } from \"./Track.schema\";\nexport * from \"./Track.api\";\n","import { z } from \"zod\";\n\nexport const TrackParamSchema = z.object({\n name: z.string(),\n value: z.union([z.string(), z.number()]),\n});\n\nexport const TrackSchema = z.object({\n category: z.string(),\n label: z.string(),\n action: z.string(),\n params: z.array(TrackParamSchema).optional(),\n});\n\nexport type Track = z.infer<typeof TrackSchema>;\nexport type TrackParam = z.infer<typeof TrackParamSchema>;\n","import { Track } from \"./Track.schema\";\n\nexport interface IAPI {\n send: (t: Track) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n Track: {\n uri: \"/track/public/send/\",\n method: \"POST\",\n },\n};\n","export * from \"./Query\";\nexport * from \"./APIResponse\";\n","import { ShredAPI } from \"./model/Api\";\n\n//V2\nexport * as Exceptions from \"./model/exceptions\";\nexport * as Prompt from \"./model/prompt\";\nexport * as Asset from \"./model/asset\";\nexport * as Tenant from \"./model/tenant\";\nexport * as User from \"./model/user\";\nexport * as Subscription from \"./model/subscription\";\nexport * as Track from \"./model/track\";\nexport * as Email from \"./model/email\";\nexport * as Core from \"./model/core\";\nexport * as Project from \"./model/project\";\nexport * as Goal from \"./model/goal\";\nexport * as Notification from \"./model/notification\";\nexport * as Note from \"./model/note\";\n\nexport default ShredAPI;\n"],"mappings":"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","names":["Frequency","WeekDay","CriteriaType","TransportType","Status","Endpoints","z","Endpoints","Endpoints","Endpoints","Status","z","z","Status","CaptionStyle","z","Endpoints","Endpoints","Endpoints","z","Endpoints","Endpoints","Endpoints","Endpoints","Endpoints","z","z","Endpoints","Endpoints","Endpoints","z","Endpoints","Endpoints","z","z","Type","z","Endpoints","Endpoints","PreferencesSchema","z","Role","System","PreferencesSchema","Endpoints","Endpoints","Endpoints","Endpoints","z","Endpoints"]}
1
+ {"version":3,"sources":["../src/util/HTTPClient.ts","../src/model/notification/index.ts","../src/model/notification/Notification.schema.ts","../src/model/notification/Notification.api.ts","../src/api/Notification.api.ts","../src/api/Prompt.api.ts","../src/api/Subscription.api.ts","../src/api/Tenant.api.ts","../src/util/parseQuery.ts","../src/api/User.api.ts","../src/api/Track.api.ts","../src/model/email/index.ts","../src/model/email/Email.schema.ts","../src/model/email/Email.api.ts","../src/api/Email.api.ts","../src/model/project/index.ts","../src/model/project/Project.schema.ts","../src/model/asset/index.ts","../src/model/asset/Asset.schema.ts","../src/model/project/Project.api.ts","../src/api/Project.api.ts","../src/model/goal/index.ts","../src/model/goal/Goal.schema.ts","../src/model/goal/Goal.api.ts","../src/api/Goal.api.ts","../src/model/app-config/AppConfig.api.ts","../src/api/AppConfig.api.ts","../src/model/note/index.ts","../src/model/note/Note.schema.ts","../src/model/note/Note.api.ts","../src/api/Note.api.ts","../src/model/Api.ts","../src/model/exceptions/index.ts","../src/model/exceptions/ShredException.ts","../src/model/exceptions/ConflictException.ts","../src/model/exceptions/InvalidArgumentException.ts","../src/model/exceptions/ResourceNotFoundException.ts","../src/model/exceptions/UnauthorizedException.ts","../src/model/exceptions/ForbiddenException.ts","../src/model/prompt/index.ts","../src/model/prompt/Prompt.schema.ts","../src/model/prompt/Prompt.api.ts","../src/model/tenant/index.ts","../src/model/tenant/Tenant.schema.ts","../src/model/subscription/Subscription.schema.ts","../src/model/tenant/Tenant.api.ts","../src/model/user/index.ts","../src/model/user/User.schema.ts","../src/model/user/User.api.ts","../src/model/subscription/index.ts","../src/model/subscription/Subscription.api.ts","../src/model/track/index.ts","../src/model/track/Track.schema.ts","../src/model/track/Track.api.ts","../src/model/core/index.ts","../src/index.ts"],"sourcesContent":["import Environment from \"../model/Env\";\nimport Context from \"./../model/Context\";\nimport fetch from \"cross-fetch\";\n\nconst HOSTS = {\n prod: \"https://api.shreditapp.com\",\n staging: \"https://api.staging.shreditapp.com\",\n local: \"https://api.staging.shreditapp.com\",\n};\n\nconst OLD_HOSTS = {\n prod: \"https://api.shredmedia.co\",\n staging: \"https://api-staging.shredmedia.co\",\n local: \"https://api-staging.shredmedia.co\",\n};\n\nexport default class HTTPClient {\n async makeRequest(\n env: Environment,\n uri: string,\n method: string,\n data?: any,\n context?: Context | null,\n useLegacyApi?: boolean\n ): Promise<any> {\n const hostDict = useLegacyApi ? OLD_HOSTS : HOSTS;\n const host = hostDict[env] || hostDict.staging;\n const url = host + uri;\n\n const headers: Record<string, string> = {\n \"Content-Type\": useLegacyApi\n ? \"application/x-www-form-urlencoded\"\n : \"application/json\",\n };\n\n if (context?.token) {\n headers[\"Authorization\"] = `Bearer ${context.token}`;\n }\n\n if (context?.requestId) {\n headers[\"X-Request-ID\"] = context.requestId;\n }\n\n const fetchOptions: RequestInit = {\n method,\n headers,\n };\n\n if (method !== \"GET\" && data) {\n fetchOptions.body = useLegacyApi\n ? new URLSearchParams(data).toString()\n : JSON.stringify(data);\n }\n\n try {\n const response = await fetch(url, fetchOptions);\n\n if (!response.ok) {\n const errorText = await response.text();\n throw {\n status: response.status,\n statusText: response.statusText,\n body: errorText,\n };\n }\n\n try {\n return await response.json();\n } catch {\n return await response.text();\n }\n } catch (error: any) {\n let parsedBody: any = {};\n\n try {\n parsedBody = error.body ? JSON.parse(error.body) : {};\n } catch {\n parsedBody = { message: error.body || \"Unknown error\" };\n }\n\n throw {\n message: parsedBody.message || \"Unexpected error occurred\",\n original: error,\n };\n }\n }\n}\n","export type {\n Trigger,\n NotificationDetail,\n NotificationItem,\n RecurrenceRule,\n History,\n Criteria,\n} from \"./Notification.schema\";\n\nexport {\n TriggerSchema,\n NotificationDetailSchema,\n NotificationItemSchema,\n RecurrenceRuleSchema,\n CriteriaSchema,\n HistorySchema,\n Frequency,\n WeekDay,\n CriteriaType,\n TransportType,\n Status,\n} from \"./Notification.schema\";\n\nexport * from \"./Notification.api\";\n","import { z } from \"zod\";\n\nexport enum Frequency {\n DAILY = \"daily\",\n WEEKLY = \"weekly\",\n MONTHLY = \"monthly\",\n}\n\nexport enum WeekDay {\n MONDAY = 1,\n TUESDAY = 2,\n WEDNESDAY = 3,\n THURSDAY = 4,\n FRIDAY = 5,\n SATURDAY = 6,\n SUNDAY = 7,\n}\n\nexport enum CriteriaType {\n AllUsers = \"allUsers\",\n NoProjects = \"noProjects\",\n NoSubscription = \"noSubscription\",\n UsersFromTier = \"usersFromTier\",\n}\n\nexport enum TransportType {\n Push = \"push\",\n Email = \"email\",\n}\n\nexport enum Status {\n SCHEDULED = \"scheduled\",\n RUNNING = \"running\",\n COMPLETED = \"completed\",\n FAILED = \"failed\",\n PAUSED = \"paused\",\n CANCELLED = \"cancelled\",\n ACTIVE = \"active\",\n EXPIRED = \"expired\",\n}\n\nexport const NotificationItemSchema = z.object({\n id: z.string(),\n userId: z.string(),\n triggerId: z.string().optional(),\n title: z.string(),\n body: z.string(),\n status: z.enum([\"failed\", \"delivered\", \"deleted\"]),\n deliveredAt: z.number(),\n openedAt: z.number().optional(),\n deletedAt: z.number().optional(),\n cta: z.object({ label: z.string(), url: z.string().url() }).optional(),\n metadata: z.record(z.union([z.string(), z.number()])),\n error: z.string().optional(),\n});\n\nexport const NotificationDetailSchema = NotificationItemSchema.pick({\n title: true,\n body: true,\n userId: true,\n metadata: true,\n});\n\nexport const CriteriaSchema = z.object({\n type: z.nativeEnum(CriteriaType),\n params: z.record(z.any()),\n});\n\nexport const HistorySchema = z.object({\n batchId: z.string(),\n executedAt: z.number(),\n timezone: z.string(),\n status: z.enum([\"success\", \"failed\", \"info\", \"warn\"]),\n users: z.object({\n total: z.number(),\n success: z.number(),\n error: z.number(),\n }),\n errorList: z\n .array(\n z.object({\n token: z.string(),\n error: z.string(),\n })\n )\n .optional(),\n executionTimeDuration: z.number().optional(),\n});\n\nexport const RecurrenceRuleSchema = z.object({\n frequency: z.nativeEnum(Frequency),\n interval: z.number(),\n weekDays: z.array(z.nativeEnum(WeekDay)).optional(),\n dayOfMonth: z.number().optional(),\n endDate: z.string().optional(),\n ocurrences: z.number().optional(),\n});\n\nexport const TriggerSchema = z.object({\n id: z.string(),\n title: z.string(),\n description: z.string(),\n transportType: z.array(z.nativeEnum(TransportType)),\n notification: NotificationDetailSchema,\n history: z.array(HistorySchema).optional(),\n status: z.nativeEnum(Status),\n recurrence: RecurrenceRuleSchema.optional(),\n timezone: z.string().nullable().optional(),\n tenantIds: z.array(z.string()).optional(),\n executionDate: z.string().optional(),\n timeOfDay: z.string(),\n criteria: CriteriaSchema,\n nextExecution: z.number().optional(),\n createdAt: z.number().optional(),\n modified: z.number().optional(),\n});\n\nexport type NotificationItem = z.infer<typeof NotificationItemSchema>;\nexport type NotificationDetail = z.infer<typeof NotificationDetailSchema>;\nexport type Trigger = z.infer<typeof TriggerSchema>;\nexport type RecurrenceRule = z.infer<typeof RecurrenceRuleSchema>;\nexport type History = z.infer<typeof HistorySchema>;\nexport type Criteria = z.infer<typeof CriteriaSchema>;\n","import Context from \"../Context\";\nimport {\n Trigger,\n NotificationDetail,\n NotificationItem,\n} from \"./Notification.schema\";\nimport * as Core from \"../core/\";\n\nexport interface IAPI {\n getTriggers: (ctx: Context) => Promise<Core.APIResponse<Trigger>>;\n createTrigger: (ctx: Context, t: Trigger) => Promise<Trigger>;\n deleteTrigger: (ctx: Context, triggerId: string) => Promise<boolean>;\n updateTrigger: (\n ctx: Context,\n triggerId: string,\n trigger: Partial<Trigger>\n ) => Promise<Trigger>;\n push: (\n context: Context,\n notification: NotificationDetail\n ) => Promise<boolean>;\n getNotifications: (\n ctx: Context\n ) => Promise<Core.APIResponse<NotificationItem>>;\n markAsRead: (ctx: Context, id: string) => Promise<boolean>;\n clearNotifications: (ctx: Context) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n Create: { uri: \"/notifications/trigger/\", method: \"POST\" },\n List: { uri: \"/notifications/trigger/list/\", method: \"GET\" },\n Update: { uri: \"/notifications/trigger/:id/\", method: \"PUT\" },\n Delete: { uri: \"/notifications/trigger/:id/\", method: \"DELETE\" },\n Push: { uri: \"/notifications/push/\", method: \"POST\" },\n ListNotifications: { uri: \"/notifications/list/\", method: \"GET\" },\n MarkAsRead: { uri: \"/notifications/:id/read/\", method: \"PUT\" },\n ClearNotifications: { uri: \"/notifications/clear/\", method: \"DELETE\" },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as Notification from \"../model/notification\";\nimport * as Core from \"../model/core\";\nimport Context from \"../model/Context\";\n\nclass NotificationAPI implements Notification.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async clearNotifications(ctx: Context): Promise<boolean> {\n const endpointData = Notification.Endpoints.ClearNotifications;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async markAsRead(ctx: Context, id: string): Promise<boolean> {\n const endpointData = Notification.Endpoints.MarkAsRead;\n const endpoint = endpointData.uri.replace(\":id\", id);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async getNotifications(\n ctx: Context\n ): Promise<Core.APIResponse<Notification.NotificationItem>> {\n const endpointData = Notification.Endpoints.ListNotifications;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async deleteTrigger(ctx: Context, triggerId: string): Promise<boolean> {\n const endpointData = Notification.Endpoints.Delete;\n const endpoint = endpointData.uri.replace(\":id\", triggerId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async updateTrigger(\n ctx: Context,\n triggerId: string,\n t: Partial<Notification.Trigger>\n ): Promise<Notification.Trigger> {\n const endpointData = Notification.Endpoints.Update;\n const endpoint = endpointData.uri.replace(\":id\", triggerId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n t,\n ctx\n );\n return data;\n }\n\n async createTrigger(\n ctx: Context,\n t: Notification.Trigger\n ): Promise<Notification.Trigger> {\n const endpointData = Notification.Endpoints.Create;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n t,\n ctx\n );\n return data;\n }\n\n async getTriggers(\n ctx: Context\n ): Promise<Core.APIResponse<Notification.Trigger>> {\n const endpointInfo = Notification.Endpoints.List;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n return data;\n }\n\n async push(\n ctx: Context,\n notification: Notification.NotificationDetail\n ): Promise<boolean> {\n const endpointInfo = Notification.Endpoints.Push;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n notification,\n ctx\n );\n\n return data.success;\n }\n}\n\nexport default NotificationAPI;\n","import Context from \"../model/Context\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport { Prompt } from \"../\";\nimport Environment from \"../model/Env\";\n\nclass PromptAPI implements Prompt.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getPrompt(context: Context): Promise<Prompt.Entity> {\n const endpointInfo = Prompt.Endpoints.GetPrompt;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n context\n );\n return data;\n }\n\n async getScripts(context: Context): Promise<Prompt.Script[]> {\n const endpointInfo = Prompt.Endpoints.ListScript;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n context\n );\n return data;\n }\n\n async updateScript(\n c: Context,\n id: string,\n script: Partial<Prompt.Script>\n ): Promise<boolean> {\n const endpointData = Prompt.Endpoints.UpdateScript;\n const endpoint = endpointData.uri.replace(\":id\", id);\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n { ...script },\n c\n );\n return data;\n }\n\n async addScript(\n c: Context,\n script: Partial<Prompt.Script>\n ): Promise<Prompt.Script> {\n const endpointInfo = Prompt.Endpoints.AddScript;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n { ...script },\n c\n );\n return data;\n }\n\n async deleteScript(c: Context, id: string): Promise<boolean> {\n const endpointData = Prompt.Endpoints.DeleteScript;\n const endpoint = endpointData.uri.replace(\":id\", id);\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n c\n );\n return data;\n }\n}\n\nexport default PromptAPI;\n","import Context from \"../model/Context\";\nimport { Subscription } from \"../\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\n\nclass SubscriptionAPI implements Subscription.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getPortalUrl(ctx: Context): Promise<string> {\n const endpointInfo = Subscription.Endpoints.GetPortal;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data.url;\n }\n\n async updatePlan(ctx: Context, planId: string): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.UpdatePlan;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n { planId },\n ctx\n );\n\n return data;\n }\n\n async getProduct(\n id: string,\n context?: Context\n ): Promise<Subscription.Product> {\n const endpointInfo = Subscription.Endpoints.GetProduct;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}/${id}`,\n endpointInfo.method,\n null,\n context\n );\n\n return data;\n }\n async getCharges(ctx: Context): Promise<Subscription.Charge[]> {\n const endpointInfo = Subscription.Endpoints.GetCharges;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data;\n }\n\n async getSubscription(\n context: Context,\n userId?: string\n ): Promise<Subscription.Entity | null> {\n const endpointInfo = Subscription.Endpoints.GetActiveSubscription;\n let uri = endpointInfo.uri;\n let method = endpointInfo.method;\n\n if (userId) {\n const endpointData = Subscription.Endpoints.GetUserActiveSubscription;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n uri = endpoint;\n method = endpointData.method;\n }\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n uri,\n method,\n null,\n context\n );\n return data;\n }\n\n async charge(ctx: Context): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.Charge;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data.success;\n }\n\n async pause(ctx: Context): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.Pause;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n return data;\n }\n\n async resume(ctx: Context): Promise<boolean> {\n const endpointInfo = Subscription.Endpoints.Resume;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n return data;\n }\n\n async getProducts(ctx?: Context): Promise<Subscription.Product[]> {\n const endpointInfo = ctx\n ? Subscription.Endpoints.GetProductsByUser\n : Subscription.Endpoints.GetProducts;\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n null,\n ctx\n );\n\n return data;\n }\n\n async createCheckout(planId: string | null, ctx: Context): Promise<string> {\n const endpointInfo = Subscription.Endpoints.Checkout;\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n { planId },\n ctx\n );\n\n return data.url;\n }\n}\n\nexport default SubscriptionAPI;\n","import Context from \"../model/Context\";\nimport { Tenant } from \"../\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\n\nclass TenantAPI implements Tenant.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getByInviteCode(\n inviteCode: string,\n context?: Context\n ): Promise<Tenant.Entity | null> {\n const endpointInfo = Tenant.Endpoints.GetByInviteCode;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}/${inviteCode}`,\n endpointInfo.method,\n null,\n context\n );\n\n return data;\n }\n\n async getTenant(\n context: Context,\n tenantId?: string\n ): Promise<Tenant.Entity | null> {\n const endpointInfo = Tenant.Endpoints.GetTenant;\n let uri = endpointInfo.uri;\n let method = endpointInfo.method;\n\n if (tenantId) {\n const endpointData = Tenant.Endpoints.GetTenantById;\n const endpoint = endpointData.uri.replace(\":tenantId\", tenantId);\n uri = endpoint;\n method = endpointData.method;\n }\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n uri,\n method,\n null,\n context\n );\n\n return data;\n }\n\n async create(t: Tenant.Entity, context: Context): Promise<boolean> {\n const endpointInfo = Tenant.Endpoints.CreateTenant;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n { ...t },\n context\n );\n\n return data;\n }\n\n async list(context: Context): Promise<Tenant.Entity[]> {\n const endpointInfo = Tenant.Endpoints.ListAll;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n null,\n context\n );\n\n return data;\n }\n\n async update(\n tenantId: string,\n updateData: Pick<Tenant.Entity, \"preferences\">,\n context: Context\n ): Promise<boolean> {\n const endpointInfo = Tenant.Endpoints.UpdateTenant;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n { tenantId, data: updateData },\n context\n );\n\n return data;\n }\n}\n\nexport default TenantAPI;\n","import * as Core from \"../model/core\";\n\nexport const buildQueryString = <T>(\n query: Partial<Core.QueryOptions<T>>\n): string => {\n const params: Record<string, string[]> = {};\n\n if (query.perPage) {\n params[\"perPage\"] = [String(query.perPage)];\n }\n\n if (query.cursor !== undefined && query.cursor !== null) {\n params[\"cursor\"] = [String(query.cursor)];\n }\n\n if (query.orderBy) {\n params[\"orderBy\"] = [\n `${String(query.orderBy.field)}:${query.orderBy.direction}`,\n ];\n }\n\n if (query.wheres && query.wheres.length > 0) {\n params[\"wheres\"] = query.wheres.map(\n (w) => `${String(w.field)}:${String(w.operation)}:${String(w.value)}`\n );\n }\n\n const queryString = Object.entries(params)\n .flatMap(([key, values]) =>\n values.map((value) => `${key}=${encodeURIComponent(value)}`)\n )\n .join(\"&\");\n\n return queryString ? `?${queryString}` : \"\";\n};\n","import Context from \"../model/Context\";\nimport { User } from \"../\";\nimport HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as Core from \"../model/core\";\nimport { buildQueryString } from \"../util/parseQuery\";\n\nclass UserAPI implements User.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async search(\n ctx: Context,\n query: Core.QueryOptions<User.Entity>\n ): Promise<Core.APIResponse<User.Entity>> {\n const endpointData = User.Endpoints.Search;\n const qs = buildQueryString(query);\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}${qs}`,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async deleteAccount(ctx: Context): Promise<boolean> {\n const endpointData = User.Endpoints.DeleteAccount;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data.success;\n }\n\n async createIntegrationToken(ctx: Context): Promise<string> {\n const endpointData = User.Endpoints.CreateToken;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n ctx\n );\n return data.token;\n }\n\n async getIntegrationToken(ctx: Context): Promise<string | null> {\n const endpointData = User.Endpoints.GetIntegrationToken;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n ctx\n );\n return data.token;\n }\n\n async sendValidationCode(email: string): Promise<boolean> {\n const endpointData = User.Endpoints.SendValidationCode;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}?email=${email}`,\n endpointData.method\n );\n return data.success;\n }\n\n async changePassword(\n email: string,\n pass: string,\n passConfirm: string,\n code: number\n ): Promise<boolean> {\n const endpointData = User.Endpoints.ChangePassword;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n { email, pass, passConfirm, code }\n );\n return data.success;\n }\n\n async changeEmail(\n ctx: Context,\n email: string,\n code: number\n ): Promise<boolean> {\n const endpointData = User.Endpoints.ChangeEmail;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n { email, code },\n ctx\n );\n return data.success;\n }\n\n async confirmCode(\n email: string,\n code: number,\n keepCode?: boolean\n ): Promise<boolean> {\n const endpointData = User.Endpoints.ConfirmCode;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}?email=${email}&code=${code}&keepCode=${keepCode}`,\n endpointData.method\n );\n return data.success;\n }\n\n async isEmailAvaliable(email: string): Promise<boolean> {\n const endpointData = User.Endpoints.IsEmailAvaliable;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}?email=${email}`,\n endpointData.method\n );\n return data.isValid;\n }\n\n async update(\n context: Context,\n update: Partial<User.Update>\n ): Promise<boolean> {\n const endpointData = User.Endpoints.UpdateUser;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n { ...update },\n context\n );\n return data.isValid;\n }\n\n async getBindedUsers(context: Context): Promise<User.Entity[]> {\n const endpointData = User.Endpoints.GetBindedUsers;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async setup(context: Context): Promise<boolean> {\n const endpointData = User.Endpoints.Setup;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async authenticate(\n email: string,\n password: string,\n system: User.System\n ): Promise<string> {\n const endpointData = User.Endpoints.Authenticate;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}`,\n endpointData.method,\n { system, email, password }\n );\n return data.token;\n }\n\n async createUser(\n email: string,\n name: string,\n password: string,\n passwordConfirmation: string,\n profession: string | null,\n invitationCode: string | null\n ) {\n const endpointData = User.Endpoints.CreateUser;\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n {\n email,\n name,\n password,\n passwordConfirmation,\n profession,\n invitationCode,\n },\n null\n );\n\n return data;\n }\n\n async getUserInfo(context: Context): Promise<User.Entity> {\n const endpointData = User.Endpoints.GetUserInfo;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n\n return data;\n }\n}\n\nexport default UserAPI;\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport { Track } from \"../\";\n\nclass TrackAPI implements Track.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async send(t: Track.Entity): Promise<boolean> {\n const endpointInfo = Track.Endpoints.Track;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointInfo.uri}`,\n endpointInfo.method,\n t\n );\n\n return data;\n }\n}\n\nexport default TrackAPI;\n","export type { Email as Entity } from \"./Email.schema\";\nexport { EmailSchema } from \"./Email.schema\";\nexport * from \"./Email.api\";\n","import { z } from \"zod\";\n\nexport const EmailSchema = z.object({\n to: z.string().email().optional(),\n subject: z.string(),\n body: z.string(),\n});\n\nexport type Email = z.infer<typeof EmailSchema>;\n","import Context from \"../Context\";\nimport { Email } from \"./Email.schema\";\n\nexport interface IAPI {\n send: (email: Email, ctx?: Context) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n SendEmail: {\n uri: \"/emails/public/send\",\n method: \"POST\",\n },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport Context from \"../model/Context\";\nimport * as Email from \"../model/email\";\n\nclass EmailAPI implements Email.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async send(email: Email.Entity, ctx?: Context): Promise<boolean> {\n const endpointInfo = Email.Endpoints.SendEmail;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method,\n email,\n ctx\n );\n\n return data.result;\n }\n}\n\nexport default EmailAPI;\n","export type {\n Project as Entity,\n Approve,\n Style,\n ProjectCreation,\n SendToApproval,\n TimelineItem,\n Feedback,\n} from \"./Project.schema\";\n\nexport {\n ProjectSchema,\n Status,\n CaptionStyle,\n Styles,\n TimelineItemSchema,\n FeedbackSchema,\n} from \"./Project.schema\";\n\nexport * from \"./Project.api\";\n","import { z } from \"zod\";\nimport { AssetSchema } from \"../asset\";\n\nexport enum Status {\n SUBMITTED = 0,\n EDITING = 1,\n COMPLETED = 2,\n WAITING_APPROVE = 3,\n DENIED = 4,\n REVISIONING = 5,\n CANCELLED = 6,\n SCHEDULED = 7,\n}\n\nexport enum CaptionStyle {\n ONE_LINE = 1,\n ONE_LINE_EMOJIS = 2,\n TWO_LINES = 5,\n TWO_LINES_EMOJIS = 3,\n HOME_HIGHLIGHT = 4,\n}\n\nexport const StatusSchema = z.nativeEnum(Status);\nexport const CaptionStyleStatus = z.nativeEnum(CaptionStyle);\n\nexport const Styles: Style[] = [\n { value: CaptionStyle.ONE_LINE, label: \"One Line\" },\n { value: CaptionStyle.ONE_LINE_EMOJIS, label: \"One Line + Emojis\" },\n { value: CaptionStyle.TWO_LINES, label: \"Two Lines\" },\n { value: CaptionStyle.TWO_LINES_EMOJIS, label: \"Two Lines + Emojis\" },\n { value: CaptionStyle.HOME_HIGHLIGHT, label: \"Home Tour\" },\n];\n\nexport type Style = {\n value: CaptionStyle;\n label: string;\n};\n\nexport const TimelineItemSchema = z.object({\n status: z.nativeEnum(Status),\n title: z.string(),\n description: z.string(),\n timestamp: z.number(),\n metadata: z.record(z.any()),\n});\n\nexport const FeedbackSchema = z.object({\n criteria: z.array(\n z.object({\n id: z.string(),\n label: z.string(),\n score: z.number().min(0).max(10),\n comment: z.string().optional(),\n })\n ),\n comment: z.string().optional(),\n});\n\nexport const ProjectSchema = z.object({\n id: z.string(),\n title: z.string(),\n instructions: z.string(),\n submitMonth: z.string(),\n captionStyle: z.nativeEnum(CaptionStyle),\n finalVideoId: z.string().optional(),\n thumbnailUrl: z.string().optional(),\n modified: z.number(),\n feedback: FeedbackSchema.optional(),\n captionSuggestion: z.string().optional(),\n editorId: z.string().optional(),\n userId: z.string(),\n assets: z.array(AssetSchema).optional(),\n expirationTimestamp: z.number(),\n isFree: z.boolean().optional(),\n timeline: z.array(TimelineItemSchema),\n submitTimestamp: z.number(),\n tenantId: z.string().optional(),\n status: z.nativeEnum(Status),\n});\n\nexport type ProjectCreation = Pick<\n Project,\n \"title\" | \"instructions\" | \"captionStyle\" | \"assets\"\n>;\n\nexport type SendToApproval = {\n video: string;\n thumbnail: string;\n captionSuggestion: string;\n};\n\nexport type Approve = {\n scheduleTime?: number;\n captionSuggestion: string;\n feedback?: Feedback;\n};\n\nexport type Project = z.infer<typeof ProjectSchema>;\nexport type TimelineItem = z.infer<typeof TimelineItemSchema>;\nexport type Feedback = z.infer<typeof FeedbackSchema>;\n","export { AssetSchema } from \"./Asset.schema\";\nexport type { Asset as Entity } from \"./Asset.schema\";\n","import { z } from \"zod\";\n\nconst AssetSchema = z.object({\n assetId: z.string(),\n fileName: z.string(),\n extension: z.string(),\n fileSize: z.number(),\n assetUrl: z.string().url(),\n thumbnailUrl: z.string().url(),\n type: z.string(),\n duration: z.number().optional(),\n progress: z.number().optional(),\n error: z.string().optional(),\n authorId: z.string(),\n uploadedAt: z.number(),\n});\n\ntype Asset = z.infer<typeof AssetSchema>;\n\nexport { Asset, AssetSchema };\n","import Context from \"../Context\";\nimport {\n Project,\n ProjectCreation,\n SendToApproval,\n Approve,\n} from \"./Project.schema\";\nimport * as Core from \"../core\";\n\nexport interface IAPI {\n reorder: (\n context: Context,\n projectId: string,\n position: number\n ) => Promise<boolean>;\n find: (context: Context, projectId: string) => Promise<Project>;\n create: (context: Context, data: ProjectCreation) => Promise<Project>;\n review: (\n context: Context,\n projectId: string,\n revision: string\n ) => Promise<boolean>;\n cancel: (context: Context, projectId: string) => Promise<boolean>;\n list: (\n context: Context,\n query: Core.QueryOptions<Project>\n ) => Promise<Project[]>;\n start: (context: Context) => Promise<boolean>;\n sendToApproval: (\n context: Context,\n projectId: string,\n data: SendToApproval\n ) => Promise<boolean>;\n approve: (\n context: Context,\n projectId: string,\n data: Approve\n ) => Promise<boolean>;\n deny: (\n context: Context,\n projectId: string,\n denyFeedback: string,\n categories?: string[]\n ) => Promise<boolean>;\n unschedule: (context: Context, projectId: string) => Promise<boolean>;\n rollback: (context: Context, projectId: string) => Promise<boolean>;\n getNext: (context: Context, userId: string) => Promise<Project | null>;\n getUserHistory: (\n context: Context,\n userId: string\n ) => Promise<Core.APIResponse<Project>>;\n\n getPoolSize(context: Context): Promise<number>;\n\n permissions: {\n isEligibleForFreeProject(context: Context): Promise<boolean>;\n };\n}\n\nexport const Endpoints = {\n Reorder: { uri: \"/projects/reorder/\", method: \"POST\" },\n List: { uri: \"/projects/list\", method: \"GET\" },\n GetNext: { uri: \"/projects/:userId/next\", method: \"GET\" },\n CreateProject: { uri: \"/projects/create\", method: \"POST\" },\n FindOne: { uri: `/projects/:projectId/`, method: \"GET\" },\n GetGoals: { uri: `/projects/goals/list/`, method: \"GET\" },\n Review: { uri: \"/projects/:projectId/review/\", method: \"POST\" },\n Cancel: { uri: \"/projects/:projectId/cancel/\", method: \"DELETE\" },\n StartEdition: { uri: \"/projects/edition/start/\", method: \"PUT\" },\n SendToApproval: {\n uri: \"/projects/:projectId/sendToApproval/\",\n method: \"PUT\",\n },\n IsEligibleForFreeProject: {\n uri: \"/projects/free/allowed/\",\n method: \"GET\",\n },\n Approve: { uri: \"/projects/:projectId/approve/\", method: \"POST\" },\n Unschedule: { uri: \"/projects/:projectId/unschedule/\", method: \"POST\" },\n Rollback: { uri: \"/projects/:projectId/rollback/\", method: \"POST\" },\n Deny: { uri: \"/projects/:projectId/deny/\", method: \"POST\" },\n GetUserHistory: { uri: \"/projects/user/:userId/history/\", method: \"GET\" },\n GetPoolSize: { uri: \"/projects/pool/size/\", method: \"GET\" },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as Project from \"../model/project\";\nimport Context from \"../model/Context\";\nimport * as Core from \"../model/core\";\nimport { buildQueryString } from \"../util/parseQuery\";\n\nclass ProjectAPI implements Project.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getPoolSize(context: Context): Promise<number> {\n const endpointData = Project.Endpoints.GetPoolSize;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n return data.size;\n }\n\n async reorder(\n ctx: Context,\n projectId: string,\n position: number\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.Reorder;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n { projectId, position },\n ctx\n );\n\n return data.success;\n }\n\n permissions = {\n isEligibleForFreeProject: async (ctx: Context): Promise<boolean> => {\n const endpointData = Project.Endpoints.IsEligibleForFreeProject;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n ctx\n );\n return data.canCreate;\n },\n };\n\n async getNext(ctx: Context, userId: string): Promise<Project.Entity | null> {\n const endpointData = Project.Endpoints.GetNext;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data;\n }\n\n async getUserHistory(\n context: Context,\n userId: string\n ): Promise<Core.APIResponse<Project.Entity>> {\n const endpointData = Project.Endpoints.GetUserHistory;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async find(context: Context, projectId: string): Promise<Project.Entity> {\n const endpointData = Project.Endpoints.FindOne;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async create(\n context: Context,\n createData: Project.ProjectCreation\n ): Promise<Project.Entity> {\n const endpointData = Project.Endpoints.CreateProject;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n createData,\n context\n );\n return data;\n }\n\n async review(ctx: Context, pId: string, revision: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Review;\n const endpoint = endpointData.uri.replace(\":projectId\", pId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n { revision },\n ctx\n );\n return data.success;\n }\n\n async cancel(ctx: Context, projectId: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Cancel;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n ctx\n );\n return data.success;\n }\n\n async list(\n context: Context,\n query: Core.QueryOptions<Project.Entity>\n ): Promise<Project.Entity[]> {\n const endpointData = Project.Endpoints.List;\n const qs = buildQueryString(query);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n `${endpointData.uri}${qs}`,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n\n async deny(\n ctx: Context,\n pId: string,\n denyFB: string,\n categories?: string[]\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.Deny;\n const endpoint = endpointData.uri.replace(\":projectId\", pId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n { denyFeedback: denyFB, categories: categories || [] },\n ctx\n );\n return data.success;\n }\n\n async unschedule(context: Context, projectId: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Unschedule;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async rollback(context: Context, projectId: string): Promise<boolean> {\n const endpointData = Project.Endpoints.Rollback;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async start(context: Context): Promise<boolean> {\n const endpointData = Project.Endpoints.StartEdition;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n return data.success;\n }\n\n async approve(\n ctx: Context,\n pId: string,\n approve: Project.Approve\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.Approve;\n const endpoint = endpointData.uri.replace(\":projectId\", pId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n approve,\n ctx\n );\n return data.success;\n }\n\n async sendToApproval(\n context: Context,\n projectId: string,\n approval: Project.SendToApproval\n ): Promise<boolean> {\n const endpointData = Project.Endpoints.SendToApproval;\n const endpoint = endpointData.uri.replace(\":projectId\", projectId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n approval,\n context\n );\n return data.success;\n }\n}\n\nexport default ProjectAPI;\n","export type { Goal as Entity, DailyMilestone } from \"./Goal.schema\";\n\nexport { GoalSchema, DailyMilestoneSchema } from \"./Goal.schema\";\n\nexport * from \"./Goal.api\";\n","import { z } from \"zod\";\n\nexport const DailyMilestoneSchema = z.object({\n id: z.string(),\n date: z.string(),\n target: z.number(),\n progress: z.number(),\n});\n\nexport const GoalSchema = z.object({\n id: z.string(),\n editorId: z.string(),\n isoWeek: z.string(), // ex: \"2026-W27\"\n target: z.number(),\n progress: z.number(),\n createdAt: z.number(),\n dailyMilestones: z.array(DailyMilestoneSchema),\n});\n\nexport type DailyMilestone = z.infer<typeof DailyMilestoneSchema>;\nexport type Goal = z.infer<typeof GoalSchema>;\n","import Context from \"../Context\";\nimport { Goal } from \"./Goal.schema\";\n\nexport interface IAPI {\n getGoals: (context: Context) => Promise<Goal[]>;\n}\n\nexport const Endpoints = {\n GetGoals: { uri: `/projects/goals/list/`, method: \"GET\" },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport Context from \"../model/Context\";\nimport * as Goal from \"../model/goal\";\n\nclass GoalAPI implements Goal.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async getGoals(context: Context): Promise<Goal.Entity[]> {\n const endpointData = Goal.Endpoints.GetGoals;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n null,\n context\n );\n return data;\n }\n}\n\nexport default GoalAPI;\n","export interface IAPI {\n version: () => Promise<string>;\n}\n\nexport const Endpoints = {\n Version: {\n uri: \"/app-config/public/version/latest\",\n method: \"GET\",\n },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport * as APPConfig from \"../model/app-config\";\n\nclass AppConfigAPI implements APPConfig.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async version(): Promise<string> {\n const endpointInfo = APPConfig.Endpoints.Version;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointInfo.uri,\n endpointInfo.method\n );\n\n return data.version;\n }\n}\n\nexport default AppConfigAPI;\n","export { NoteSchema, NoteHistorySchema } from \"./Note.schema\";\nexport type { Note as Entity, NoteHistory } from \"./Note.schema\";\nexport * from \"./Note.api\";\n","import { z } from \"zod\";\nimport { AssetSchema } from \"../asset\";\n\nconst NoteHistorySchema = z.object({\n type: z.enum([\n \"created\",\n \"updated\",\n \"deleted\",\n \"asset-added\",\n \"asset-removed\",\n ]),\n actorEmail: z.string().email(),\n timestamp: z.number(),\n details: z.string().optional(),\n});\n\nconst NoteSchema = z.object({\n id: z.string(),\n userId: z.string(),\n authorEmail: z.string().email(),\n assets: z.array(AssetSchema),\n title: z.string(),\n content: z.string(),\n createdAt: z.number(),\n modified: z.number(),\n history: z.array(NoteHistorySchema).optional(),\n});\n\ntype Note = z.infer<typeof NoteSchema>;\ntype NoteHistory = z.infer<typeof NoteHistorySchema>;\n\nexport { NoteHistorySchema, NoteSchema, NoteHistory, Note };\n","import Context from \"../Context\";\nimport { Note } from \"./Note.schema\";\n\nexport interface IAPI {\n list: (c: Context, userId: string) => Promise<Note[]>;\n add: (c: Context, note: Partial<Note>) => Promise<Note>;\n update: (c: Context, id: string, script: Partial<Note>) => Promise<Note>;\n delete: (c: Context, id: string) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n GetNotes: {\n uri: \"/user-context/notes/user/:userId/\",\n method: \"GET\",\n },\n AddNote: {\n uri: \"/user-context/notes/\",\n method: \"PUT\",\n },\n DeleteNote: {\n uri: \"/user-context/notes/:id/\",\n method: \"DELETE\",\n },\n UpdateNote: {\n uri: \"/user-context/notes/:id/\",\n method: \"POST\",\n },\n};\n","import HTTPClient from \"../util/HTTPClient\";\nimport Environment from \"../model/Env\";\nimport Context from \"../model/Context\";\nimport * as Note from \"../model/note\";\n\nclass NoteAPI implements Note.IAPI {\n private env: Environment;\n private clientHTTP: HTTPClient;\n\n constructor(env: Environment) {\n this.env = env;\n this.clientHTTP = new HTTPClient();\n }\n\n async list(c: Context, userId: string): Promise<Note.Entity[]> {\n const endpointData = Note.Endpoints.GetNotes;\n const endpoint = endpointData.uri.replace(\":userId\", userId);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n c\n );\n return data;\n }\n\n async add(c: Context, note: Partial<Note.Entity>): Promise<Note.Entity> {\n const endpointData = Note.Endpoints.AddNote;\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n note,\n c\n );\n return data;\n }\n\n async update(\n c: Context,\n id: string,\n toUpdate: Partial<Note.Entity>\n ): Promise<Note.Entity> {\n const endpointData = Note.Endpoints.UpdateNote;\n const endpoint = endpointData.uri.replace(\":id\", id);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n toUpdate,\n c\n );\n return data;\n }\n\n async delete(c: Context, id: string): Promise<boolean> {\n const endpointData = Note.Endpoints.DeleteNote;\n const endpoint = endpointData.uri.replace(\":id\", id);\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpoint,\n endpointData.method,\n null,\n c\n );\n return data;\n }\n}\n\nexport default NoteAPI;\n","import NotificationAPI from \"../api/Notification.api\";\nimport PromptAPI from \"../api/Prompt.api\";\nimport SubscriptionAPI from \"../api/Subscription.api\";\nimport TenantAPI from \"../api/Tenant.api\";\nimport UserAPI from \"../api/User.api\";\nimport TrackAPI from \"../api/Track.api\";\nimport EmailAPI from \"../api/Email.api\";\nimport ProjectAPI from \"../api/Project.api\";\nimport GoalAPI from \"../api/Goal.api\";\nimport AppConfigAPI from \"../api/AppConfig.api\";\nimport NoteAPI from \"../api/Note.api\";\n\nimport Environment from \"./Env\";\n\nimport * as Prompt from \"./../model/prompt\";\nimport * as Subscription from \"./../model/subscription\";\nimport * as User from \"./../model/user\";\nimport * as Tenant from \"./../model/tenant\";\nimport * as Track from \"./../model/track\";\nimport * as Email from \"./../model/email\";\nimport * as Project from \"./../model/project\";\nimport * as Goal from \"./../model/goal\";\nimport * as Notification from \"./../model/notification\";\nimport * as AppConfig from \"./../model/app-config\";\nimport * as Note from \"./../model/note\";\n\nexport class ShredAPI {\n user: User.IAPI;\n goal: Goal.IAPI;\n subscription: Subscription.IAPI;\n prompt: Prompt.IAPI;\n pushNotification: Notification.IAPI;\n email: Email.IAPI;\n tenant: Tenant.IAPI;\n app: AppConfig.IAPI;\n project: Project.IAPI;\n track: Track.IAPI;\n note: Note.IAPI;\n\n constructor(env: Environment) {\n this.user = new UserAPI(env);\n this.goal = new GoalAPI(env);\n this.prompt = new PromptAPI(env);\n this.subscription = new SubscriptionAPI(env);\n this.pushNotification = new NotificationAPI(env);\n this.email = new EmailAPI(env);\n this.tenant = new TenantAPI(env);\n this.project = new ProjectAPI(env);\n this.app = new AppConfigAPI(env);\n this.track = new TrackAPI(env);\n this.note = new NoteAPI(env);\n }\n}\n","import ConflictException from \"./ConflictException\";\nimport InvalidArgumentException from \"./InvalidArgumentException\";\nimport ResourceNotFoundException from \"./ResourceNotFoundException\";\nimport ShredException from \"./ShredException\";\nimport UnauthorizedException from \"./UnauthorizedException\";\nimport ForbiddenException from \"./ForbiddenException\";\n\nconst Exceptions = {\n ConflictException,\n InvalidArgumentException,\n ResourceNotFoundException,\n ShredException,\n UnauthorizedException,\n ForbiddenException,\n};\n\nexport default Exceptions;\n\nexport type {\n ConflictException,\n InvalidArgumentException,\n ResourceNotFoundException,\n ShredException,\n UnauthorizedException,\n ForbiddenException,\n};\n","export default class ShredException extends Error {\n public status: number;\n\n constructor(message: string, status: number) {\n super(message);\n this.name = \"ShredException\";\n this.status = status;\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class ConflictException extends ShredException {\n constructor(message: string) {\n super(message, 409);\n this.name = \"ConflictException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class InvalidArgumentException extends ShredException {\n constructor(message: string) {\n super(message, 400);\n this.name = \"InvalidArgumentException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class ResourceNotFoundException extends ShredException {\n constructor(message: string) {\n super(message, 404);\n this.name = \"ResourceNotFoundException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class UnauthorizedException extends ShredException {\n constructor(message: string) {\n super(message, 401);\n this.name = \"UnauthorizedException\";\n }\n}\n","import ShredException from \"./ShredException\";\n\nexport default class ForbiddenException extends ShredException {\n constructor(message: string) {\n super(message, 403);\n this.name = \"ForbiddenException\";\n }\n}\n","export { PromptSchema, ScriptSchema, CategorySchema } from \"./Prompt.schema\";\nexport type { Prompt as Entity, Script, Category } from \"./Prompt.schema\";\nexport * from \"./Prompt.api\";\n","import { z } from \"zod\";\n\nexport const ScriptSchema = z.object({\n id: z.string(),\n title: z.string(),\n content: z.string(),\n tags: z.array(z.string()).optional(),\n userId: z.string().optional(),\n});\n\nexport const CategorySchema = z.object({\n id: z.string(),\n title: z.string(),\n pictureUrl: z.string().url(),\n backgroundColor: z.string(),\n active: z.boolean(),\n scripts: z.array(ScriptSchema),\n});\n\nexport const PromptSchema = z.object({\n id: z.string(),\n tenantId: z.string(),\n categories: z.array(CategorySchema),\n});\n\n// Infer types\nexport type Script = z.infer<typeof ScriptSchema>;\nexport type Category = z.infer<typeof CategorySchema>;\nexport type Prompt = z.infer<typeof PromptSchema>;\n","import Context from \"../Context\";\nimport { Prompt, Script } from \"./Prompt.schema\";\n\nexport interface IAPI {\n getPrompt: (c: Context) => Promise<Prompt>;\n addScript: (c: Context, script: Partial<Script>) => Promise<Script>;\n deleteScript: (c: Context, id: string) => Promise<boolean>;\n getScripts: (c: Context) => Promise<Script[]>;\n updateScript: (\n c: Context,\n id: string,\n script: Partial<Script>\n ) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n GetPrompt: {\n uri: \"/prompts/getPrompt\",\n method: \"GET\",\n },\n AddScript: {\n uri: \"/prompts/script/new/\",\n method: \"POST\",\n },\n DeleteScript: {\n uri: \"/prompts/script/:id/delete/\",\n method: \"DELETE\",\n },\n ListScript: {\n uri: \"/prompts/script/list/\",\n method: \"GET\",\n },\n UpdateScript: {\n uri: \"/prompts/script/:id/update/\",\n method: \"PUT\",\n },\n};\n","export type { Tenant as Entity, Preferences } from \"./Tenant.schema\";\nexport { TenantSchema, PreferencesSchema } from \"./Tenant.schema\";\nexport * from \"./Tenant.api\";\n","import { z } from \"zod\";\nimport { SubscriptionSchema } from \"../subscription/Subscription.schema\";\n\nexport const PreferencesSchema = z.object({\n iconUrl: z.string().url(),\n logoUrl: z.string().url(),\n primaryColor: z.string(),\n secondaryColor: z.string(),\n guidelinesUrl: z.string().url().optional(),\n});\n\nexport const TenantSchema = z.object({\n id: z.string(),\n name: z.string(),\n isActive: z.boolean(),\n isSubscriptionActive: z.boolean(),\n preferences: PreferencesSchema,\n inviteCode: z.string(),\n totalUsersAllowed: z.number(),\n currentUsersSize: z.number().optional(),\n chargeByEmail: z.boolean(),\n defaultProductId: z.string().optional(),\n defaultPlanId: z.string().optional(),\n defaultCoupomCode: z.string().optional(),\n allowedProducts: z.array(z.string()).optional(),\n useOwnScripts: z.boolean().optional(),\n subscription: z.optional(z.lazy(() => SubscriptionSchema)),\n});\n\nexport type Tenant = z.infer<typeof TenantSchema>;\nexport type Preferences = z.infer<typeof PreferencesSchema>;\n","import { z } from \"zod\";\n\nexport enum Type {\n CUSTOMER_SUBSCRIPTION = 0,\n TENANT_SUBSCRIPTION = 1,\n}\n\nexport const SubscriptionTypeSchema = z.nativeEnum(Type);\n\nexport const PlanSchema = z.object({\n id: z.string(),\n currency: z.string(),\n price: z.number(),\n interval: z.string(),\n metadata: z.record(z.string()),\n subscriptionItemId: z.string(),\n});\n\nexport const DescriptionSchema = z.object({\n description: z.string(),\n subtitle: z.string(),\n});\n\nexport const ProductSchema = z.object({\n id: z.string(),\n name: z.string(),\n descriptions: z.array(DescriptionSchema),\n metadata: z.any(),\n plans: z.array(PlanSchema),\n percentOff: z.number().default(0),\n});\n\nexport const ChargeSchema = z.object({\n id: z.number(),\n created: z.number(),\n paid: z.boolean(),\n receiptUrl: z.string(),\n status: z.string(),\n price: z.string(),\n paymentType: z.string(),\n last4: z.string().optional(),\n brand: z.string().optional(),\n});\n\nexport const SubscriptionSchema = z.object({\n id: z.string(),\n status: z.string(),\n startDate: z.number().optional(),\n daysUntilDue: z.number().optional(),\n renewAutomatically: z.boolean().optional(),\n currentPeriodStart: z.number().optional(),\n currentPeriodEnd: z.number().optional(),\n paymentMethodId: z.string().optional(),\n product: ProductSchema,\n type: z.nativeEnum(Type).optional(),\n plan: PlanSchema.optional(),\n});\n\nexport type Subscription = z.infer<typeof SubscriptionSchema>;\nexport type Charge = z.infer<typeof ChargeSchema>;\nexport type Plan = z.infer<typeof PlanSchema>;\nexport type Product = z.infer<typeof ProductSchema>;\n","import Context from \"../Context\";\nimport { Tenant } from \"./Tenant.schema\";\n\nexport interface IAPI {\n getByInviteCode: (code: string, context?: Context) => Promise<Tenant | null>;\n create: (tenant: Tenant, context: Context) => Promise<boolean>;\n list: (context: Context) => Promise<Tenant[]>;\n getTenant: (context: Context, tenantId?: string) => Promise<Tenant | null>;\n update: (\n tenantId: string,\n data: Pick<Tenant, \"preferences\">,\n context: Context\n ) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n GetByInviteCode: {\n uri: \"/tenants/public/invitation/\",\n method: \"GET\",\n },\n CreateTenant: {\n uri: \"/tenants/create\",\n method: \"PUT\",\n },\n GetTenant: {\n uri: \"/tenants/me\",\n method: \"GET\",\n },\n GetTenantById: {\n uri: \"/tenants/:tenantId/find\",\n method: \"GET\",\n },\n UpdateTenant: {\n uri: \"/tenants/update\",\n method: \"POST\",\n },\n ListAll: {\n uri: \"/tenants/list\",\n method: \"GET\",\n },\n};\n","export type { User as Entity, Preferences, Update } from \"./User.schema\";\nexport { UserSchema, PreferencesSchema, Role, System } from \"./User.schema\";\nexport * from \"./User.api\";\n","import { z } from \"zod\";\n\nexport enum Role {\n USER = \"User\",\n EDITOR = \"Editor\",\n QA = \"QA\",\n ADMIN = \"ADMIN\",\n SYSTEM = \"SYSTEM\",\n}\n\nexport enum System {\n APP = \"APP\",\n EDITOR = \"EDITOR\",\n QA = \"QA\",\n ADMIN = \"ADMIN\",\n}\n\nexport const PreferencesSchema = z.object({\n primaryColor: z.string().optional(),\n secondaryColor: z.string().optional(),\n facebookLink: z.string().optional(),\n isFeedbackEnabled: z.boolean().default(true).optional(),\n instagramLink: z.string().optional(),\n bRoll: z.boolean().optional(),\n logo: z.string().optional(),\n});\n\nexport const UserSchema = z.object({\n id: z.string(),\n name: z.string(),\n email: z.string().email(),\n fcmToken: z.string().optional(),\n profession: z.string().optional(),\n photoUrl: z.string().optional(),\n preferences: PreferencesSchema.optional(),\n tenantId: z.string().optional(),\n editorId: z.string().optional(),\n timezone: z.string().optional(),\n experienceId: z.string().optional(),\n customerId: z.string(),\n role: z.nativeEnum(Role),\n});\n\nexport type User = z.infer<typeof UserSchema>;\nexport type Preferences = z.infer<typeof PreferencesSchema>;\nexport type Update = Pick<\n User,\n | \"name\"\n | \"profession\"\n | \"preferences\"\n | \"photoUrl\"\n | \"fcmToken\"\n | \"timezone\"\n | \"experienceId\"\n>;\n","import * as Core from \"../core\";\nimport Context from \"../Context\";\nimport { System, User, Update } from \"./User.schema\";\n\nexport interface IAPI {\n getUserInfo: (context: Context) => Promise<User>;\n isEmailAvaliable: (email: string) => Promise<boolean>;\n sendValidationCode: (email: string) => Promise<boolean>;\n confirmCode: (\n email: string,\n code: number,\n keepCode?: boolean\n ) => Promise<boolean>;\n changePassword: (\n email: string,\n pass: string,\n passConfirm: string,\n code: number\n ) => Promise<boolean>;\n changeEmail: (ctx: Context, email: string, code: number) => Promise<boolean>;\n authenticate: (\n email: string,\n password: string,\n system: System\n ) => Promise<string>;\n update: (context: Context, update: Partial<Update>) => Promise<boolean>;\n setup: (context: Context) => Promise<boolean>;\n getBindedUsers: (ctx: Context) => Promise<User[]>;\n deleteAccount: (ctx: Context) => Promise<boolean>;\n getIntegrationToken: (ctx: Context) => Promise<string | null>;\n createIntegrationToken: (ctx: Context) => Promise<string>;\n search: (\n ctx: Context,\n query: Core.QueryOptions<User>\n ) => Promise<Core.APIResponse<User>>;\n createUser: (\n email: string,\n name: string,\n password: string,\n passwordConfirmation: string,\n profession: string | null,\n invitationCode: string | null\n ) => Promise<User>;\n}\n\nexport const Endpoints = {\n ChangeEmail: { uri: \"/accounts/user/changeEmail\", method: \"PUT\" },\n GetUserInfo: { uri: \"/accounts/user/info\", method: \"GET\" },\n GetBindedUsers: { uri: \"/accounts/binded/list\", method: \"GET\" },\n EnableUser: { uri: \"/api/user/register\", method: \"POST\" },\n ChangePassword: { uri: \"/accounts/public/changePassword/\", method: \"POST\" },\n IsEmailAvaliable: { uri: \"/accounts/public/email/avaliable\", method: \"GET\" },\n GetIntegrationToken: { uri: \"/accounts/user/getToken/\", method: \"GET\" },\n CreateToken: { uri: \"/accounts/user/createToken/\", method: \"POST\" },\n ConfirmCode: { uri: \"/accounts/public/email/validate\", method: \"POST\" },\n DeleteAccount: { uri: \"/accounts/user/delete/\", method: \"DELETE\" },\n SendValidationCode: { uri: \"/accounts/public/email/send\", method: \"POST\" },\n Authenticate: { uri: \"/accounts/public/login\", method: \"POST\" },\n CreateUser: { uri: \"/accounts/public/create\", method: \"POST\" },\n UpdateUser: { uri: \"/accounts/user/update\", method: \"PUT\" },\n Setup: { uri: \"/accounts/user/setup/\", method: \"POST\" },\n Search: { uri: \"/accounts/users/search/\", method: \"GET\" },\n};\n","export type {\n Subscription as Entity,\n Product,\n Plan,\n Charge,\n} from \"./Subscription.schema\";\n\nexport {\n SubscriptionSchema,\n ProductSchema,\n PlanSchema,\n ChargeSchema,\n Type,\n SubscriptionTypeSchema,\n} from \"./Subscription.schema\";\n\nexport * from \"./Subscription.api\";\n","import Context from \"../Context\";\nimport { Charge, Product, Subscription } from \"./Subscription.schema\";\n\nexport interface IAPI {\n getCharges: (ctx: Context) => Promise<Charge[]>;\n getPortalUrl: (ctx: Context) => Promise<string>;\n getSubscription: (\n context: Context,\n userId?: string\n ) => Promise<Subscription | null>;\n getProduct: (id: string, context?: Context) => Promise<Product>;\n getProducts: (ctx?: Context) => Promise<Product[]>;\n charge: (ctx: Context) => Promise<boolean>;\n pause: (ctx: Context) => Promise<boolean>;\n resume: (ctx: Context) => Promise<boolean>;\n updatePlan: (ctx: Context, planId: string) => Promise<boolean>;\n createCheckout: (planId: string | null, ctx: Context) => Promise<string>;\n}\n\nexport const Endpoints = {\n GetPortal: {\n uri: \"/subscriptions/portal/\",\n method: \"GET\",\n },\n GetProduct: {\n uri: \"/subscriptions/products/public/retrieve/\",\n method: \"GET\",\n },\n GetActiveSubscription: {\n uri: \"/subscriptions/active/\",\n method: \"GET\",\n },\n GetCharges: {\n uri: \"/subscriptions/payment/charge/list/\",\n method: \"GET\",\n },\n GetUserActiveSubscription: {\n uri: \"/subscriptions/:userId/find/\",\n method: \"GET\",\n },\n GetProducts: {\n uri: \"/subscriptions/products/public/list/\",\n method: \"GET\",\n },\n GetProductsByUser: {\n uri: \"/subscriptions/products/list/\",\n method: \"GET\",\n },\n Checkout: {\n uri: \"/subscriptions/payment/checkout/\",\n method: \"POST\",\n },\n Charge: {\n uri: \"/subscriptions/payment/charge/\",\n method: \"POST\",\n },\n Pause: {\n uri: \"/subscriptions/pause/\",\n method: \"PUT\",\n },\n Resume: {\n uri: \"/subscriptions/resume/\",\n method: \"PUT\",\n },\n UpdatePlan: {\n uri: \"/subscriptions/plan/update/\",\n method: \"PUT\",\n },\n};\n","export type { Track as Entity, TrackParam } from \"./Track.schema\";\nexport { TrackSchema, TrackParamSchema } from \"./Track.schema\";\nexport * from \"./Track.api\";\n","import { z } from \"zod\";\n\nexport const TrackParamSchema = z.object({\n name: z.string(),\n value: z.union([z.string(), z.number()]),\n});\n\nexport const TrackSchema = z.object({\n category: z.string(),\n label: z.string(),\n action: z.string(),\n params: z.array(TrackParamSchema).optional(),\n});\n\nexport type Track = z.infer<typeof TrackSchema>;\nexport type TrackParam = z.infer<typeof TrackParamSchema>;\n","import { Track } from \"./Track.schema\";\n\nexport interface IAPI {\n send: (t: Track) => Promise<boolean>;\n}\n\nexport const Endpoints = {\n Track: {\n uri: \"/track/public/send/\",\n method: \"POST\",\n },\n};\n","export * from \"./Query\";\nexport * from \"./APIResponse\";\n","import { ShredAPI } from \"./model/Api\";\n\n//V2\nexport * as Exceptions from \"./model/exceptions\";\nexport * as Prompt from \"./model/prompt\";\nexport * as Asset from \"./model/asset\";\nexport * as Tenant from \"./model/tenant\";\nexport * as User from \"./model/user\";\nexport * as Subscription from \"./model/subscription\";\nexport * as Track from \"./model/track\";\nexport * as Email from \"./model/email\";\nexport * as Core from \"./model/core\";\nexport * as Project from \"./model/project\";\nexport * as Goal from \"./model/goal\";\nexport * as Notification from \"./model/notification\";\nexport * as Note from \"./model/note\";\n\nexport default ShredAPI;\n"],"mappings":";;;;;;;AAEA,OAAO,WAAW;AAElB,IAAM,QAAQ;AAAA,EACZ,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT;AAEA,IAAM,YAAY;AAAA,EAChB,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AACT;AAEA,IAAqB,aAArB,MAAgC;AAAA,EAC9B,MAAM,YACJ,KACA,KACA,QACA,MACA,SACA,cACc;AACd,UAAM,WAAW,eAAe,YAAY;AAC5C,UAAM,OAAO,SAAS,GAAG,KAAK,SAAS;AACvC,UAAM,MAAM,OAAO;AAEnB,UAAM,UAAkC;AAAA,MACtC,gBAAgB,eACZ,sCACA;AAAA,IACN;AAEA,QAAI,SAAS,OAAO;AAClB,cAAQ,eAAe,IAAI,UAAU,QAAQ,KAAK;AAAA,IACpD;AAEA,QAAI,SAAS,WAAW;AACtB,cAAQ,cAAc,IAAI,QAAQ;AAAA,IACpC;AAEA,UAAM,eAA4B;AAAA,MAChC;AAAA,MACA;AAAA,IACF;AAEA,QAAI,WAAW,SAAS,MAAM;AAC5B,mBAAa,OAAO,eAChB,IAAI,gBAAgB,IAAI,EAAE,SAAS,IACnC,KAAK,UAAU,IAAI;AAAA,IACzB;AAEA,QAAI;AACF,YAAM,WAAW,MAAM,MAAM,KAAK,YAAY;AAE9C,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,YAAY,MAAM,SAAS,KAAK;AACtC,cAAM;AAAA,UACJ,QAAQ,SAAS;AAAA,UACjB,YAAY,SAAS;AAAA,UACrB,MAAM;AAAA,QACR;AAAA,MACF;AAEA,UAAI;AACF,eAAO,MAAM,SAAS,KAAK;AAAA,MAC7B,QAAQ;AACN,eAAO,MAAM,SAAS,KAAK;AAAA,MAC7B;AAAA,IACF,SAAS,OAAY;AACnB,UAAI,aAAkB,CAAC;AAEvB,UAAI;AACF,qBAAa,MAAM,OAAO,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC;AAAA,MACtD,QAAQ;AACN,qBAAa,EAAE,SAAS,MAAM,QAAQ,gBAAgB;AAAA,MACxD;AAEA,YAAM;AAAA,QACJ,SAAS,WAAW,WAAW;AAAA,QAC/B,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AACF;;;ACtFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,SAAS,SAAS;AAEX,IAAK,YAAL,kBAAKA,eAAL;AACL,EAAAA,WAAA,WAAQ;AACR,EAAAA,WAAA,YAAS;AACT,EAAAA,WAAA,aAAU;AAHA,SAAAA;AAAA,GAAA;AAML,IAAK,UAAL,kBAAKC,aAAL;AACL,EAAAA,kBAAA,YAAS,KAAT;AACA,EAAAA,kBAAA,aAAU,KAAV;AACA,EAAAA,kBAAA,eAAY,KAAZ;AACA,EAAAA,kBAAA,cAAW,KAAX;AACA,EAAAA,kBAAA,YAAS,KAAT;AACA,EAAAA,kBAAA,cAAW,KAAX;AACA,EAAAA,kBAAA,YAAS,KAAT;AAPU,SAAAA;AAAA,GAAA;AAUL,IAAK,eAAL,kBAAKC,kBAAL;AACL,EAAAA,cAAA,cAAW;AACX,EAAAA,cAAA,gBAAa;AACb,EAAAA,cAAA,oBAAiB;AACjB,EAAAA,cAAA,mBAAgB;AAJN,SAAAA;AAAA,GAAA;AAOL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,WAAQ;AAFE,SAAAA;AAAA,GAAA;AAKL,IAAK,SAAL,kBAAKC,YAAL;AACL,EAAAA,QAAA,eAAY;AACZ,EAAAA,QAAA,aAAU;AACV,EAAAA,QAAA,eAAY;AACZ,EAAAA,QAAA,YAAS;AACT,EAAAA,QAAA,YAAS;AACT,EAAAA,QAAA,eAAY;AACZ,EAAAA,QAAA,YAAS;AACT,EAAAA,QAAA,aAAU;AARA,SAAAA;AAAA,GAAA;AAWL,IAAM,yBAAyB,EAAE,OAAO;AAAA,EAC7C,IAAI,EAAE,OAAO;AAAA,EACb,QAAQ,EAAE,OAAO;AAAA,EACjB,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,OAAO,EAAE,OAAO;AAAA,EAChB,MAAM,EAAE,OAAO;AAAA,EACf,QAAQ,EAAE,KAAK,CAAC,UAAU,aAAa,SAAS,CAAC;AAAA,EACjD,aAAa,EAAE,OAAO;AAAA,EACtB,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS;AAAA,EACrE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAAA,EACpD,OAAO,EAAE,OAAO,EAAE,SAAS;AAC7B,CAAC;AAEM,IAAM,2BAA2B,uBAAuB,KAAK;AAAA,EAClE,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AACZ,CAAC;AAEM,IAAM,iBAAiB,EAAE,OAAO;AAAA,EACrC,MAAM,EAAE,WAAW,YAAY;AAAA,EAC/B,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;AAC1B,CAAC;AAEM,IAAM,gBAAgB,EAAE,OAAO;AAAA,EACpC,SAAS,EAAE,OAAO;AAAA,EAClB,YAAY,EAAE,OAAO;AAAA,EACrB,UAAU,EAAE,OAAO;AAAA,EACnB,QAAQ,EAAE,KAAK,CAAC,WAAW,UAAU,QAAQ,MAAM,CAAC;AAAA,EACpD,OAAO,EAAE,OAAO;AAAA,IACd,OAAO,EAAE,OAAO;AAAA,IAChB,SAAS,EAAE,OAAO;AAAA,IAClB,OAAO,EAAE,OAAO;AAAA,EAClB,CAAC;AAAA,EACD,WAAW,EACR;AAAA,IACC,EAAE,OAAO;AAAA,MACP,OAAO,EAAE,OAAO;AAAA,MAChB,OAAO,EAAE,OAAO;AAAA,IAClB,CAAC;AAAA,EACH,EACC,SAAS;AAAA,EACZ,uBAAuB,EAAE,OAAO,EAAE,SAAS;AAC7C,CAAC;AAEM,IAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,WAAW,EAAE,WAAW,SAAS;AAAA,EACjC,UAAU,EAAE,OAAO;AAAA,EACnB,UAAU,EAAE,MAAM,EAAE,WAAW,OAAO,CAAC,EAAE,SAAS;AAAA,EAClD,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,YAAY,EAAE,OAAO,EAAE,SAAS;AAClC,CAAC;AAEM,IAAM,gBAAgB,EAAE,OAAO;AAAA,EACpC,IAAI,EAAE,OAAO;AAAA,EACb,OAAO,EAAE,OAAO;AAAA,EAChB,aAAa,EAAE,OAAO;AAAA,EACtB,eAAe,EAAE,MAAM,EAAE,WAAW,aAAa,CAAC;AAAA,EAClD,cAAc;AAAA,EACd,SAAS,EAAE,MAAM,aAAa,EAAE,SAAS;AAAA,EACzC,QAAQ,EAAE,WAAW,MAAM;AAAA,EAC3B,YAAY,qBAAqB,SAAS;AAAA,EAC1C,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACzC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACxC,eAAe,EAAE,OAAO,EAAE,SAAS;AAAA,EACnC,WAAW,EAAE,OAAO;AAAA,EACpB,UAAU;AAAA,EACV,eAAe,EAAE,OAAO,EAAE,SAAS;AAAA,EACnC,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;;;ACvFM,IAAM,YAAY;AAAA,EACvB,QAAQ,EAAE,KAAK,2BAA2B,QAAQ,OAAO;AAAA,EACzD,MAAM,EAAE,KAAK,gCAAgC,QAAQ,MAAM;AAAA,EAC3D,QAAQ,EAAE,KAAK,+BAA+B,QAAQ,MAAM;AAAA,EAC5D,QAAQ,EAAE,KAAK,+BAA+B,QAAQ,SAAS;AAAA,EAC/D,MAAM,EAAE,KAAK,wBAAwB,QAAQ,OAAO;AAAA,EACpD,mBAAmB,EAAE,KAAK,wBAAwB,QAAQ,MAAM;AAAA,EAChE,YAAY,EAAE,KAAK,4BAA4B,QAAQ,MAAM;AAAA,EAC7D,oBAAoB,EAAE,KAAK,yBAAyB,QAAQ,SAAS;AACvE;;;AC/BA,IAAM,kBAAN,MAAmD;AAAA,EAIjD,YAAY,KAAkB;AAC5B,SAAK,MAAM;AACX,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,mBAAmB,KAAgC;AACvD,UAAM,eAA4B,UAAU;AAC5C,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,WAAW,KAAc,IAA8B;AAC3D,UAAM,eAA4B,UAAU;AAC5C,UAAM,WAAW,aAAa,IAAI,QAAQ,OAAO,EAAE;AACnD,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,iBACJ,KAC0D;AAC1D,UAAM,eAA4B,UAAU;AAC5C,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,cAAc,KAAc,WAAqC;AACrE,UAAM,eAA4B,UAAU;AAC5C,UAAM,WAAW,aAAa,IAAI,QAAQ,OAAO,SAAS;AAC1D,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,cACJ,KACA,WACA,GAC+B;AAC/B,UAAM,eAA4B,UAAU;AAC5C,UAAM,WAAW,aAAa,IAAI,QAAQ,OAAO,SAAS;AAC1D,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,cACJ,KACA,GAC+B;AAC/B,UAAM,eAA4B,UAAU;AAC5C,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,YACJ,KACiD;AACjD,UAAM,eAA4B,UAAU;AAC5C,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,KACJ,KACA,cACkB;AAClB,UAAM,eAA4B,UAAU;AAC5C,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAEA,WAAO,KAAK;AAAA,EACd;AACF;AAEA,IAAO,2BAAQ;;;AC7Hf,IAAM,YAAN,MAAuC;AAAA,EAIrC,YAAY,KAAkB;AAC5B,SAAK,MAAM;AACX,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,UAAU,SAA0C;AACxD,UAAM,eAAe,eAAO,UAAU;AACtC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,WAAW,SAA4C;AAC3D,UAAM,eAAe,eAAO,UAAU;AACtC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,aACJ,GACA,IACA,QACkB;AAClB,UAAM,eAAe,eAAO,UAAU;AACtC,UAAM,WAAW,aAAa,IAAI,QAAQ,OAAO,EAAE;AAEnD,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb,EAAE,GAAG,OAAO;AAAA,MACZ;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UACJ,GACA,QACwB;AACxB,UAAM,eAAe,eAAO,UAAU;AACtC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb,EAAE,GAAG,OAAO;AAAA,MACZ;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,aAAa,GAAY,IAA8B;AAC3D,UAAM,eAAe,eAAO,UAAU;AACtC,UAAM,WAAW,aAAa,IAAI,QAAQ,OAAO,EAAE;AAEnD,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AAEA,IAAO,qBAAQ;;;ACjFf,IAAM,kBAAN,MAAmD;AAAA,EAIjD,YAAY,KAAkB;AAC5B,SAAK,MAAM;AACX,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,aAAa,KAA+B;AAChD,UAAM,eAAe,qBAAa,UAAU;AAC5C,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAEA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,WAAW,KAAc,QAAkC;AAC/D,UAAM,eAAe,qBAAa,UAAU;AAC5C,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb,EAAE,OAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,WACJ,IACA,SAC+B;AAC/B,UAAM,eAAe,qBAAa,UAAU;AAC5C,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG,IAAI,EAAE;AAAA,MACzB,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EACA,MAAM,WAAW,KAA8C;AAC7D,UAAM,eAAe,qBAAa,UAAU;AAC5C,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG;AAAA,MACnB,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,gBACJ,SACA,QACqC;AACrC,UAAM,eAAe,qBAAa,UAAU;AAC5C,QAAI,MAAM,aAAa;AACvB,QAAI,SAAS,aAAa;AAE1B,QAAI,QAAQ;AACV,YAAM,eAAe,qBAAa,UAAU;AAC5C,YAAM,WAAW,aAAa,IAAI,QAAQ,WAAW,MAAM;AAC3D,YAAM;AACN,eAAS,aAAa;AAAA,IACxB;AAEA,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,KAAgC;AAC3C,UAAM,eAAe,qBAAa,UAAU;AAC5C,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAEA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,MAAM,KAAgC;AAC1C,UAAM,eAAe,qBAAa,UAAU;AAC5C,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,KAAgC;AAC3C,UAAM,eAAe,qBAAa,UAAU;AAC5C,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,YAAY,KAAgD;AAChE,UAAM,eAAe,MACjB,qBAAa,UAAU,oBACvB,qBAAa,UAAU;AAE3B,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,eAAe,QAAuB,KAA+B;AACzE,UAAM,eAAe,qBAAa,UAAU;AAE5C,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb,EAAE,OAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO,KAAK;AAAA,EACd;AACF;AAEA,IAAO,2BAAQ;;;AC5Jf,IAAM,YAAN,MAAuC;AAAA,EAIrC,YAAY,KAAkB;AAC5B,SAAK,MAAM;AACX,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,gBACJ,YACA,SAC+B;AAC/B,UAAM,eAAe,eAAO,UAAU;AACtC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG,IAAI,UAAU;AAAA,MACjC,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UACJ,SACA,UAC+B;AAC/B,UAAM,eAAe,eAAO,UAAU;AACtC,QAAI,MAAM,aAAa;AACvB,QAAI,SAAS,aAAa;AAE1B,QAAI,UAAU;AACZ,YAAM,eAAe,eAAO,UAAU;AACtC,YAAM,WAAW,aAAa,IAAI,QAAQ,aAAa,QAAQ;AAC/D,YAAM;AACN,eAAS,aAAa;AAAA,IACxB;AAEA,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,GAAkB,SAAoC;AACjE,UAAM,eAAe,eAAO,UAAU;AACtC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG;AAAA,MACnB,aAAa;AAAA,MACb,EAAE,GAAG,EAAE;AAAA,MACP;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,KAAK,SAA4C;AACrD,UAAM,eAAe,eAAO,UAAU;AACtC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG;AAAA,MACnB,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OACJ,UACA,YACA,SACkB;AAClB,UAAM,eAAe,eAAO,UAAU;AACtC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG;AAAA,MACnB,aAAa;AAAA,MACb,EAAE,UAAU,MAAM,WAAW;AAAA,MAC7B;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEA,IAAO,qBAAQ;;;AClGR,IAAM,mBAAmB,CAC9B,UACW;AACX,QAAM,SAAmC,CAAC;AAE1C,MAAI,MAAM,SAAS;AACjB,WAAO,SAAS,IAAI,CAAC,OAAO,MAAM,OAAO,CAAC;AAAA,EAC5C;AAEA,MAAI,MAAM,WAAW,UAAa,MAAM,WAAW,MAAM;AACvD,WAAO,QAAQ,IAAI,CAAC,OAAO,MAAM,MAAM,CAAC;AAAA,EAC1C;AAEA,MAAI,MAAM,SAAS;AACjB,WAAO,SAAS,IAAI;AAAA,MAClB,GAAG,OAAO,MAAM,QAAQ,KAAK,CAAC,IAAI,MAAM,QAAQ,SAAS;AAAA,IAC3D;AAAA,EACF;AAEA,MAAI,MAAM,UAAU,MAAM,OAAO,SAAS,GAAG;AAC3C,WAAO,QAAQ,IAAI,MAAM,OAAO;AAAA,MAC9B,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,SAAS,CAAC,IAAI,OAAO,EAAE,KAAK,CAAC;AAAA,IACrE;AAAA,EACF;AAEA,QAAM,cAAc,OAAO,QAAQ,MAAM,EACtC;AAAA,IAAQ,CAAC,CAAC,KAAK,MAAM,MACpB,OAAO,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,mBAAmB,KAAK,CAAC,EAAE;AAAA,EAC7D,EACC,KAAK,GAAG;AAEX,SAAO,cAAc,IAAI,WAAW,KAAK;AAC3C;;;AC3BA,IAAM,UAAN,MAAmC;AAAA,EAIjC,YAAY,KAAkB;AAC5B,SAAK,MAAM;AACX,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,OACJ,KACA,OACwC;AACxC,UAAM,eAAe,aAAK,UAAU;AACpC,UAAM,KAAK,iBAAiB,KAAK;AAEjC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG,GAAG,EAAE;AAAA,MACxB,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,cAAc,KAAgC;AAClD,UAAM,eAAe,aAAK,UAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,uBAAuB,KAA+B;AAC1D,UAAM,eAAe,aAAK,UAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG;AAAA,MACnB,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,oBAAoB,KAAsC;AAC9D,UAAM,eAAe,aAAK,UAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG;AAAA,MACnB,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,mBAAmB,OAAiC;AACxD,UAAM,eAAe,aAAK,UAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG,UAAU,KAAK;AAAA,MAClC,aAAa;AAAA,IACf;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,eACJ,OACA,MACA,aACA,MACkB;AAClB,UAAM,eAAe,aAAK,UAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb,EAAE,OAAO,MAAM,aAAa,KAAK;AAAA,IACnC;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,YACJ,KACA,OACA,MACkB;AAClB,UAAM,eAAe,aAAK,UAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb,EAAE,OAAO,KAAK;AAAA,MACd;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,YACJ,OACA,MACA,UACkB;AAClB,UAAM,eAAe,aAAK,UAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG,UAAU,KAAK,SAAS,IAAI,aAAa,QAAQ;AAAA,MACpE,aAAa;AAAA,IACf;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,iBAAiB,OAAiC;AACtD,UAAM,eAAe,aAAK,UAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG,UAAU,KAAK;AAAA,MAClC,aAAa;AAAA,IACf;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,OACJ,SACA,QACkB;AAClB,UAAM,eAAe,aAAK,UAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG;AAAA,MACnB,aAAa;AAAA,MACb,EAAE,GAAG,OAAO;AAAA,MACZ;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,eAAe,SAA0C;AAC7D,UAAM,eAAe,aAAK,UAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG;AAAA,MACnB,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,MAAM,SAAoC;AAC9C,UAAM,eAAe,aAAK,UAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG;AAAA,MACnB,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,aACJ,OACA,UACA,QACiB;AACjB,UAAM,eAAe,aAAK,UAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG;AAAA,MACnB,aAAa;AAAA,MACb,EAAE,QAAQ,OAAO,SAAS;AAAA,IAC5B;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,WACJ,OACA,MACA,UACA,sBACA,YACA,gBACA;AACA,UAAM,eAAe,aAAK,UAAU;AAEpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,YAAY,SAAwC;AACxD,UAAM,eAAe,aAAK,UAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEA,IAAO,mBAAQ;;;ACnOf,IAAM,WAAN,MAAqC;AAAA,EAInC,YAAY,KAAkB;AAC5B,SAAK,MAAM;AACX,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,KAAK,GAAmC;AAC5C,UAAM,eAAe,cAAM,UAAU;AACrC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG;AAAA,MACnB,aAAa;AAAA,MACb;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEA,IAAO,oBAAQ;;;AC1Bf;AAAA;AAAA;AAAA,mBAAAC;AAAA;;;ACAA,SAAS,KAAAC,UAAS;AAEX,IAAM,cAAcA,GAAE,OAAO;AAAA,EAClC,IAAIA,GAAE,OAAO,EAAE,MAAM,EAAE,SAAS;AAAA,EAChC,SAASA,GAAE,OAAO;AAAA,EAClB,MAAMA,GAAE,OAAO;AACjB,CAAC;;;ACCM,IAAMC,aAAY;AAAA,EACvB,WAAW;AAAA,IACT,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AACF;;;ACPA,IAAM,WAAN,MAAqC;AAAA,EAInC,YAAY,KAAkB;AAC5B,SAAK,MAAM;AACX,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,KAAK,OAAqB,KAAiC;AAC/D,UAAM,eAAqBC,WAAU;AACrC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAEA,WAAO,KAAK;AAAA,EACd;AACF;AAEA,IAAO,oBAAQ;;;AC5Bf;AAAA;AAAA;AAAA,mBAAAC;AAAA,EAAA;AAAA;AAAA,gBAAAC;AAAA,EAAA;AAAA;AAAA;;;ACAA,SAAS,KAAAC,UAAS;;;ACAlB;AAAA;AAAA;AAAA;;;ACAA,SAAS,KAAAC,UAAS;AAElB,IAAM,cAAcA,GAAE,OAAO;AAAA,EAC3B,SAASA,GAAE,OAAO;AAAA,EAClB,UAAUA,GAAE,OAAO;AAAA,EACnB,WAAWA,GAAE,OAAO;AAAA,EACpB,UAAUA,GAAE,OAAO;AAAA,EACnB,UAAUA,GAAE,OAAO,EAAE,IAAI;AAAA,EACzB,cAAcA,GAAE,OAAO,EAAE,IAAI;AAAA,EAC7B,MAAMA,GAAE,OAAO;AAAA,EACf,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,UAAUA,GAAE,OAAO;AAAA,EACnB,YAAYA,GAAE,OAAO;AACvB,CAAC;;;AFZM,IAAKC,UAAL,kBAAKA,YAAL;AACL,EAAAA,gBAAA,eAAY,KAAZ;AACA,EAAAA,gBAAA,aAAU,KAAV;AACA,EAAAA,gBAAA,eAAY,KAAZ;AACA,EAAAA,gBAAA,qBAAkB,KAAlB;AACA,EAAAA,gBAAA,YAAS,KAAT;AACA,EAAAA,gBAAA,iBAAc,KAAd;AACA,EAAAA,gBAAA,eAAY,KAAZ;AACA,EAAAA,gBAAA,eAAY,KAAZ;AARU,SAAAA;AAAA,cAAA;AAWL,IAAK,eAAL,kBAAKC,kBAAL;AACL,EAAAA,4BAAA,cAAW,KAAX;AACA,EAAAA,4BAAA,qBAAkB,KAAlB;AACA,EAAAA,4BAAA,eAAY,KAAZ;AACA,EAAAA,4BAAA,sBAAmB,KAAnB;AACA,EAAAA,4BAAA,oBAAiB,KAAjB;AALU,SAAAA;AAAA,GAAA;AAQL,IAAM,eAAeC,GAAE,WAAWF,OAAM;AACxC,IAAM,qBAAqBE,GAAE,WAAW,YAAY;AAEpD,IAAM,SAAkB;AAAA,EAC7B,EAAE,OAAO,kBAAuB,OAAO,WAAW;AAAA,EAClD,EAAE,OAAO,yBAA8B,OAAO,oBAAoB;AAAA,EAClE,EAAE,OAAO,mBAAwB,OAAO,YAAY;AAAA,EACpD,EAAE,OAAO,0BAA+B,OAAO,qBAAqB;AAAA,EACpE,EAAE,OAAO,wBAA6B,OAAO,YAAY;AAC3D;AAOO,IAAM,qBAAqBA,GAAE,OAAO;AAAA,EACzC,QAAQA,GAAE,WAAWF,OAAM;AAAA,EAC3B,OAAOE,GAAE,OAAO;AAAA,EAChB,aAAaA,GAAE,OAAO;AAAA,EACtB,WAAWA,GAAE,OAAO;AAAA,EACpB,UAAUA,GAAE,OAAOA,GAAE,IAAI,CAAC;AAC5B,CAAC;AAEM,IAAM,iBAAiBA,GAAE,OAAO;AAAA,EACrC,UAAUA,GAAE;AAAA,IACVA,GAAE,OAAO;AAAA,MACP,IAAIA,GAAE,OAAO;AAAA,MACb,OAAOA,GAAE,OAAO;AAAA,MAChB,OAAOA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,MAC/B,SAASA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC/B,CAAC;AAAA,EACH;AAAA,EACA,SAASA,GAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAEM,IAAM,gBAAgBA,GAAE,OAAO;AAAA,EACpC,IAAIA,GAAE,OAAO;AAAA,EACb,OAAOA,GAAE,OAAO;AAAA,EAChB,cAAcA,GAAE,OAAO;AAAA,EACvB,aAAaA,GAAE,OAAO;AAAA,EACtB,cAAcA,GAAE,WAAW,YAAY;AAAA,EACvC,cAAcA,GAAE,OAAO,EAAE,SAAS;AAAA,EAClC,cAAcA,GAAE,OAAO,EAAE,SAAS;AAAA,EAClC,UAAUA,GAAE,OAAO;AAAA,EACnB,UAAU,eAAe,SAAS;AAAA,EAClC,mBAAmBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACvC,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,QAAQA,GAAE,OAAO;AAAA,EACjB,QAAQA,GAAE,MAAM,WAAW,EAAE,SAAS;AAAA,EACtC,qBAAqBA,GAAE,OAAO;AAAA,EAC9B,QAAQA,GAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,UAAUA,GAAE,MAAM,kBAAkB;AAAA,EACpC,iBAAiBA,GAAE,OAAO;AAAA,EAC1B,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,QAAQA,GAAE,WAAWF,OAAM;AAC7B,CAAC;;;AGnBM,IAAMG,aAAY;AAAA,EACvB,SAAS,EAAE,KAAK,sBAAsB,QAAQ,OAAO;AAAA,EACrD,MAAM,EAAE,KAAK,kBAAkB,QAAQ,MAAM;AAAA,EAC7C,SAAS,EAAE,KAAK,0BAA0B,QAAQ,MAAM;AAAA,EACxD,eAAe,EAAE,KAAK,oBAAoB,QAAQ,OAAO;AAAA,EACzD,SAAS,EAAE,KAAK,yBAAyB,QAAQ,MAAM;AAAA,EACvD,UAAU,EAAE,KAAK,yBAAyB,QAAQ,MAAM;AAAA,EACxD,QAAQ,EAAE,KAAK,gCAAgC,QAAQ,OAAO;AAAA,EAC9D,QAAQ,EAAE,KAAK,gCAAgC,QAAQ,SAAS;AAAA,EAChE,cAAc,EAAE,KAAK,4BAA4B,QAAQ,MAAM;AAAA,EAC/D,gBAAgB;AAAA,IACd,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,0BAA0B;AAAA,IACxB,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,SAAS,EAAE,KAAK,iCAAiC,QAAQ,OAAO;AAAA,EAChE,YAAY,EAAE,KAAK,oCAAoC,QAAQ,OAAO;AAAA,EACtE,UAAU,EAAE,KAAK,kCAAkC,QAAQ,OAAO;AAAA,EAClE,MAAM,EAAE,KAAK,8BAA8B,QAAQ,OAAO;AAAA,EAC1D,gBAAgB,EAAE,KAAK,mCAAmC,QAAQ,MAAM;AAAA,EACxE,aAAa,EAAE,KAAK,wBAAwB,QAAQ,MAAM;AAC5D;;;AC5EA,IAAM,aAAN,MAAyC;AAAA,EAIvC,YAAY,KAAkB;AAkC9B,uBAAc;AAAA,MACZ,0BAA0B,OAAO,QAAmC;AAClE,cAAM,eAAuBC,WAAU;AACvC,cAAM,OAAO,MAAM,KAAK,WAAW;AAAA,UACjC,KAAK;AAAA,UACL,aAAa;AAAA,UACb,aAAa;AAAA,UACb;AAAA,UACA;AAAA,QACF;AACA,eAAO,KAAK;AAAA,MACd;AAAA,IACF;AA7CE,SAAK,MAAM;AACX,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,YAAY,SAAmC;AACnD,UAAM,eAAuBA,WAAU;AACvC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,QACJ,KACA,WACA,UACkB;AAClB,UAAM,eAAuBA,WAAU;AACvC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb,EAAE,WAAW,SAAS;AAAA,MACtB;AAAA,IACF;AAEA,WAAO,KAAK;AAAA,EACd;AAAA,EAgBA,MAAM,QAAQ,KAAc,QAAgD;AAC1E,UAAM,eAAuBA,WAAU;AACvC,UAAM,WAAW,aAAa,IAAI,QAAQ,WAAW,MAAM;AAC3D,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,eACJ,SACA,QAC2C;AAC3C,UAAM,eAAuBA,WAAU;AACvC,UAAM,WAAW,aAAa,IAAI,QAAQ,WAAW,MAAM;AAC3D,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,KAAK,SAAkB,WAA4C;AACvE,UAAM,eAAuBA,WAAU;AACvC,UAAM,WAAW,aAAa,IAAI,QAAQ,cAAc,SAAS;AACjE,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OACJ,SACA,YACyB;AACzB,UAAM,eAAuBA,WAAU;AACvC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,KAAc,KAAa,UAAoC;AAC1E,UAAM,eAAuBA,WAAU;AACvC,UAAM,WAAW,aAAa,IAAI,QAAQ,cAAc,GAAG;AAC3D,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb,EAAE,SAAS;AAAA,MACX;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,OAAO,KAAc,WAAqC;AAC9D,UAAM,eAAuBA,WAAU;AACvC,UAAM,WAAW,aAAa,IAAI,QAAQ,cAAc,SAAS;AACjE,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,KACJ,SACA,OAC2B;AAC3B,UAAM,eAAuBA,WAAU;AACvC,UAAM,KAAK,iBAAiB,KAAK;AACjC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,GAAG,aAAa,GAAG,GAAG,EAAE;AAAA,MACxB,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,KACJ,KACA,KACA,QACA,YACkB;AAClB,UAAM,eAAuBA,WAAU;AACvC,UAAM,WAAW,aAAa,IAAI,QAAQ,cAAc,GAAG;AAC3D,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb,EAAE,cAAc,QAAQ,YAAY,cAAc,CAAC,EAAE;AAAA,MACrD;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,WAAW,SAAkB,WAAqC;AACtE,UAAM,eAAuBA,WAAU;AACvC,UAAM,WAAW,aAAa,IAAI,QAAQ,cAAc,SAAS;AACjE,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,SAAS,SAAkB,WAAqC;AACpE,UAAM,eAAuBA,WAAU;AACvC,UAAM,WAAW,aAAa,IAAI,QAAQ,cAAc,SAAS;AACjE,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,MAAM,SAAoC;AAC9C,UAAM,eAAuBA,WAAU;AACvC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,QACJ,KACA,KACA,SACkB;AAClB,UAAM,eAAuBA,WAAU;AACvC,UAAM,WAAW,aAAa,IAAI,QAAQ,cAAc,GAAG;AAC3D,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,eACJ,SACA,WACA,UACkB;AAClB,UAAM,eAAuBA,WAAU;AACvC,UAAM,WAAW,aAAa,IAAI,QAAQ,cAAc,SAAS;AACjE,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AACF;AAEA,IAAO,sBAAQ;;;ACzPf;AAAA;AAAA;AAAA,mBAAAC;AAAA,EAAA;AAAA;;;ACAA,SAAS,KAAAC,UAAS;AAEX,IAAM,uBAAuBA,GAAE,OAAO;AAAA,EAC3C,IAAIA,GAAE,OAAO;AAAA,EACb,MAAMA,GAAE,OAAO;AAAA,EACf,QAAQA,GAAE,OAAO;AAAA,EACjB,UAAUA,GAAE,OAAO;AACrB,CAAC;AAEM,IAAM,aAAaA,GAAE,OAAO;AAAA,EACjC,IAAIA,GAAE,OAAO;AAAA,EACb,UAAUA,GAAE,OAAO;AAAA,EACnB,SAASA,GAAE,OAAO;AAAA;AAAA,EAClB,QAAQA,GAAE,OAAO;AAAA,EACjB,UAAUA,GAAE,OAAO;AAAA,EACnB,WAAWA,GAAE,OAAO;AAAA,EACpB,iBAAiBA,GAAE,MAAM,oBAAoB;AAC/C,CAAC;;;ACVM,IAAMC,aAAY;AAAA,EACvB,UAAU,EAAE,KAAK,yBAAyB,QAAQ,MAAM;AAC1D;;;ACJA,IAAM,UAAN,MAAmC;AAAA,EAIjC,YAAY,KAAkB;AAC5B,SAAK,MAAM;AACX,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,SAAS,SAA0C;AACvD,UAAM,eAAoBC,WAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AAEA,IAAO,mBAAQ;;;ACvBR,IAAMC,aAAY;AAAA,EACvB,SAAS;AAAA,IACP,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AACF;;;ACLA,IAAM,eAAN,MAA6C;AAAA,EAI3C,YAAY,KAAkB;AAC5B,SAAK,MAAM;AACX,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,UAA2B;AAC/B,UAAM,eAAyBC,WAAU;AACzC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,IACf;AAEA,WAAO,KAAK;AAAA,EACd;AACF;AAEA,IAAO,wBAAQ;;;ACzBf;AAAA;AAAA,mBAAAC;AAAA,EAAA;AAAA;AAAA;;;ACAA,SAAS,KAAAC,UAAS;AAGlB,IAAM,oBAAoBC,GAAE,OAAO;AAAA,EACjC,MAAMA,GAAE,KAAK;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,YAAYA,GAAE,OAAO,EAAE,MAAM;AAAA,EAC7B,WAAWA,GAAE,OAAO;AAAA,EACpB,SAASA,GAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAED,IAAM,aAAaA,GAAE,OAAO;AAAA,EAC1B,IAAIA,GAAE,OAAO;AAAA,EACb,QAAQA,GAAE,OAAO;AAAA,EACjB,aAAaA,GAAE,OAAO,EAAE,MAAM;AAAA,EAC9B,QAAQA,GAAE,MAAM,WAAW;AAAA,EAC3B,OAAOA,GAAE,OAAO;AAAA,EAChB,SAASA,GAAE,OAAO;AAAA,EAClB,WAAWA,GAAE,OAAO;AAAA,EACpB,UAAUA,GAAE,OAAO;AAAA,EACnB,SAASA,GAAE,MAAM,iBAAiB,EAAE,SAAS;AAC/C,CAAC;;;AChBM,IAAMC,aAAY;AAAA,EACvB,UAAU;AAAA,IACR,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,SAAS;AAAA,IACP,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,YAAY;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,YAAY;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AACF;;;ACtBA,IAAM,UAAN,MAAmC;AAAA,EAIjC,YAAY,KAAkB;AAC5B,SAAK,MAAM;AACX,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,KAAK,GAAY,QAAwC;AAC7D,UAAM,eAAoBC,WAAU;AACpC,UAAM,WAAW,aAAa,IAAI,QAAQ,WAAW,MAAM;AAC3D,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,IAAI,GAAY,MAAkD;AACtE,UAAM,eAAoBA,WAAU;AACpC,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OACJ,GACA,IACA,UACsB;AACtB,UAAM,eAAoBA,WAAU;AACpC,UAAM,WAAW,aAAa,IAAI,QAAQ,OAAO,EAAE;AACnD,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,GAAY,IAA8B;AACrD,UAAM,eAAoBA,WAAU;AACpC,UAAM,WAAW,aAAa,IAAI,QAAQ,OAAO,EAAE;AACnD,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AAEA,IAAO,mBAAQ;;;AC5CR,IAAM,WAAN,MAAe;AAAA,EAapB,YAAY,KAAkB;AAC5B,SAAK,OAAO,IAAI,iBAAQ,GAAG;AAC3B,SAAK,OAAO,IAAI,iBAAQ,GAAG;AAC3B,SAAK,SAAS,IAAI,mBAAU,GAAG;AAC/B,SAAK,eAAe,IAAI,yBAAgB,GAAG;AAC3C,SAAK,mBAAmB,IAAI,yBAAgB,GAAG;AAC/C,SAAK,QAAQ,IAAI,kBAAS,GAAG;AAC7B,SAAK,SAAS,IAAI,mBAAU,GAAG;AAC/B,SAAK,UAAU,IAAI,oBAAW,GAAG;AACjC,SAAK,MAAM,IAAI,sBAAa,GAAG;AAC/B,SAAK,QAAQ,IAAI,kBAAS,GAAG;AAC7B,SAAK,OAAO,IAAI,iBAAQ,GAAG;AAAA,EAC7B;AACF;;;ACpDA;AAAA;AAAA;AAAA;;;ACAA,IAAqB,iBAArB,cAA4C,MAAM;AAAA,EAGhD,YAAY,SAAiB,QAAgB;AAC3C,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,SAAS;AAAA,EAChB;AACF;;;ACNA,IAAqB,oBAArB,cAA+C,eAAe;AAAA,EAC5D,YAAY,SAAiB;AAC3B,UAAM,SAAS,GAAG;AAClB,SAAK,OAAO;AAAA,EACd;AACF;;;ACLA,IAAqB,2BAArB,cAAsD,eAAe;AAAA,EACnE,YAAY,SAAiB;AAC3B,UAAM,SAAS,GAAG;AAClB,SAAK,OAAO;AAAA,EACd;AACF;;;ACLA,IAAqB,4BAArB,cAAuD,eAAe;AAAA,EACpE,YAAY,SAAiB;AAC3B,UAAM,SAAS,GAAG;AAClB,SAAK,OAAO;AAAA,EACd;AACF;;;ACLA,IAAqB,wBAArB,cAAmD,eAAe;AAAA,EAChE,YAAY,SAAiB;AAC3B,UAAM,SAAS,GAAG;AAClB,SAAK,OAAO;AAAA,EACd;AACF;;;ACLA,IAAqB,qBAArB,cAAgD,eAAe;AAAA,EAC7D,YAAY,SAAiB;AAC3B,UAAM,SAAS,GAAG;AAClB,SAAK,OAAO;AAAA,EACd;AACF;;;ANAA,IAAM,aAAa;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAO,qBAAQ;;;AOhBf;AAAA;AAAA;AAAA,mBAAAC;AAAA,EAAA;AAAA;AAAA;;;ACAA,SAAS,KAAAC,UAAS;AAEX,IAAM,eAAeA,GAAE,OAAO;AAAA,EACnC,IAAIA,GAAE,OAAO;AAAA,EACb,OAAOA,GAAE,OAAO;AAAA,EAChB,SAASA,GAAE,OAAO;AAAA,EAClB,MAAMA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACnC,QAAQA,GAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAEM,IAAM,iBAAiBA,GAAE,OAAO;AAAA,EACrC,IAAIA,GAAE,OAAO;AAAA,EACb,OAAOA,GAAE,OAAO;AAAA,EAChB,YAAYA,GAAE,OAAO,EAAE,IAAI;AAAA,EAC3B,iBAAiBA,GAAE,OAAO;AAAA,EAC1B,QAAQA,GAAE,QAAQ;AAAA,EAClB,SAASA,GAAE,MAAM,YAAY;AAC/B,CAAC;AAEM,IAAM,eAAeA,GAAE,OAAO;AAAA,EACnC,IAAIA,GAAE,OAAO;AAAA,EACb,UAAUA,GAAE,OAAO;AAAA,EACnB,YAAYA,GAAE,MAAM,cAAc;AACpC,CAAC;;;ACRM,IAAMC,aAAY;AAAA,EACvB,WAAW;AAAA,IACT,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,WAAW;AAAA,IACT,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,cAAc;AAAA,IACZ,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,YAAY;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,cAAc;AAAA,IACZ,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AACF;;;ACpCA;AAAA;AAAA,mBAAAC;AAAA,EAAA;AAAA;AAAA;;;ACAA,SAAS,KAAAC,UAAS;;;ACAlB,SAAS,KAAAC,UAAS;AAEX,IAAK,OAAL,kBAAKC,UAAL;AACL,EAAAA,YAAA,2BAAwB,KAAxB;AACA,EAAAA,YAAA,yBAAsB,KAAtB;AAFU,SAAAA;AAAA,GAAA;AAKL,IAAM,yBAAyBD,GAAE,WAAW,IAAI;AAEhD,IAAM,aAAaA,GAAE,OAAO;AAAA,EACjC,IAAIA,GAAE,OAAO;AAAA,EACb,UAAUA,GAAE,OAAO;AAAA,EACnB,OAAOA,GAAE,OAAO;AAAA,EAChB,UAAUA,GAAE,OAAO;AAAA,EACnB,UAAUA,GAAE,OAAOA,GAAE,OAAO,CAAC;AAAA,EAC7B,oBAAoBA,GAAE,OAAO;AAC/B,CAAC;AAEM,IAAM,oBAAoBA,GAAE,OAAO;AAAA,EACxC,aAAaA,GAAE,OAAO;AAAA,EACtB,UAAUA,GAAE,OAAO;AACrB,CAAC;AAEM,IAAM,gBAAgBA,GAAE,OAAO;AAAA,EACpC,IAAIA,GAAE,OAAO;AAAA,EACb,MAAMA,GAAE,OAAO;AAAA,EACf,cAAcA,GAAE,MAAM,iBAAiB;AAAA,EACvC,UAAUA,GAAE,IAAI;AAAA,EAChB,OAAOA,GAAE,MAAM,UAAU;AAAA,EACzB,YAAYA,GAAE,OAAO,EAAE,QAAQ,CAAC;AAClC,CAAC;AAEM,IAAM,eAAeA,GAAE,OAAO;AAAA,EACnC,IAAIA,GAAE,OAAO;AAAA,EACb,SAASA,GAAE,OAAO;AAAA,EAClB,MAAMA,GAAE,QAAQ;AAAA,EAChB,YAAYA,GAAE,OAAO;AAAA,EACrB,QAAQA,GAAE,OAAO;AAAA,EACjB,OAAOA,GAAE,OAAO;AAAA,EAChB,aAAaA,GAAE,OAAO;AAAA,EACtB,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,OAAOA,GAAE,OAAO,EAAE,SAAS;AAC7B,CAAC;AAEM,IAAM,qBAAqBA,GAAE,OAAO;AAAA,EACzC,IAAIA,GAAE,OAAO;AAAA,EACb,QAAQA,GAAE,OAAO;AAAA,EACjB,WAAWA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,cAAcA,GAAE,OAAO,EAAE,SAAS;AAAA,EAClC,oBAAoBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACzC,oBAAoBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACxC,kBAAkBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACtC,iBAAiBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACrC,SAAS;AAAA,EACT,MAAMA,GAAE,WAAW,IAAI,EAAE,SAAS;AAAA,EAClC,MAAM,WAAW,SAAS;AAC5B,CAAC;;;ADrDM,IAAM,oBAAoBE,GAAE,OAAO;AAAA,EACxC,SAASA,GAAE,OAAO,EAAE,IAAI;AAAA,EACxB,SAASA,GAAE,OAAO,EAAE,IAAI;AAAA,EACxB,cAAcA,GAAE,OAAO;AAAA,EACvB,gBAAgBA,GAAE,OAAO;AAAA,EACzB,eAAeA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAC3C,CAAC;AAEM,IAAM,eAAeA,GAAE,OAAO;AAAA,EACnC,IAAIA,GAAE,OAAO;AAAA,EACb,MAAMA,GAAE,OAAO;AAAA,EACf,UAAUA,GAAE,QAAQ;AAAA,EACpB,sBAAsBA,GAAE,QAAQ;AAAA,EAChC,aAAa;AAAA,EACb,YAAYA,GAAE,OAAO;AAAA,EACrB,mBAAmBA,GAAE,OAAO;AAAA,EAC5B,kBAAkBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACtC,eAAeA,GAAE,QAAQ;AAAA,EACzB,kBAAkBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACtC,eAAeA,GAAE,OAAO,EAAE,SAAS;AAAA,EACnC,mBAAmBA,GAAE,OAAO,EAAE,SAAS;AAAA,EACvC,iBAAiBA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC9C,eAAeA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACpC,cAAcA,GAAE,SAASA,GAAE,KAAK,MAAM,kBAAkB,CAAC;AAC3D,CAAC;;;AEZM,IAAMC,aAAY;AAAA,EACvB,iBAAiB;AAAA,IACf,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,cAAc;AAAA,IACZ,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,WAAW;AAAA,IACT,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,eAAe;AAAA,IACb,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,cAAc;AAAA,IACZ,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,SAAS;AAAA,IACP,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AACF;;;ACxCA;AAAA;AAAA,mBAAAC;AAAA,EAAA,yBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;;;ACAA,SAAS,KAAAC,WAAS;AAEX,IAAK,OAAL,kBAAKC,UAAL;AACL,EAAAA,MAAA,UAAO;AACP,EAAAA,MAAA,YAAS;AACT,EAAAA,MAAA,QAAK;AACL,EAAAA,MAAA,WAAQ;AACR,EAAAA,MAAA,YAAS;AALC,SAAAA;AAAA,GAAA;AAQL,IAAK,SAAL,kBAAKC,YAAL;AACL,EAAAA,QAAA,SAAM;AACN,EAAAA,QAAA,YAAS;AACT,EAAAA,QAAA,QAAK;AACL,EAAAA,QAAA,WAAQ;AAJE,SAAAA;AAAA,GAAA;AAOL,IAAMC,qBAAoBH,IAAE,OAAO;AAAA,EACxC,cAAcA,IAAE,OAAO,EAAE,SAAS;AAAA,EAClC,gBAAgBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACpC,cAAcA,IAAE,OAAO,EAAE,SAAS;AAAA,EAClC,mBAAmBA,IAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS;AAAA,EACtD,eAAeA,IAAE,OAAO,EAAE,SAAS;AAAA,EACnC,OAAOA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC5B,MAAMA,IAAE,OAAO,EAAE,SAAS;AAC5B,CAAC;AAEM,IAAM,aAAaA,IAAE,OAAO;AAAA,EACjC,IAAIA,IAAE,OAAO;AAAA,EACb,MAAMA,IAAE,OAAO;AAAA,EACf,OAAOA,IAAE,OAAO,EAAE,MAAM;AAAA,EACxB,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,EAChC,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,aAAaG,mBAAkB,SAAS;AAAA,EACxC,UAAUH,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,cAAcA,IAAE,OAAO,EAAE,SAAS;AAAA,EAClC,YAAYA,IAAE,OAAO;AAAA,EACrB,MAAMA,IAAE,WAAW,IAAI;AACzB,CAAC;;;ACIM,IAAMI,aAAY;AAAA,EACvB,aAAa,EAAE,KAAK,8BAA8B,QAAQ,MAAM;AAAA,EAChE,aAAa,EAAE,KAAK,uBAAuB,QAAQ,MAAM;AAAA,EACzD,gBAAgB,EAAE,KAAK,yBAAyB,QAAQ,MAAM;AAAA,EAC9D,YAAY,EAAE,KAAK,sBAAsB,QAAQ,OAAO;AAAA,EACxD,gBAAgB,EAAE,KAAK,oCAAoC,QAAQ,OAAO;AAAA,EAC1E,kBAAkB,EAAE,KAAK,oCAAoC,QAAQ,MAAM;AAAA,EAC3E,qBAAqB,EAAE,KAAK,4BAA4B,QAAQ,MAAM;AAAA,EACtE,aAAa,EAAE,KAAK,+BAA+B,QAAQ,OAAO;AAAA,EAClE,aAAa,EAAE,KAAK,mCAAmC,QAAQ,OAAO;AAAA,EACtE,eAAe,EAAE,KAAK,0BAA0B,QAAQ,SAAS;AAAA,EACjE,oBAAoB,EAAE,KAAK,+BAA+B,QAAQ,OAAO;AAAA,EACzE,cAAc,EAAE,KAAK,0BAA0B,QAAQ,OAAO;AAAA,EAC9D,YAAY,EAAE,KAAK,2BAA2B,QAAQ,OAAO;AAAA,EAC7D,YAAY,EAAE,KAAK,yBAAyB,QAAQ,MAAM;AAAA,EAC1D,OAAO,EAAE,KAAK,yBAAyB,QAAQ,OAAO;AAAA,EACtD,QAAQ,EAAE,KAAK,2BAA2B,QAAQ,MAAM;AAC1D;;;AC9DA;AAAA;AAAA;AAAA,mBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACmBO,IAAMC,cAAY;AAAA,EACvB,WAAW;AAAA,IACT,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,YAAY;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,uBAAuB;AAAA,IACrB,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,YAAY;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,2BAA2B;AAAA,IACzB,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,aAAa;AAAA,IACX,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,mBAAmB;AAAA,IACjB,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,OAAO;AAAA,IACL,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,YAAY;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AACF;;;ACpEA;AAAA;AAAA,mBAAAC;AAAA,EAAA;AAAA;AAAA;;;ACAA,SAAS,KAAAC,WAAS;AAEX,IAAM,mBAAmBA,IAAE,OAAO;AAAA,EACvC,MAAMA,IAAE,OAAO;AAAA,EACf,OAAOA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAEM,IAAM,cAAcA,IAAE,OAAO;AAAA,EAClC,UAAUA,IAAE,OAAO;AAAA,EACnB,OAAOA,IAAE,OAAO;AAAA,EAChB,QAAQA,IAAE,OAAO;AAAA,EACjB,QAAQA,IAAE,MAAM,gBAAgB,EAAE,SAAS;AAC7C,CAAC;;;ACNM,IAAMC,cAAY;AAAA,EACvB,OAAO;AAAA,IACL,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AACF;;;ACXA;;;ACiBA,IAAO,gBAAQ;","names":["Frequency","WeekDay","CriteriaType","TransportType","Status","Endpoints","z","Endpoints","Endpoints","Endpoints","Status","z","z","Status","CaptionStyle","z","Endpoints","Endpoints","Endpoints","z","Endpoints","Endpoints","Endpoints","Endpoints","Endpoints","z","z","Endpoints","Endpoints","Endpoints","z","Endpoints","Endpoints","z","z","Type","z","Endpoints","Endpoints","PreferencesSchema","z","Role","System","PreferencesSchema","Endpoints","Endpoints","Endpoints","Endpoints","z","Endpoints"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shred-api-client",
3
- "version": "2.2.2",
3
+ "version": "2.2.4-rc.0",
4
4
  "description": "API Client for Shred",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",