{"version":3,"sources":["jsdelivr-header.js","/npm/@apiverve/querystringbuilder@1.1.12/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,MAAM,MAAQ,QAAQ,SAEtB,MAAM,0BAEF,WAAA,CAAY,GACR,IAAK,GAA8B,iBAAZ,EACnB,MAAM,IAAI,MAAM,wGAGpB,MAAM,QAAE,EAAO,OAAE,GAAS,GAAS,EAEnC,IAAK,GAA8B,iBAAZ,EACnB,MAAM,IAAI,MAAM,6FAKpB,IADsB,kBACH,KAAK,GACpB,MAAM,IAAI,MAAM,2HAKpB,GADmB,EAAQ,QAAQ,KAAM,IAC1B,OAAS,GACpB,MAAM,IAAI,MAAM,+FAGpB,GAAsB,kBAAX,EACP,MAAM,IAAI,MAAM,6CAGpB,KAAK,OAAS,EACd,KAAK,SAAW,EAGhB,KAAK,QAAU,gDACnB,CAEA,aAAM,CAAQ,EAAO,GAEjB,GAAwB,IAArB,UAAU,OAET,EAAQ,CAAC,EACT,EAAW,UACR,GAAwB,IAArB,UAAU,OACK,mBAAV,GAEP,EAAW,EACX,EAAQ,CAAC,GAGT,EAAW,UAIf,IAAK,GAA0B,iBAAV,EACjB,MAAM,IAAI,MAAM,mDAIxB,IAAI,EAAiB,CAAC,UACtB,GAAI,EAAe,OAAS,EACxB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAe,OAAQ,IACvC,IAAK,EAAM,EAAe,IACtB,MAAM,IAAI,MAAM,uBAAuB,EAAe,uFAKlE,MAAM,EAAS,OACT,EAA0B,KAAK,QAErC,IACI,MAWM,SAXiB,MAAM,CACzB,SACA,MACA,QAAS,CACL,eAAgB,mBAChB,YAAa,KAAK,OAClB,YAAa,eAEjB,KAA0B,KAGR,KAEtB,OADI,GAAU,EAAS,KAAM,GACtB,CACX,CAAE,MAAO,GACL,IAAI,EAUJ,GAPI,EADA,EAAM,UAAY,EAAM,SAAS,KACtB,EAAM,SAAS,KACnB,EAAM,QACF,CAAE,MAAO,EAAM,QAAS,OAAQ,SAEhC,CAAE,MAAO,4BAA6B,OAAQ,SAGzD,EAEA,YADA,EAAS,EAAU,MAIvB,MAAM,CACV,CACJ,CAEA,YAAA,CAAa,GACT,IAAI,EAAM,KAAK,QAEf,GAAG,GAA0B,iBAAV,GAEX,OAAO,KAAK,GAAO,OAAS,EAAG,CAI/B,GAAO,IAHa,OAAO,KAAK,GAC3B,KAAI,GAAO,GAAG,mBAAmB,MAAQ,mBAAmB,EAAM,QAClE,KAAK,MAEd,CAEJ,OAAO,CACX,EAGJ,OAAO,QAAU","file":"/npm/@apiverve/querystringbuilder@1.1.12/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@apiverve/querystringbuilder@1.1.12/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const axios = require('axios');\r\n\r\nclass querystringbuilderWrapper {\r\n\r\n    constructor(options) {\r\n        if (!options || typeof options !== 'object') {\r\n            throw new Error('Options object must be provided. See documentation: https://docs.apiverve.com/ref/querystringbuilder');\r\n        }\r\n\r\n        const { api_key, secure = true } = options;\r\n\r\n        if (!api_key || typeof api_key !== 'string') {\r\n            throw new Error('API key must be provided as a non-empty string. Get your API key at: https://apiverve.com');\r\n        }\r\n\r\n        // Validate API key format (GUID or alphanumeric with hyphens)\r\n        const apiKeyPattern = /^[a-zA-Z0-9-]+$/;\r\n        if (!apiKeyPattern.test(api_key)) {\r\n            throw new Error('Invalid API key format. API key must be alphanumeric and may contain hyphens. Get your API key at: https://apiverve.com');\r\n        }\r\n\r\n        // Check minimum length (GUIDs are typically 36 chars with hyphens, or 32 without)\r\n        const trimmedKey = api_key.replace(/-/g, '');\r\n        if (trimmedKey.length < 32) {\r\n            throw new Error('Invalid API key. API key appears to be too short. Get your API key at: https://apiverve.com');\r\n        }\r\n\r\n        if (typeof secure !== 'boolean') {\r\n            throw new Error('Secure parameter must be a boolean value.');\r\n        }\r\n\r\n        this.APIKey = api_key;\r\n        this.IsSecure = secure;\r\n\r\n        // secure is deprecated, all requests must be made over HTTPS\r\n        this.baseURL = 'https://api.apiverve.com/v1/querystringbuilder';\r\n    }\r\n\r\n    async execute(query, callback) {\r\n        // Handle different argument patterns\r\n        if(arguments.length === 0) {\r\n            // execute() - no args\r\n            query = {};\r\n            callback = null;\r\n        } else if(arguments.length === 1) {\r\n            if (typeof query === 'function') {\r\n                // execute(callback)\r\n                callback = query;\r\n                query = {};\r\n            } else {\r\n                // execute(query)\r\n                callback = null;\r\n            }\r\n        } else {\r\n            // execute(query, callback)\r\n            if (!query || typeof query !== 'object') {\r\n                throw new Error('Query parameters must be provided as an object.');\r\n            }\r\n        }\r\n\r\n        var requiredParams = [\"params\"];\r\n        if (requiredParams.length > 0) {\r\n            for (var i = 0; i < requiredParams.length; i++) {\r\n                if (!query[requiredParams[i]]) {\r\n                    throw new Error(`Required parameter [${requiredParams[i]}] is missing. See documentation: https://docs.apiverve.com/ref/querystringbuilder`);\r\n                }\r\n            }\r\n        }\r\n\r\n        const method = 'POST';\r\n        const url = method === 'POST' ? this.baseURL : this.constructURL(query);\r\n\r\n        try {\r\n            const response = await axios({\r\n                method,\r\n                url,\r\n                headers: {\r\n                    'Content-Type': 'application/json',\r\n                    'x-api-key': this.APIKey,\r\n                    'auth-mode': 'npm-package'\r\n                },\r\n                data: method === 'POST' ? query : undefined\r\n            });\r\n\r\n            const data = response.data;\r\n            if (callback) callback(null, data);\r\n            return data;\r\n        } catch (error) {\r\n            let apiError;\r\n\r\n            if (error.response && error.response.data) {\r\n                apiError = error.response.data;\r\n            } else if (error.message) {\r\n                apiError = { error: error.message, status: 'error' };\r\n            } else {\r\n                apiError = { error: 'An unknown error occurred', status: 'error' };\r\n            }\r\n\r\n            if (callback) {\r\n                callback(apiError, null);\r\n                return; // Don't throw if callback is provided\r\n            }\r\n\r\n            throw apiError;\r\n        }\r\n    }\r\n\r\n    constructURL(query) {\r\n        let url = this.baseURL;\r\n\r\n        if(query && typeof query === 'object') \r\n        {\r\n            if (Object.keys(query).length > 0) {\r\n                const queryString = Object.keys(query)\r\n                    .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(query[key])}`)\r\n                    .join('&');\r\n                url += `?${queryString}`;\r\n            }\r\n        }\r\n        return url;\r\n    }\r\n}\r\n\r\nmodule.exports = querystringbuilderWrapper;\r\n"]}