digital-humani-js-sdk
Version:
[](https://github.com/impe93/digital-humani-js-sdk/actions/workflows/continuous-integrations.yaml) [
{"version":3,"file":"index.cjs","sources":["../src/repositories/EnterpriseRepository/enterprise.repository.ts","../src/repositories/ProjectRepository/project.repository.ts","../src/repositories/TreeRepository/tree.repository.ts","../src/repositories/UserRepository/user.repository.ts","../src/services/HttpClient/HttpClient.ts","../src/index.ts"],"sourcesContent":["import type { IHttpClient } from '../../services/HttpClient/IHttpClient';\nimport type { IEnterpriseRepository } from './enterprise.interface';\nimport type {\n Enterprise,\n GetTreeCountRequest,\n Count,\n} from './enterprise.models';\n\nexport class EnterpriseRepository implements IEnterpriseRepository {\n constructor(private httpClient: IHttpClient) {}\n\n public readonly getEnterprise = (enterpriseId: string) => {\n return this.httpClient.get<Enterprise>(`/enterprise/${enterpriseId}`);\n };\n\n public readonly getTreeCount = ({\n endDate,\n enterpriseId,\n month,\n startDate,\n }: GetTreeCountRequest) => {\n if (month) {\n return this.getTreeCountByMonth(enterpriseId, month);\n } else if (startDate && endDate) {\n return this.getTreeCountByDateRange(enterpriseId, startDate, endDate);\n }\n\n throw new Error(\n 'All parameters are undefined. At least the month param or startDate and endDate params must have a value',\n );\n };\n\n private readonly getTreeCountByMonth = (\n enterpriseId: string,\n month: string,\n ) => {\n return this.httpClient.get<Count>(\n `/enterprise/${enterpriseId}/treeCount/${month}`,\n );\n };\n\n private readonly getTreeCountByDateRange = (\n enterpriseId: string,\n startDate: string,\n endDate: string,\n ) => {\n return this.httpClient.get<Count>(`/enterprise/${enterpriseId}/treeCount`, {\n params: {\n startDate,\n endDate,\n },\n });\n };\n}\n","import type { IHttpClient } from '../../services/HttpClient/IHttpClient';\nimport type { IProjectRepository } from './project.interface';\nimport type { ProjectPartial, Project } from './project.models';\n\nexport class ProjectRepository implements IProjectRepository {\n constructor(private httpClient: IHttpClient) {}\n\n public readonly getProjects = async () => {\n return this.httpClient.get<ProjectPartial[]>('/project');\n };\n\n public readonly getProjectDetails = async (projectId: string) => {\n return this.httpClient.get<Project>(`/project/${projectId}`);\n };\n}\n","import type { IHttpClient } from '../../services/HttpClient/IHttpClient';\nimport type { ITreeRepository } from './tree.interface';\nimport type {\n GetTreesRequest,\n GetTreesResponse,\n GetTreeRequest,\n Tree,\n PlanteTreesRequest,\n} from './tree.models';\n\nexport class TreeRepository implements ITreeRepository {\n constructor(private httpClient: IHttpClient) {}\n\n public readonly getTrees = async ({\n enterpriseId,\n user,\n }: GetTreesRequest) => {\n return this.httpClient.get<GetTreesResponse>('/tree', {\n params: {\n enterpriseId,\n user,\n },\n });\n };\n\n public readonly getTree = ({ treeId }: GetTreeRequest) => {\n return this.httpClient.get<Tree>(`/tree/${treeId}`);\n };\n\n public readonly plantTrees = (body: PlanteTreesRequest) => {\n return this.httpClient.post<Tree>('/tree', { body });\n };\n}\n","import type { IHttpClient } from '../../services/HttpClient/IHttpClient';\nimport type { IUserRepository } from './user.interface';\nimport type { User } from './user.models';\n\nexport class UserRepository implements IUserRepository {\n constructor(private httpClient: IHttpClient) {}\n\n public readonly getWhoAmI = async () => {\n return this.httpClient.get<User>('/user/whoami');\n };\n}\n","import axios, { AxiosInstance } from 'axios';\nimport type {\n DeleteRequestConfig,\n GetRequestConfig,\n IHttpClient,\n PatchRequestConfig,\n PostRequestConfig,\n PutRequestConfig,\n} from './IHttpClient';\n\n/**\n * `HttpClientInitParams` is an object with an optional property `axiosInstance` of type\n * `AxiosInstance`.\n * @property {AxiosInstance} axiosInstance - An instance of Axios that will be used to make the HTTP\n * requests.\n */\nexport type HttpClientInitParams = {\n axiosInstance?: AxiosInstance;\n};\n\n/* It's a wrapper around the axios library that adds the Digital Humani API key to the header of every\nrequest */\nexport class DuHttpClient implements IHttpClient {\n private readonly axiosInstance: AxiosInstance;\n\n /**\n * It creates a new instance of the HttpClient class.\n * @param {HttpClientInitParams} - `axiosInstance`: An instance of axios. If you don't provide one,\n * the SDK will create one for you.\n */\n constructor(params?: HttpClientInitParams) {\n const env = process.env['DIGITALHUMANI_ENV'];\n const apiKey = process.env['DIGITALHUMANI_API_KEY'];\n\n if (env !== 'prod' && env !== 'sandbox') {\n throw new Error(\n \"Impossible to initialize digital humani sdk because envirnoment has not been provided or the provided value is different from 'sandbox' and 'prod'.\",\n );\n }\n\n if (!apiKey) {\n throw new Error(\n 'Impossible to initialize digital humani sdk because the API key has not been found.',\n );\n }\n\n let baseUrl;\n\n if (env === 'sandbox') {\n baseUrl = 'https://api.sandbox.digitalhumani.com';\n } else {\n baseUrl = 'https://api.digitalhumani.com';\n }\n\n this.axiosInstance = params?.axiosInstance ?? axios.create({});\n this.axiosInstance.defaults.baseURL = baseUrl;\n this.axiosInstance.defaults.timeout = 30000;\n this.axiosInstance.defaults.headers.common = {\n 'Content-Type': 'application/json',\n 'X-Api-Key': apiKey,\n };\n }\n\n public get = async <T>(\n url: string,\n configs: GetRequestConfig = {},\n ): Promise<T> => {\n const { ...options } = configs;\n const res = await this.axiosInstance.get<T>(url, {\n ...options,\n headers: { ...configs?.headers },\n });\n return res.data;\n };\n\n public post = async <T, P>(\n url: string,\n configs: PostRequestConfig<P> = {},\n ): Promise<T> => {\n const res = await this.axiosInstance.post<T>(url, configs?.body, {\n headers: { ...configs?.headers },\n });\n\n return res.data;\n };\n\n public put = async <T, P>(\n url: string,\n configs: PutRequestConfig<P> = {},\n ): Promise<T> => {\n const res = await this.axiosInstance.put<T>(url, configs?.body, {\n headers: { ...configs?.headers },\n });\n\n return res.data;\n };\n\n public patch = async <T, P>(\n url: string,\n configs: PatchRequestConfig<P> = {},\n ): Promise<T> => {\n const res = await this.axiosInstance.patch<T>(url, configs?.body, {\n headers: { ...configs?.headers },\n });\n\n return res.data;\n };\n\n public delete = async <T>(\n url: string,\n configs: DeleteRequestConfig = {},\n ): Promise<T> => {\n const { ...options } = configs;\n const res = await this.axiosInstance.delete<T>(url, {\n ...options,\n headers: { ...configs?.headers },\n });\n\n return res.data;\n };\n}\n","import type { IEnterpriseRepository } from './repositories/EnterpriseRepository/enterprise.interface';\nimport { EnterpriseRepository } from './repositories/EnterpriseRepository/enterprise.repository';\nimport type { IProjectRepository } from './repositories/ProjectRepository/project.interface';\nimport { ProjectRepository } from './repositories/ProjectRepository/project.repository';\nimport type { ITreeRepository } from './repositories/TreeRepository/tree.interface';\nimport { TreeRepository } from './repositories/TreeRepository/tree.repository';\nimport type { IUserRepository } from './repositories/UserRepository/user.interface';\nimport { UserRepository } from './repositories/UserRepository/user.repository';\nimport { DuHttpClient } from './services/HttpClient/HttpClient';\nimport type { IHttpClient } from './services/HttpClient/IHttpClient';\n\n/* It's a singleton that provides access to the repositories */\nclass DigitalHumani {\n private static _instance: DigitalHumani;\n\n /**\n * The instance of the class to use to calls the SDK methods\n */\n public static get instance(): DigitalHumani {\n if (!this._instance) this._instance = new DigitalHumani();\n return this._instance;\n }\n\n /**\n * Renamed `instance` for faster user\n */\n public static get i(): DigitalHumani {\n return this.instance;\n }\n\n /* It's a public property that is readonly and it's type is IProjectRepository. */\n public readonly userRepo: IUserRepository;\n\n /* It's a public property that is readonly and it's type is IProjectRepository. */\n public readonly treeRepo: ITreeRepository;\n\n /* It's a public property that is readonly and it's type is IProjectRepository. */\n public readonly enterpriseRepo: IEnterpriseRepository;\n\n /* It's a public property that is readonly and it's type is IProjectRepository. */\n public readonly projectRepo: IProjectRepository;\n\n /**\n * The function is a private constructor that creates a new instance of the DuHttpClient class and\n * then creates new instances of the UserRepository, TreeRepository, ProjectRepository, and\n * EnterpriseRepository classes\n */\n private constructor() {\n const httpClient: IHttpClient = new DuHttpClient();\n\n this.userRepo = new UserRepository(httpClient);\n this.treeRepo = new TreeRepository(httpClient);\n this.projectRepo = new ProjectRepository(httpClient);\n this.enterpriseRepo = new EnterpriseRepository(httpClient);\n }\n}\n\nexport default DigitalHumani;\n"],"names":["axios"],"mappings":";;;;;;;;;;;;;;;;AAQA,IAAA,oBAAA,kBAAA,YAAA;AACE,IAAA,SAAA,oBAAA,CAAoB,UAAuB,EAAA;QAA3C,IAA+C,KAAA,GAAA,IAAA,CAAA;QAA3B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAa;QAE3B,IAAa,CAAA,aAAA,GAAG,UAAC,YAAoB,EAAA;YACnD,OAAO,KAAI,CAAC,UAAU,CAAC,GAAG,CAAa,cAAe,CAAA,MAAA,CAAA,YAAY,CAAE,CAAC,CAAC;AACxE,SAAC,CAAC;QAEc,IAAY,CAAA,YAAA,GAAG,UAAC,EAKV,EAAA;gBAJpB,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,SAAS,GAAA,EAAA,CAAA,SAAA,CAAA;AAET,YAAA,IAAI,KAAK,EAAE;gBACT,OAAO,KAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACtD,aAAA;iBAAM,IAAI,SAAS,IAAI,OAAO,EAAE;gBAC/B,OAAO,KAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACvE,aAAA;AAED,YAAA,MAAM,IAAI,KAAK,CACb,0GAA0G,CAC3G,CAAC;AACJ,SAAC,CAAC;AAEe,QAAA,IAAA,CAAA,mBAAmB,GAAG,UACrC,YAAoB,EACpB,KAAa,EAAA;AAEb,YAAA,OAAO,KAAI,CAAC,UAAU,CAAC,GAAG,CACxB,cAAe,CAAA,MAAA,CAAA,YAAY,EAAc,aAAA,CAAA,CAAA,MAAA,CAAA,KAAK,CAAE,CACjD,CAAC;AACJ,SAAC,CAAC;AAEe,QAAA,IAAA,CAAA,uBAAuB,GAAG,UACzC,YAAoB,EACpB,SAAiB,EACjB,OAAe,EAAA;YAEf,OAAO,KAAI,CAAC,UAAU,CAAC,GAAG,CAAQ,cAAA,CAAA,MAAA,CAAe,YAAY,EAAA,YAAA,CAAY,EAAE;AACzE,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAA,SAAA;AACT,oBAAA,OAAO,EAAA,OAAA;AACR,iBAAA;AACF,aAAA,CAAC,CAAC;AACL,SAAC,CAAC;KA3C6C;IA4CjD,OAAC,oBAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjDD,IAAA,iBAAA,kBAAA,YAAA;AACE,IAAA,SAAA,iBAAA,CAAoB,UAAuB,EAAA;QAA3C,IAA+C,KAAA,GAAA,IAAA,CAAA;QAA3B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAa;AAE3B,QAAA,IAAA,CAAA,WAAW,GAAG,YAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;gBAC5B,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAmB,UAAU,CAAC,CAAC,CAAA;;aAC1D,CAAC;QAEc,IAAiB,CAAA,iBAAA,GAAG,UAAO,SAAiB,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;gBAC1D,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAU,WAAY,CAAA,MAAA,CAAA,SAAS,CAAE,CAAC,CAAC,CAAA;;aAC9D,CAAC;KAR6C;IASjD,OAAC,iBAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;ACJD,IAAA,cAAA,kBAAA,YAAA;AACE,IAAA,SAAA,cAAA,CAAoB,UAAuB,EAAA;QAA3C,IAA+C,KAAA,GAAA,IAAA,CAAA;QAA3B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAa;QAE3B,IAAQ,CAAA,QAAA,GAAG,UAAO,EAGhB,EAAA;gBAFhB,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;;;AAEJ,oBAAA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAmB,OAAO,EAAE;AACpD,4BAAA,MAAM,EAAE;AACN,gCAAA,YAAY,EAAA,YAAA;AACZ,gCAAA,IAAI,EAAA,IAAA;AACL,6BAAA;AACF,yBAAA,CAAC,CAAC,CAAA;;;SACJ,CAAC;QAEc,IAAO,CAAA,OAAA,GAAG,UAAC,EAA0B,EAAA;AAAxB,YAAA,IAAA,MAAM,GAAA,EAAA,CAAA,MAAA,CAAA;YACjC,OAAO,KAAI,CAAC,UAAU,CAAC,GAAG,CAAO,QAAS,CAAA,MAAA,CAAA,MAAM,CAAE,CAAC,CAAC;AACtD,SAAC,CAAC;QAEc,IAAU,CAAA,UAAA,GAAG,UAAC,IAAwB,EAAA;AACpD,YAAA,OAAO,KAAI,CAAC,UAAU,CAAC,IAAI,CAAO,OAAO,EAAE,EAAE,IAAI,EAAA,IAAA,EAAE,CAAC,CAAC;AACvD,SAAC,CAAC;KApB6C;IAqBjD,OAAC,cAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;AC5BD,IAAA,cAAA,kBAAA,YAAA;AACE,IAAA,SAAA,cAAA,CAAoB,UAAuB,EAAA;QAA3C,IAA+C,KAAA,GAAA,IAAA,CAAA;QAA3B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAa;AAE3B,QAAA,IAAA,CAAA,SAAS,GAAG,YAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;gBAC1B,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAO,cAAc,CAAC,CAAC,CAAA;;aAClD,CAAC;KAJ6C;IAKjD,OAAC,cAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;ACUD;AACU;AACV,IAAA,YAAA,kBAAA,YAAA;AAGE;;;;AAIG;AACH,IAAA,SAAA,YAAA,CAAY,MAA6B,EAAA;QAAzC,IA+BC,KAAA,GAAA,IAAA,CAAA;;AAEM,QAAA,IAAA,CAAA,GAAG,GAAG,UACX,GAAW,EACX,OAA8B,EAAA;AAA9B,YAAA,IAAA,OAAA,KAAA,KAAA,CAAA,EAAA,EAAA,OAA8B,GAAA,EAAA,CAAA,EAAA;;;;;;AAEnB,4BAAA,OAAO,GAAK,MAAA,CAAA,OAAO,EAAxB,EAAc,CAAF,CAAa;4BACnB,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAI,GAAG,wBAC1C,OAAO,CAAA,EAAA,EACV,OAAO,EAAO,QAAA,CAAA,EAAA,EAAA,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,KAC9B,CAAA,CAAA;;AAHI,4BAAA,GAAG,GAAG,EAGV,CAAA,IAAA,EAAA,CAAA;4BACF,OAAO,CAAA,CAAA,aAAA,GAAG,CAAC,IAAI,CAAC,CAAA;;;;SACjB,CAAC;AAEK,QAAA,IAAA,CAAA,IAAI,GAAG,UACZ,GAAW,EACX,OAAkC,EAAA;AAAlC,YAAA,IAAA,OAAA,KAAA,KAAA,CAAA,EAAA,EAAA,OAAkC,GAAA,EAAA,CAAA,EAAA;;;;;AAEtB,wBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAI,GAAG,EAAE,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,IAAI,EAAE;gCAC/D,OAAO,EAAA,QAAA,CAAA,EAAA,EAAO,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAE;AACjC,6BAAA,CAAC,CAAA,CAAA;;AAFI,4BAAA,GAAG,GAAG,EAEV,CAAA,IAAA,EAAA,CAAA;4BAEF,OAAO,CAAA,CAAA,aAAA,GAAG,CAAC,IAAI,CAAC,CAAA;;;;SACjB,CAAC;AAEK,QAAA,IAAA,CAAA,GAAG,GAAG,UACX,GAAW,EACX,OAAiC,EAAA;AAAjC,YAAA,IAAA,OAAA,KAAA,KAAA,CAAA,EAAA,EAAA,OAAiC,GAAA,EAAA,CAAA,EAAA;;;;;AAErB,wBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAI,GAAG,EAAE,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,IAAI,EAAE;gCAC9D,OAAO,EAAA,QAAA,CAAA,EAAA,EAAO,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAE;AACjC,6BAAA,CAAC,CAAA,CAAA;;AAFI,4BAAA,GAAG,GAAG,EAEV,CAAA,IAAA,EAAA,CAAA;4BAEF,OAAO,CAAA,CAAA,aAAA,GAAG,CAAC,IAAI,CAAC,CAAA;;;;SACjB,CAAC;AAEK,QAAA,IAAA,CAAA,KAAK,GAAG,UACb,GAAW,EACX,OAAmC,EAAA;AAAnC,YAAA,IAAA,OAAA,KAAA,KAAA,CAAA,EAAA,EAAA,OAAmC,GAAA,EAAA,CAAA,EAAA;;;;;AAEvB,wBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAI,GAAG,EAAE,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,IAAI,EAAE;gCAChE,OAAO,EAAA,QAAA,CAAA,EAAA,EAAO,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAE;AACjC,6BAAA,CAAC,CAAA,CAAA;;AAFI,4BAAA,GAAG,GAAG,EAEV,CAAA,IAAA,EAAA,CAAA;4BAEF,OAAO,CAAA,CAAA,aAAA,GAAG,CAAC,IAAI,CAAC,CAAA;;;;SACjB,CAAC;AAEK,QAAA,IAAA,CAAA,MAAM,GAAG,UACd,GAAW,EACX,OAAiC,EAAA;AAAjC,YAAA,IAAA,OAAA,KAAA,KAAA,CAAA,EAAA,EAAA,OAAiC,GAAA,EAAA,CAAA,EAAA;;;;;;AAEtB,4BAAA,OAAO,GAAK,MAAA,CAAA,OAAO,EAAxB,EAAc,CAAF,CAAa;4BACnB,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAI,GAAG,wBAC7C,OAAO,CAAA,EAAA,EACV,OAAO,EAAO,QAAA,CAAA,EAAA,EAAA,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,KAC9B,CAAA,CAAA;;AAHI,4BAAA,GAAG,GAAG,EAGV,CAAA,IAAA,EAAA,CAAA;4BAEF,OAAO,CAAA,CAAA,aAAA,GAAG,CAAC,IAAI,CAAC,CAAA;;;;SACjB,CAAC;QAxFA,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC7C,IAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAEpD,QAAA,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,SAAS,EAAE;AACvC,YAAA,MAAM,IAAI,KAAK,CACb,qJAAqJ,CACtJ,CAAC;AACH,SAAA;QAED,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;AACH,SAAA;AAED,QAAA,IAAI,OAAO,CAAC;QAEZ,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,OAAO,GAAG,uCAAuC,CAAC;AACnD,SAAA;AAAM,aAAA;YACL,OAAO,GAAG,+BAA+B,CAAC;AAC3C,SAAA;AAED,QAAA,IAAI,CAAC,aAAa,GAAG,MAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,aAAa,mCAAIA,yBAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG;AAC3C,YAAA,cAAc,EAAE,kBAAkB;AAClC,YAAA,WAAW,EAAE,MAAM;SACpB,CAAC;KACH;IA2DH,OAAC,YAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;AC7GD;AACA,IAAA,aAAA,kBAAA,YAAA;AA8BE;;;;AAIG;AACH,IAAA,SAAA,aAAA,GAAA;AACE,QAAA,IAAM,UAAU,GAAgB,IAAI,YAAY,EAAE,CAAC;QAEnD,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,GAAG,IAAI,oBAAoB,CAAC,UAAU,CAAC,CAAC;KAC5D;AApCD,IAAA,MAAA,CAAA,cAAA,CAAkB,aAAQ,EAAA,UAAA,EAAA;AAH1B;;AAEG;AACH,QAAA,GAAA,EAAA,YAAA;YACE,IAAI,CAAC,IAAI,CAAC,SAAS;AAAE,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;;;AAAA,KAAA,CAAA,CAAA;AAKD,IAAA,MAAA,CAAA,cAAA,CAAkB,aAAC,EAAA,GAAA,EAAA;AAHnB;;AAEG;AACH,QAAA,GAAA,EAAA,YAAA;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;;;AAAA,KAAA,CAAA,CAAA;IA2BH,OAAC,aAAA,CAAA;AAAD,CAAC,EAAA;;;;"}