{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import * as Types from './types';\n\nexport * from './types';\n\nexport class TemtemDex {\n    private readonly baseUrl: string;\n\n    constructor() {\n        this.baseUrl = 'https://temtem-api.mael.tech/api';\n    }\n\n    private async fetchAndParse(endpoint: string, queryParams?: URLSearchParams) {\n        const url = `${this.baseUrl}/${endpoint}${queryParams?.toString() ? '?' + queryParams.toString() : ''}`;\n        const response = await fetch(url);\n        if (!response.ok) {\n            throw new Error(`HTTP error! status: ${response.status}`);\n        }\n        return await response.json();\n    }\n\n    async getTemtems(params?: Types.TemtemQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.names) queryParams.append('names', params.names);\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.expand) queryParams.append('expand', params.expand);\n        if (params?.weaknesses) queryParams.append('weaknesses', params.weaknesses.toString());\n        return this.fetchAndParse('temtems', queryParams);\n    }\n\n    async getTemtemById(id: number, params?: Types.TemtemByIdQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.expand) queryParams.append('expand', params.expand);\n        if (params?.weaknesses) queryParams.append('weaknesses', params.weaknesses.toString());\n        return this.fetchAndParse(`temtems/${id}`, queryParams);\n    }\n\n    async getFreetemByTemtemNameAndLevel(name: string, level: number) {\n        return this.fetchAndParse(`freetem/${name}/${level}`);\n    }\n\n    async getFreetemsRewards() {\n        return this.fetchAndParse('freetem/rewards');\n    }\n\n    async getTypes(params?: Types.TypesQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.limit) queryParams.append('limit', params.limit.toString());\n        return this.fetchAndParse('types', queryParams);\n    }\n\n    async getConditions(params?: Types.ConditionsQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.limit) queryParams.append('limit', params.limit.toString());\n        return this.fetchAndParse('conditions', queryParams);\n    }\n\n    async getTechniques(params?: Types.TechniquesQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.names) queryParams.append('names', params.names);\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.limit) queryParams.append('limit', params.limit.toString());\n        return this.fetchAndParse('techniques', queryParams);\n    }\n\n    async getTrainingCourses(params?: Types.TrainingCoursesQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.limit) queryParams.append('limit', params.limit.toString());\n        return this.fetchAndParse('training-courses', queryParams);\n    }\n\n    async getTraits(params?: Types.TraitsQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.names) queryParams.append('names', params.names);\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.limit) queryParams.append('limit', params.limit.toString());\n        return this.fetchAndParse('traits', queryParams);\n    }\n\n    async getItems(params?: Types.ItemsQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.limit) queryParams.append('limit', params.limit.toString());\n        return this.fetchAndParse('items', queryParams);\n    }\n\n    async getGear(params?: Types.GearQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.limit) queryParams.append('limit', params.limit.toString());\n        return this.fetchAndParse('gear', queryParams);\n    }\n\n    async getQuests(params?: Types.BasicQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.limit) queryParams.append('limit', params.limit.toString());\n        return this.fetchAndParse('quests', queryParams);\n    }\n\n    async getDojos() {\n        return this.fetchAndParse('dojos');\n    }\n\n    async getCharacters(params?: Types.BasicQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.limit) queryParams.append('limit', params.limit.toString());\n        return this.fetchAndParse('characters', queryParams);\n    }\n\n    async getSaipark(params?: Types.BasicQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.limit) queryParams.append('limit', params.limit.toString());\n        return this.fetchAndParse('saipark', queryParams);\n    }\n\n    async getLocations(params?: Types.BasicQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.limit) queryParams.append('limit', params.limit.toString());\n        return this.fetchAndParse('locations', queryParams);\n    }\n\n    async getCosmetics(params?: Types.BasicQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.limit) queryParams.append('limit', params.limit.toString());\n        return this.fetchAndParse('cosmetics', queryParams);\n    }\n\n    async getDyes(params?: Types.BasicQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.limit) queryParams.append('limit', params.limit.toString());\n        return this.fetchAndParse('dyes', queryParams);\n    }\n\n    async getPatches(params?: Types.BasicQueryParams) {\n        const queryParams = new URLSearchParams();\n        if (params?.fields) queryParams.append('fields', params.fields);\n        if (params?.limit) queryParams.append('limit', params.limit.toString());\n        return this.fetchAndParse('patches', queryParams);\n    }\n\n    async getWeaknesses() {\n        return this.fetchAndParse('weaknesses');\n    }\n\n    async calculateWeaknesses(params: Types.WeaknessCalculateParams) {\n        const queryParams = new URLSearchParams();\n        queryParams.append('attacking', params.attacking);\n        queryParams.append('defending', params.defending);\n        return this.fetchAndParse('weaknesses/calculate', queryParams);\n    }\n\n    async getBreeding() {\n        return this.fetchAndParse('breeding');\n    }\n}\n\nexport const TemtemApi = TemtemDex;"],"mappings":"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","names":[]}