shred-api-client 2.3.5-rc.0 → 2.3.5-rc.2

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.
@@ -1 +0,0 @@
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/model/project/StatusConfig.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 axios, { AxiosError, Method } from \"axios\";\nimport Environment from \"../model/Env\";\nimport Context from \"./../model/Context\";\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: Method,\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 try {\n const response = await axios.request({\n url,\n method,\n headers,\n data:\n method !== \"GET\" && data\n ? useLegacyApi\n ? new URLSearchParams(data).toString()\n : data // axios já faz JSON.stringify\n : undefined,\n transformResponse: [(raw) => raw], // evita parse automático para podermos tratar manual\n });\n\n try {\n return JSON.parse(response.data);\n } catch {\n return response.data;\n }\n } catch (err) {\n const error = err as AxiosError;\n\n let parsedBody: any = {};\n if (error.response) {\n try {\n parsedBody =\n typeof error.response.data === \"string\"\n ? JSON.parse(error.response.data)\n : error.response.data;\n } catch {\n parsedBody = {\n message:\n (error.response.data as any)?.message ||\n error.response.statusText ||\n \"Unknown error\",\n };\n }\n\n throw {\n message: parsedBody.message || \"Unexpected error occurred\",\n status: error.response.status,\n body: error.response.data,\n original: error,\n };\n }\n\n throw {\n message: error.message || \"Network error\",\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 cta: 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(create: User.Create) {\n const endpointData = User.Endpoints.CreateUser;\n\n const data = await this.clientHTTP.makeRequest(\n this.env,\n endpointData.uri,\n endpointData.method,\n create,\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\nexport type { StatusConfigType } from \"./StatusConfig\";\n\nexport { StatusConfig } from \"./StatusConfig\";\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 { Status } from \"../project\";\n\nexport type StatusConfigType = {\n id: Status;\n label: string;\n\n colors: {\n text: string;\n bg: string;\n border: string;\n dot: string;\n };\n\n thumbnail: {\n primary: string;\n secondary: string;\n };\n\n icons: {\n mobile: { primary: string; secondary: string };\n web: { name: string; iconColor: string; bgColor: string };\n };\n\n progress: {\n primary: string;\n secondary: string;\n border: string;\n };\n};\n\nexport const StatusConfig: Record<Status, StatusConfigType> = {\n [Status.SUBMITTED]: {\n id: Status.SUBMITTED,\n label: \"Submitted\",\n colors: {\n text: \"#0369A1\",\n bg: \"#BAE6FD\",\n border: \"#7DD3FC\",\n dot: \"#0369A1\",\n },\n thumbnail: {\n primary: \"#7DD3FC\",\n secondary: \"#E0F2FE\",\n },\n icons: {\n mobile: { primary: \"#0EA5E9\", secondary: \"#7DD3FC\" },\n web: {\n name: \"Share\",\n iconColor: \"#0369A1\",\n bgColor: \"#7DD3FC\",\n },\n },\n progress: {\n primary: \"#7DD3FC\",\n secondary: \"#F0F9FF\",\n border: \"#E0F2FE\",\n },\n },\n [Status.EDITING]: {\n id: Status.EDITING,\n label: \"In Progress\",\n colors: {\n text: \"#7C3AED\",\n bg: \"#F5F3FF\",\n border: \"#DDD6FE\",\n dot: \"#7C3AED\",\n },\n thumbnail: {\n primary: \"#C4B5FD\",\n secondary: \"#F5F3FF\",\n },\n icons: {\n mobile: { primary: \"#A67EE7\", secondary: \"#C4A9EF\" },\n web: {\n name: \"Hourglass\",\n iconColor: \"#7C3AED\",\n bgColor: \"#DDD6FE\",\n },\n },\n progress: {\n primary: \"#C4B5FD\",\n secondary: \"#F5F3FF\",\n border: \"#EDE9FE\",\n },\n },\n [Status.WAITING_APPROVE]: {\n id: Status.WAITING_APPROVE,\n label: \"Waiting Approval\",\n colors: {\n text: \"#C2410C\",\n bg: \"#FFEDD5\",\n border: \"#FED7AA\",\n dot: \"#EA580C\",\n },\n thumbnail: {\n primary: \"#C4B5FD\",\n secondary: \"#F5F3FF\",\n },\n icons: {\n mobile: { primary: \"#A67EE7\", secondary: \"#C4A9EF\" },\n web: {\n name: \"Clock\",\n iconColor: \"#C2410C\",\n bgColor: \"#FED7AA\",\n },\n },\n progress: {\n primary: \"#FDBA74\",\n secondary: \"#FFF7ED\",\n border: \"#FFEDD5\",\n },\n },\n [Status.DENIED]: {\n id: Status.DENIED,\n label: \"Denied\",\n colors: {\n text: \"#EF4444\",\n bg: \"#FEE2E2\",\n border: \"#FECACA\",\n dot: \"#EF4444\",\n },\n thumbnail: {\n primary: \"#C4B5FD\",\n secondary: \"#F5F3FF\",\n },\n icons: {\n mobile: { primary: \"#A67EE7\", secondary: \"#C4A9EF\" },\n web: {\n name: \"CircleX\",\n iconColor: \"#EF4444\",\n bgColor: \"#FECACA\",\n },\n },\n progress: {\n primary: \"#FCA5A5\",\n secondary: \"#FEF2F2\",\n border: \"#FEE2E2\",\n },\n },\n [Status.SCHEDULED]: {\n id: Status.SCHEDULED,\n label: \"Scheduled\",\n colors: {\n text: \"#3F6212\",\n bg: \"#ECFCCB\",\n border: \"#D9F99D\",\n dot: \"#4D7C0F\",\n },\n thumbnail: {\n primary: \"#C4B5FD\",\n secondary: \"#F5F3FF\",\n },\n icons: {\n mobile: { primary: \"#A67EE7\", secondary: \"#C4A9EF\" },\n web: {\n name: \"CalendarRange\",\n iconColor: \"#3F6212\",\n bgColor: \"#D9F99D\",\n },\n },\n progress: {\n primary: \"#BEF264\",\n secondary: \"#F7FEE7\",\n border: \"#ECFCCB\",\n },\n },\n [Status.COMPLETED]: {\n id: Status.COMPLETED,\n label: \"Completed\",\n colors: {\n text: \"#16A34A\",\n bg: \"#F0FDF4\",\n border: \"#DCFCE7\",\n dot: \"#16A34A\",\n },\n thumbnail: {\n primary: \"#86EFAC\",\n secondary: \"#F0FDF4\",\n },\n icons: {\n mobile: { primary: \"#22C55E\", secondary: \"#BBF7D0\" },\n web: {\n name: \"CircleCheck\",\n iconColor: \"#16A34A\",\n bgColor: \"#DCFCE7\",\n },\n },\n progress: {\n primary: \"#4ADE80\",\n secondary: \"#DCFCE7\",\n border: \"#BBF7D0\",\n },\n },\n [Status.REVISIONING]: {\n id: Status.REVISIONING,\n label: \"Revisioning\",\n colors: {\n text: \"#854D0E\",\n bg: \"#FEF9C3\",\n border: \"#FEF08A\",\n dot: \"#A16207\",\n },\n thumbnail: {\n primary: \"#FDE047\",\n secondary: \"#FEFCE8\",\n },\n icons: {\n mobile: { primary: \"#EAB308\", secondary: \"#FACC15\" },\n web: {\n name: \"FilePen\",\n iconColor: \"#713F12\",\n bgColor: \"#FEF08A\",\n },\n },\n progress: {\n primary: \"#FACC15\",\n secondary: \"#FEF08A\",\n border: \"#FEF9C3\",\n },\n },\n [Status.CANCELLED]: {\n id: Status.CANCELLED,\n label: \"Canceled\",\n colors: {\n text: \"#A3A3A3\",\n bg: \"#F5F5F5\",\n border: \"#E5E5E5\",\n dot: \"#A3A3A3\",\n },\n thumbnail: {\n primary: \"#D4D4D4\",\n secondary: \"#FAFAFA\",\n },\n icons: {\n mobile: { primary: \"#6B7280\", secondary: \"#D1D5DB\" },\n web: {\n name: \"Ban\",\n iconColor: \"#A3A3A3\",\n bgColor: \"#F5F5F5\",\n },\n },\n progress: {\n primary: \"#A3A3A3\",\n secondary: \"#FAFAFA\",\n border: \"#E5E5E5\",\n },\n },\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 {\n User as Entity,\n Preferences,\n Update,\n Create,\n} 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 industries: z.array(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\nexport type Create = Pick<User, \"name\" | \"email\"> & {\n password?: string;\n passwordConfirmation?: string;\n invitationCode?: string;\n role?: Role;\n industries?: string[];\n};\n","import * as Core from \"../core\";\nimport Context from \"../Context\";\nimport { System, User, Update, Create } 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: (data: Create) => 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"]}