{"version":3,"sources":["../src/client.ts"],"names":[],"mappings":"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","file":"client.mjs","sourcesContent":["import { fetch, FormData, File } from 'node-fetch-native-with-agent';\nimport { createAgent } from 'node-fetch-native-with-agent/agent';\nimport { Models } from './models';\nimport JSONbigModule from 'json-bigint';\nconst JSONbigParser = JSONbigModule({ storeAsString: false });\nconst JSONbigSerializer = JSONbigModule({ useNativeBigInt: true });\n\nconst MAX_SAFE = BigInt(Number.MAX_SAFE_INTEGER);\nconst MIN_SAFE = BigInt(Number.MIN_SAFE_INTEGER);\nconst MAX_INT64 = BigInt('9223372036854775807');\nconst MIN_INT64 = BigInt('-9223372036854775808');\n\nfunction isBigNumber(value: any): boolean {\n    return value !== null\n        && typeof value === 'object'\n        && value._isBigNumber === true\n        && typeof value.isInteger === 'function'\n        && typeof value.toFixed === 'function'\n        && typeof value.toNumber === 'function';\n}\n\nfunction reviver(_key: string, value: any): any {\n    if (isBigNumber(value)) {\n        if (value.isInteger()) {\n            const str = value.toFixed();\n            const bi = BigInt(str);\n            if (bi >= MIN_SAFE && bi <= MAX_SAFE) {\n                return Number(str);\n            }\n            if (bi >= MIN_INT64 && bi <= MAX_INT64) {\n                return bi;\n            }\n            return value.toNumber();\n        }\n        return value.toNumber();\n    }\n    return value;\n}\n\nconst JSONbig = {\n    parse: (text: string) => JSONbigParser.parse(text, reviver),\n    stringify: JSONbigSerializer.stringify\n};\n\ntype Payload = {\n    [key: string]: any;\n}\n\ntype UploadProgress = {\n    $id: string;\n    progress: number;\n    sizeUploaded: number;\n    chunksTotal: number;\n    chunksUploaded: number;\n}\n\ntype Headers = {\n    [key: string]: string;\n}\n\nclass AppwriteException extends Error {\n    code: number;\n    response: string;\n    type: string;\n    constructor(message: string, code: number = 0, type: string = '', response: string = '') {\n        super(message);\n        this.name = 'AppwriteException';\n        this.message = message;\n        this.code = code;\n        this.type = type;\n        this.response = response;\n    }\n}\n\nfunction getUserAgent() {\n    let ua = 'AppwriteNodeJSSDK/24.0.0';\n\n    // `process` is a global in Node.js, but not fully available in all runtimes.\n    const platform: string[] = [];\n    if (typeof process !== 'undefined') {\n        if (typeof process.platform === 'string') platform.push(process.platform);\n        if (typeof process.arch === 'string') platform.push(process.arch);\n    } \n    if (platform.length > 0) {\n        ua += ` (${platform.join('; ')})`;\n    }\n\n    // `navigator.userAgent` is available in Node.js 21 and later.\n    // It's also part of the WinterCG spec, so many edge runtimes provide it.\n    // https://common-min-api.proposal.wintercg.org/#requirements-for-navigatoruseragent\n    // @ts-ignore\n    if (typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string') {\n        // @ts-ignore\n        ua += ` ${navigator.userAgent}`;\n\n    // @ts-ignore\n    } else if (typeof globalThis.EdgeRuntime === 'string') {\n        ua += ` EdgeRuntime`;\n\n    // Older Node.js versions don't have `navigator.userAgent`, so we have to use `process.version`.\n    } else if (typeof process !== 'undefined' && typeof process.version === 'string') {\n        ua += ` Node.js/${process.version}`;\n    }\n\n    return ua;\n}\n\nclass Client {\n    static CHUNK_SIZE = 1024 * 1024 * 5;\n\n    config = {\n        endpoint: 'https://cloud.appwrite.io/v1',\n        selfSigned: false,\n        project: '',\n        key: '',\n        jwt: '',\n        locale: '',\n        session: '',\n        forwardeduseragent: '',\n        impersonateuserid: '',\n        impersonateuseremail: '',\n        impersonateuserphone: '',\n    };\n    headers: Headers = {\n        'x-sdk-name': 'Node.js',\n        'x-sdk-platform': 'server',\n        'x-sdk-language': 'nodejs',\n        'x-sdk-version': '24.0.0',\n        'user-agent' : getUserAgent(),\n        'X-Appwrite-Response-Format': '1.9.1',\n    };\n\n    /**\n     * Set Endpoint\n     *\n     * Your project endpoint\n     *\n     * @param {string} endpoint\n     *\n     * @returns {this}\n     */\n    setEndpoint(endpoint: string): this {\n        if (!endpoint || typeof endpoint !== 'string') {\n            throw new AppwriteException('Endpoint must be a valid string');\n        }\n\n        if (!endpoint.startsWith('http://') && !endpoint.startsWith('https://')) {\n            throw new AppwriteException('Invalid endpoint URL: ' + endpoint);\n        }\n\n        this.config.endpoint = endpoint;\n        return this;\n    }\n\n    /**\n     * Set self-signed\n     *\n     * @param {boolean} selfSigned\n     *\n     * @returns {this}\n     */\n    setSelfSigned(selfSigned: boolean): this {\n        // @ts-ignore\n        if (typeof globalThis.EdgeRuntime !== 'undefined') {\n            console.warn('setSelfSigned is not supported in edge runtimes.');\n        }\n\n        this.config.selfSigned = selfSigned;\n\n        return this;\n    }\n\n    /**\n     * Add header\n     *\n     * @param {string} header\n     * @param {string} value\n     *\n     * @returns {this}\n     */\n    addHeader(header: string, value: string): this {\n        this.headers[header.toLowerCase()] = value;\n\n        return this;\n    }\n\n    /**\n     * Get Headers\n     *\n     * Returns a copy of the current request headers, including any\n     * authentication headers. Handle with care.\n     *\n     * @returns {Headers}\n     */\n    getHeaders(): Headers {\n        return { ...this.headers };\n    }\n\n    /**\n     * Set Project\n     *\n     * Your project ID\n     *\n     * @param value string\n     *\n     * @return {this}\n     */\n    setProject(value: string): this {\n        this.headers['X-Appwrite-Project'] = value;\n        this.config.project = value;\n        return this;\n    }\n    /**\n     * Set Key\n     *\n     * Your secret API key\n     *\n     * @param value string\n     *\n     * @return {this}\n     */\n    setKey(value: string): this {\n        this.headers['X-Appwrite-Key'] = value;\n        this.config.key = value;\n        return this;\n    }\n    /**\n     * Set JWT\n     *\n     * Your secret JSON Web Token\n     *\n     * @param value string\n     *\n     * @return {this}\n     */\n    setJWT(value: string): this {\n        this.headers['X-Appwrite-JWT'] = value;\n        this.config.jwt = value;\n        return this;\n    }\n    /**\n     * Set Locale\n     *\n     * @param value string\n     *\n     * @return {this}\n     */\n    setLocale(value: string): this {\n        this.headers['X-Appwrite-Locale'] = value;\n        this.config.locale = value;\n        return this;\n    }\n    /**\n     * Set Session\n     *\n     * The user session to authenticate with\n     *\n     * @param value string\n     *\n     * @return {this}\n     */\n    setSession(value: string): this {\n        this.headers['X-Appwrite-Session'] = value;\n        this.config.session = value;\n        return this;\n    }\n    /**\n     * Set ForwardedUserAgent\n     *\n     * The user agent string of the client that made the request\n     *\n     * @param value string\n     *\n     * @return {this}\n     */\n    setForwardedUserAgent(value: string): this {\n        this.headers['X-Forwarded-User-Agent'] = value;\n        this.config.forwardeduseragent = value;\n        return this;\n    }\n    /**\n     * Set ImpersonateUserId\n     *\n     * Impersonate a user by ID on an already user-authenticated request. Requires the current request to be authenticated as a user with impersonator capability; X-Appwrite-Key alone is not sufficient. Impersonator users are intentionally granted users.read so they can discover a target before impersonation begins. Internal audit logs still attribute actions to the original impersonator and record the impersonated target only in internal audit payload data.\n     *\n     * @param value string\n     *\n     * @return {this}\n     */\n    setImpersonateUserId(value: string): this {\n        this.headers['X-Appwrite-Impersonate-User-Id'] = value;\n        this.config.impersonateuserid = value;\n        return this;\n    }\n    /**\n     * Set ImpersonateUserEmail\n     *\n     * Impersonate a user by email on an already user-authenticated request. Requires the current request to be authenticated as a user with impersonator capability; X-Appwrite-Key alone is not sufficient. Impersonator users are intentionally granted users.read so they can discover a target before impersonation begins. Internal audit logs still attribute actions to the original impersonator and record the impersonated target only in internal audit payload data.\n     *\n     * @param value string\n     *\n     * @return {this}\n     */\n    setImpersonateUserEmail(value: string): this {\n        this.headers['X-Appwrite-Impersonate-User-Email'] = value;\n        this.config.impersonateuseremail = value;\n        return this;\n    }\n    /**\n     * Set ImpersonateUserPhone\n     *\n     * Impersonate a user by phone on an already user-authenticated request. Requires the current request to be authenticated as a user with impersonator capability; X-Appwrite-Key alone is not sufficient. Impersonator users are intentionally granted users.read so they can discover a target before impersonation begins. Internal audit logs still attribute actions to the original impersonator and record the impersonated target only in internal audit payload data.\n     *\n     * @param value string\n     *\n     * @return {this}\n     */\n    setImpersonateUserPhone(value: string): this {\n        this.headers['X-Appwrite-Impersonate-User-Phone'] = value;\n        this.config.impersonateuserphone = value;\n        return this;\n    }\n\n    prepareRequest(method: string, url: URL, headers: Headers = {}, params: Payload = {}): { uri: string, options: RequestInit } {\n        method = method.toUpperCase();\n\n        headers = Object.assign({}, this.headers, headers);\n\n        let options: RequestInit = {\n            method,\n            headers,\n            ...createAgent(this.config.endpoint, { rejectUnauthorized: !this.config.selfSigned }),\n        };\n\n        if (method === 'GET') {\n            for (const [key, value] of Object.entries(Client.flatten(params))) {\n                url.searchParams.append(key, value);\n            }\n        } else {\n            switch (headers['content-type']) {\n                case 'application/json':\n                    options.body = JSONbig.stringify(params);\n                    break;\n\n                case 'multipart/form-data':\n                    const formData = new FormData();\n\n                    for (const [key, value] of Object.entries(params)) {\n                        if (value instanceof File) {\n                            formData.append(key, value, value.name);\n                        } else if (Array.isArray(value)) {\n                            for (const nestedValue of value) {\n                                formData.append(`${key}[]`, nestedValue);\n                            }\n                        } else {\n                            formData.append(key, value);\n                        }\n                    }\n\n                    options.body = formData;\n                    delete headers['content-type'];\n                    break;\n            }\n        }\n\n        return { uri: url.toString(), options };\n    }\n\n    async chunkedUpload(method: string, url: URL, headers: Headers = {}, originalPayload: Payload = {}, onProgress: (progress: UploadProgress) => void) {\n        const [fileParam, file] = Object.entries(originalPayload).find(([_, value]) => value instanceof File) ?? [];\n\n        if (!file || !fileParam) {\n            throw new Error('File not found in payload');\n        }\n\n        if (file.size <= Client.CHUNK_SIZE) {\n            return await this.call(method, url, headers, originalPayload);\n        }\n\n        let start = 0;\n        let response = null;\n\n        while (start < file.size) {\n            let end = start + Client.CHUNK_SIZE; // Prepare end for the next chunk\n            if (end >= file.size) {\n                end = file.size; // Adjust for the last chunk to include the last byte\n            }\n\n            headers['content-range'] = `bytes ${start}-${end-1}/${file.size}`;\n            const chunk = file.slice(start, end);\n\n            let payload = { ...originalPayload };\n            payload[fileParam] = new File([chunk], file.name);\n\n            response = await this.call(method, url, headers, payload);\n\n            if (onProgress && typeof onProgress === 'function') {\n                onProgress({\n                    $id: response.$id,\n                    progress: Math.round((end / file.size) * 100),\n                    sizeUploaded: end,\n                    chunksTotal: Math.ceil(file.size / Client.CHUNK_SIZE),\n                    chunksUploaded: Math.ceil(end / Client.CHUNK_SIZE)\n                });\n            }\n\n            if (response && response.$id) {\n                headers['x-appwrite-id'] = response.$id;\n            }\n\n            start = end;\n        }\n\n        return response;\n    }\n\n    async ping(): Promise<string> {\n        return this.call('GET', new URL(this.config.endpoint + '/ping'));\n    }\n\n    async redirect(method: string, url: URL, headers: Headers = {}, params: Payload = {}): Promise<string> {\n        const { uri, options } = this.prepareRequest(method, url, headers, params);\n        \n        const response = await fetch(uri, {\n            ...options,\n            redirect: 'manual'\n        });\n\n        if (response.status !== 301 && response.status !== 302) {\n            throw new AppwriteException('Invalid redirect', response.status);\n        }\n\n        return response.headers.get('location') || '';\n    }\n\n    async call(method: string, url: URL, headers: Headers = {}, params: Payload = {}, responseType = 'json'): Promise<any> {\n        const { uri, options } = this.prepareRequest(method, url, headers, params);\n\n        let data: any = null;\n\n        const response = await fetch(uri, options);\n\n        const warnings = response.headers.get('x-appwrite-warning');\n        if (warnings) {\n            warnings.split(';').forEach((warning: string) => console.warn('Warning: ' + warning));\n        }\n\n        if (response.headers.get('content-type')?.includes('application/json')) {\n            data = JSONbig.parse(await response.text());\n        } else if (responseType === 'arrayBuffer') {\n            data = await response.arrayBuffer();\n        } else {\n            data = {\n                message: await response.text()\n            };\n        }\n\n        if (400 <= response.status) {\n            let responseText = '';\n            if (response.headers.get('content-type')?.includes('application/json') || responseType === 'arrayBuffer') {\n                responseText = JSONbig.stringify(data);\n            } else {\n                responseText = data?.message;\n            }\n            throw new AppwriteException(data?.message, response.status, data?.type, responseText);\n        }\n\n        if (data && typeof data === 'object') {\n            data.toString = () => JSONbig.stringify(data);\n        }\n\n        return data;\n    }\n\n    static flatten(data: Payload, prefix = ''): Payload {\n        let output: Payload = {};\n\n        for (const [key, value] of Object.entries(data)) {\n            let finalKey = prefix ? prefix + '[' + key +']' : key;\n            if (Array.isArray(value)) {\n                output = { ...output, ...Client.flatten(value, finalKey) };\n            } else {\n                output[finalKey] = value;\n            }\n        }\n\n        return output;\n    }\n}\n\nexport { Client, AppwriteException };\nexport { Query } from './query';\nexport type { Models, Payload, UploadProgress };\nexport type { QueryTypes, QueryTypesList } from './query';\n"]}