shred-api-client 2.0.14 → 2.1.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.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 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} from \"./Project.schema\";\n\nexport {\n ProjectSchema,\n Status,\n CaptionStyle,\n Styles,\n TimelineItemSchema,\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 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 captionSuggestion: z.string().optional(),\n editorId: z.string(),\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};\n\nexport type Project = z.infer<typeof ProjectSchema>;\nexport type TimelineItem = z.infer<typeof TimelineItemSchema>;\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, projectId: string) => 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 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/:projectId/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};\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 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, projectId: string): Promise<boolean> {\n const endpointData = Project.Endpoints.StartEdition;\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 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 {\n Goal as Entity,\n DailyMilestone,\n WeeklyMilestone,\n} from \"./Goal.schema\";\n\nexport {\n GoalSchema,\n DailyMilestoneSchema,\n WeeklyMilestoneSchema,\n} 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 WeeklyMilestoneSchema = z.object({\n id: z.string(),\n week: z.string(),\n target: z.number(),\n progress: z.number(),\n dailyMilestones: z.array(DailyMilestoneSchema),\n});\n\nexport const GoalSchema = z.object({\n id: z.string(),\n editorId: z.string(),\n month: z.string(), // ex: \"2024-04\"\n target: z.number(),\n progress: z.number(),\n createdAt: z.number(),\n weeklyMilestones: z.array(WeeklyMilestoneSchema),\n});\n\nexport type DailyMilestone = z.infer<typeof DailyMilestoneSchema>;\nexport type WeeklyMilestone = z.infer<typeof WeeklyMilestoneSchema>;\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 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 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 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} from \"./Project.schema\";\n\nexport {\n ProjectSchema,\n Status,\n CaptionStyle,\n Styles,\n TimelineItemSchema,\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 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 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};\n\nexport type Project = z.infer<typeof ProjectSchema>;\nexport type TimelineItem = z.infer<typeof TimelineItemSchema>;\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/:projectId/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 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 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
@@ -904,7 +904,7 @@ var ProjectSchema = z4.object({
904
904
  thumbnailUrl: z4.string().optional(),
905
905
  modified: z4.number(),
906
906
  captionSuggestion: z4.string().optional(),
907
- editorId: z4.string(),
907
+ editorId: z4.string().optional(),
908
908
  userId: z4.string(),
909
909
  assets: z4.array(AssetSchema).optional(),
910
910
  expirationTimestamp: z4.number(),
@@ -938,7 +938,8 @@ var Endpoints3 = {
938
938
  Unschedule: { uri: "/projects/:projectId/unschedule/", method: "POST" },
939
939
  Rollback: { uri: "/projects/:projectId/rollback/", method: "POST" },
940
940
  Deny: { uri: "/projects/:projectId/deny/", method: "POST" },
941
- GetUserHistory: { uri: "/projects/user/:userId/history/", method: "GET" }
941
+ GetUserHistory: { uri: "/projects/user/:userId/history/", method: "GET" },
942
+ GetPoolSize: { uri: "/projects/pool/size/", method: "GET" }
942
943
  };
943
944
 
944
945
  // src/api/Project.api.ts
@@ -960,6 +961,17 @@ var ProjectAPI = class {
960
961
  this.env = env;
961
962
  this.clientHTTP = new HTTPClient();
962
963
  }
964
+ async getPoolSize(context) {
965
+ const endpointData = Endpoints3.GetPoolSize;
966
+ const data = await this.clientHTTP.makeRequest(
967
+ this.env,
968
+ endpointData.uri,
969
+ endpointData.method,
970
+ null,
971
+ context
972
+ );
973
+ return data.size;
974
+ }
963
975
  async reorder(ctx, projectId, position) {
964
976
  const endpointData = Endpoints3.Reorder;
965
977
  const data = await this.clientHTTP.makeRequest(
@@ -1090,12 +1102,11 @@ var ProjectAPI = class {
1090
1102
  );
1091
1103
  return data.success;
1092
1104
  }
1093
- async start(context, projectId) {
1105
+ async start(context) {
1094
1106
  const endpointData = Endpoints3.StartEdition;
1095
- const endpoint = endpointData.uri.replace(":projectId", projectId);
1096
1107
  const data = await this.clientHTTP.makeRequest(
1097
1108
  this.env,
1098
- endpoint,
1109
+ endpointData.uri,
1099
1110
  endpointData.method,
1100
1111
  null,
1101
1112
  context
@@ -1134,8 +1145,7 @@ var goal_exports = {};
1134
1145
  __export(goal_exports, {
1135
1146
  DailyMilestoneSchema: () => DailyMilestoneSchema,
1136
1147
  Endpoints: () => Endpoints4,
1137
- GoalSchema: () => GoalSchema,
1138
- WeeklyMilestoneSchema: () => WeeklyMilestoneSchema
1148
+ GoalSchema: () => GoalSchema
1139
1149
  });
1140
1150
 
1141
1151
  // src/model/goal/Goal.schema.ts
@@ -1146,22 +1156,15 @@ var DailyMilestoneSchema = z5.object({
1146
1156
  target: z5.number(),
1147
1157
  progress: z5.number()
1148
1158
  });
1149
- var WeeklyMilestoneSchema = z5.object({
1150
- id: z5.string(),
1151
- week: z5.string(),
1152
- target: z5.number(),
1153
- progress: z5.number(),
1154
- dailyMilestones: z5.array(DailyMilestoneSchema)
1155
- });
1156
1159
  var GoalSchema = z5.object({
1157
1160
  id: z5.string(),
1158
1161
  editorId: z5.string(),
1159
- month: z5.string(),
1160
- // ex: "2024-04"
1162
+ isoWeek: z5.string(),
1163
+ // ex: "2026-W27"
1161
1164
  target: z5.number(),
1162
1165
  progress: z5.number(),
1163
1166
  createdAt: z5.number(),
1164
- weeklyMilestones: z5.array(WeeklyMilestoneSchema)
1167
+ dailyMilestones: z5.array(DailyMilestoneSchema)
1165
1168
  });
1166
1169
 
1167
1170
  // src/model/goal/Goal.api.ts