node-appwrite 19.0.0 → 19.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/client.js CHANGED
@@ -15,7 +15,7 @@ class AppwriteException extends Error {
15
15
  }
16
16
  }
17
17
  function getUserAgent() {
18
- let ua = "AppwriteNodeJSSDK/19.0.0";
18
+ let ua = "AppwriteNodeJSSDK/19.1.0";
19
19
  const platform = [];
20
20
  if (typeof process !== "undefined") {
21
21
  if (typeof process.platform === "string")
@@ -51,7 +51,7 @@ const _Client = class _Client {
51
51
  "x-sdk-name": "Node.js",
52
52
  "x-sdk-platform": "server",
53
53
  "x-sdk-language": "nodejs",
54
- "x-sdk-version": "19.0.0",
54
+ "x-sdk-version": "19.1.0",
55
55
  "user-agent": getUserAgent(),
56
56
  "X-Appwrite-Response-Format": "1.8.0"
57
57
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { fetch, FormData, File } from 'node-fetch-native-with-agent';\nimport { createAgent } from 'node-fetch-native-with-agent/agent';\nimport { Models } from './models';\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/19.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 };\n headers: Headers = {\n 'x-sdk-name': 'Node.js',\n 'x-sdk-platform': 'server',\n 'x-sdk-language': 'nodejs',\n 'x-sdk-version': '19.0.0',\n 'user-agent' : getUserAgent(),\n 'X-Appwrite-Response-Format': '1.8.0',\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.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 * 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 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 = JSON.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 = await response.json();\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 = JSON.stringify(data);\n } else {\n responseText = data?.message;\n }\n throw new AppwriteException(data?.message, response.status, data?.type, responseText);\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"]}
1
+ {"version":3,"sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { fetch, FormData, File } from 'node-fetch-native-with-agent';\nimport { createAgent } from 'node-fetch-native-with-agent/agent';\nimport { Models } from './models';\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/19.1.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 };\n headers: Headers = {\n 'x-sdk-name': 'Node.js',\n 'x-sdk-platform': 'server',\n 'x-sdk-language': 'nodejs',\n 'x-sdk-version': '19.1.0',\n 'user-agent' : getUserAgent(),\n 'X-Appwrite-Response-Format': '1.8.0',\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.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 * 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 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 = JSON.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 = await response.json();\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 = JSON.stringify(data);\n } else {\n responseText = data?.message;\n }\n throw new AppwriteException(data?.message, response.status, data?.type, responseText);\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"]}
package/dist/client.mjs CHANGED
@@ -14,7 +14,7 @@ var AppwriteException = class extends Error {
14
14
  }
15
15
  };
16
16
  function getUserAgent() {
17
- let ua = "AppwriteNodeJSSDK/19.0.0";
17
+ let ua = "AppwriteNodeJSSDK/19.1.0";
18
18
  const platform = [];
19
19
  if (typeof process !== "undefined") {
20
20
  if (typeof process.platform === "string")
@@ -50,7 +50,7 @@ var _Client = class _Client {
50
50
  "x-sdk-name": "Node.js",
51
51
  "x-sdk-platform": "server",
52
52
  "x-sdk-language": "nodejs",
53
- "x-sdk-version": "19.0.0",
53
+ "x-sdk-version": "19.1.0",
54
54
  "user-agent": getUserAgent(),
55
55
  "X-Appwrite-Response-Format": "1.8.0"
56
56
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { fetch, FormData, File } from 'node-fetch-native-with-agent';\nimport { createAgent } from 'node-fetch-native-with-agent/agent';\nimport { Models } from './models';\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/19.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 };\n headers: Headers = {\n 'x-sdk-name': 'Node.js',\n 'x-sdk-platform': 'server',\n 'x-sdk-language': 'nodejs',\n 'x-sdk-version': '19.0.0',\n 'user-agent' : getUserAgent(),\n 'X-Appwrite-Response-Format': '1.8.0',\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.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 * 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 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 = JSON.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 = await response.json();\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 = JSON.stringify(data);\n } else {\n responseText = data?.message;\n }\n throw new AppwriteException(data?.message, response.status, data?.type, responseText);\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"]}
1
+ {"version":3,"sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { fetch, FormData, File } from 'node-fetch-native-with-agent';\nimport { createAgent } from 'node-fetch-native-with-agent/agent';\nimport { Models } from './models';\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/19.1.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 };\n headers: Headers = {\n 'x-sdk-name': 'Node.js',\n 'x-sdk-platform': 'server',\n 'x-sdk-language': 'nodejs',\n 'x-sdk-version': '19.1.0',\n 'user-agent' : getUserAgent(),\n 'X-Appwrite-Response-Format': '1.8.0',\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.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 * 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 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 = JSON.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 = await response.json();\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 = JSON.stringify(data);\n } else {\n responseText = data?.message;\n }\n throw new AppwriteException(data?.message, response.status, data?.type, responseText);\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"]}
package/dist/models.d.mts CHANGED
@@ -3130,10 +3130,6 @@ declare namespace Models {
3130
3130
  * The url of the vcs provider repository
3131
3131
  */
3132
3132
  providerRepositoryUrl: string;
3133
- /**
3134
- * The branch of the vcs repository
3135
- */
3136
- providerBranch: string;
3137
3133
  /**
3138
3134
  * The commit hash of the vcs commit
3139
3135
  */
@@ -3154,6 +3150,10 @@ declare namespace Models {
3154
3150
  * The url of the vcs commit
3155
3151
  */
3156
3152
  providerCommitUrl: string;
3153
+ /**
3154
+ * The branch of the vcs repository
3155
+ */
3156
+ providerBranch: string;
3157
3157
  /**
3158
3158
  * The branch of the vcs repository
3159
3159
  */
@@ -3204,7 +3204,7 @@ declare namespace Models {
3204
3204
  */
3205
3205
  requestPath: string;
3206
3206
  /**
3207
- * HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.
3207
+ * HTTP request headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.
3208
3208
  */
3209
3209
  requestHeaders: Headers[];
3210
3210
  /**
@@ -3375,7 +3375,7 @@ declare namespace Models {
3375
3375
  */
3376
3376
  version: string;
3377
3377
  /**
3378
- * Antivirus status. Possible values can are: `disabled`, `offline`, `online`
3378
+ * Antivirus status. Possible values are: `disabled`, `offline`, `online`
3379
3379
  */
3380
3380
  status: string;
3381
3381
  };
@@ -3401,7 +3401,7 @@ declare namespace Models {
3401
3401
  */
3402
3402
  ping: number;
3403
3403
  /**
3404
- * Service status. Possible values can are: `pass`, `fail`
3404
+ * Service status. Possible values are: `pass`, `fail`
3405
3405
  */
3406
3406
  status: string;
3407
3407
  };
package/dist/models.d.ts CHANGED
@@ -3130,10 +3130,6 @@ declare namespace Models {
3130
3130
  * The url of the vcs provider repository
3131
3131
  */
3132
3132
  providerRepositoryUrl: string;
3133
- /**
3134
- * The branch of the vcs repository
3135
- */
3136
- providerBranch: string;
3137
3133
  /**
3138
3134
  * The commit hash of the vcs commit
3139
3135
  */
@@ -3154,6 +3150,10 @@ declare namespace Models {
3154
3150
  * The url of the vcs commit
3155
3151
  */
3156
3152
  providerCommitUrl: string;
3153
+ /**
3154
+ * The branch of the vcs repository
3155
+ */
3156
+ providerBranch: string;
3157
3157
  /**
3158
3158
  * The branch of the vcs repository
3159
3159
  */
@@ -3204,7 +3204,7 @@ declare namespace Models {
3204
3204
  */
3205
3205
  requestPath: string;
3206
3206
  /**
3207
- * HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.
3207
+ * HTTP request headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.
3208
3208
  */
3209
3209
  requestHeaders: Headers[];
3210
3210
  /**
@@ -3375,7 +3375,7 @@ declare namespace Models {
3375
3375
  */
3376
3376
  version: string;
3377
3377
  /**
3378
- * Antivirus status. Possible values can are: `disabled`, `offline`, `online`
3378
+ * Antivirus status. Possible values are: `disabled`, `offline`, `online`
3379
3379
  */
3380
3380
  status: string;
3381
3381
  };
@@ -3401,7 +3401,7 @@ declare namespace Models {
3401
3401
  */
3402
3402
  ping: number;
3403
3403
  /**
3404
- * Service status. Possible values can are: `pass`, `fail`
3404
+ * Service status. Possible values are: `pass`, `fail`
3405
3405
  */
3406
3406
  status: string;
3407
3407
  };
package/dist/query.d.mts CHANGED
@@ -27,18 +27,18 @@ declare class Query {
27
27
  * Filter resources where attribute is equal to value.
28
28
  *
29
29
  * @param {string} attribute
30
- * @param {QueryTypes | any[]} value
30
+ * @param {QueryTypes} value
31
31
  * @returns {string}
32
32
  */
33
- static equal: (attribute: string, value: QueryTypes | any[]) => string;
33
+ static equal: (attribute: string, value: QueryTypes) => string;
34
34
  /**
35
35
  * Filter resources where attribute is not equal to value.
36
36
  *
37
37
  * @param {string} attribute
38
- * @param {QueryTypes | any[]} value
38
+ * @param {QueryTypes} value
39
39
  * @returns {string}
40
40
  */
41
- static notEqual: (attribute: string, value: QueryTypes | any[]) => string;
41
+ static notEqual: (attribute: string, value: QueryTypes) => string;
42
42
  /**
43
43
  * Filter resources where attribute is less than value.
44
44
  *
@@ -140,6 +140,12 @@ declare class Query {
140
140
  * @returns {string}
141
141
  */
142
142
  static orderAsc: (attribute: string) => string;
143
+ /**
144
+ * Sort results randomly.
145
+ *
146
+ * @returns {string}
147
+ */
148
+ static orderRandom: () => string;
143
149
  /**
144
150
  * Return results after documentId.
145
151
  *
package/dist/query.d.ts CHANGED
@@ -27,18 +27,18 @@ declare class Query {
27
27
  * Filter resources where attribute is equal to value.
28
28
  *
29
29
  * @param {string} attribute
30
- * @param {QueryTypes | any[]} value
30
+ * @param {QueryTypes} value
31
31
  * @returns {string}
32
32
  */
33
- static equal: (attribute: string, value: QueryTypes | any[]) => string;
33
+ static equal: (attribute: string, value: QueryTypes) => string;
34
34
  /**
35
35
  * Filter resources where attribute is not equal to value.
36
36
  *
37
37
  * @param {string} attribute
38
- * @param {QueryTypes | any[]} value
38
+ * @param {QueryTypes} value
39
39
  * @returns {string}
40
40
  */
41
- static notEqual: (attribute: string, value: QueryTypes | any[]) => string;
41
+ static notEqual: (attribute: string, value: QueryTypes) => string;
42
42
  /**
43
43
  * Filter resources where attribute is less than value.
44
44
  *
@@ -140,6 +140,12 @@ declare class Query {
140
140
  * @returns {string}
141
141
  */
142
142
  static orderAsc: (attribute: string) => string;
143
+ /**
144
+ * Sort results randomly.
145
+ *
146
+ * @returns {string}
147
+ */
148
+ static orderRandom: () => string;
143
149
  /**
144
150
  * Return results after documentId.
145
151
  *
package/dist/query.js CHANGED
@@ -36,7 +36,7 @@ const _Query = class _Query {
36
36
  * Filter resources where attribute is equal to value.
37
37
  *
38
38
  * @param {string} attribute
39
- * @param {QueryTypes | any[]} value
39
+ * @param {QueryTypes} value
40
40
  * @returns {string}
41
41
  */
42
42
  _Query.equal = (attribute, value) => new _Query("equal", attribute, value).toString();
@@ -44,7 +44,7 @@ _Query.equal = (attribute, value) => new _Query("equal", attribute, value).toStr
44
44
  * Filter resources where attribute is not equal to value.
45
45
  *
46
46
  * @param {string} attribute
47
- * @param {QueryTypes | any[]} value
47
+ * @param {QueryTypes} value
48
48
  * @returns {string}
49
49
  */
50
50
  _Query.notEqual = (attribute, value) => new _Query("notEqual", attribute, value).toString();
@@ -149,6 +149,12 @@ _Query.orderDesc = (attribute) => new _Query("orderDesc", attribute).toString();
149
149
  * @returns {string}
150
150
  */
151
151
  _Query.orderAsc = (attribute) => new _Query("orderAsc", attribute).toString();
152
+ /**
153
+ * Sort results randomly.
154
+ *
155
+ * @returns {string}
156
+ */
157
+ _Query.orderRandom = () => new _Query("orderRandom").toString();
152
158
  /**
153
159
  * Return results after documentId.
154
160
  *
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/query.ts"],"names":[],"mappings":"AAQO,MAAM,SAAN,MAAM,OAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYjB,YACE,QACA,WACA,QACA;AACA,SAAK,SAAS;AACd,SAAK,YAAY;AAEjB,QAAI,WAAW,QAAW;AACxB,UAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,aAAK,SAAS;AAAA,MAChB,OAAO;AACL,aAAK,SAAS,CAAC,MAAM;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,WAAmB;AACjB,WAAO,KAAK,UAAU;AAAA,MACpB,QAAQ,KAAK;AAAA,MACb,WAAW,KAAK;AAAA,MAChB,QAAQ,KAAK;AAAA,IACf,CAAC;AAAA,EACH;AAgcF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAxea,OAiDJ,QAAQ,CAAC,WAAmB,UACjC,IAAI,OAAM,SAAS,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAlDrC,OA2DJ,WAAW,CAAC,WAAmB,UACpC,IAAI,OAAM,YAAY,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA5DxC,OAqEJ,WAAW,CAAC,WAAmB,UACpC,IAAI,OAAM,YAAY,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtExC,OA+EJ,gBAAgB,CAAC,WAAmB,UACzC,IAAI,OAAM,iBAAiB,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAhF7C,OAyFJ,cAAc,CAAC,WAAmB,UACvC,IAAI,OAAM,eAAe,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA1F3C,OAmGJ,mBAAmB,CAAC,WAAmB,UAC5C,IAAI,OAAM,oBAAoB,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AApGhD,OA4GJ,SAAS,CAAC,cACf,IAAI,OAAM,UAAU,SAAS,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA7G/B,OAqHJ,YAAY,CAAC,cAClB,IAAI,OAAM,aAAa,SAAS,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtHlC,OAgIJ,UAAU,CAAC,WAAmB,OAAwB,QAC3D,IAAI,OAAM,WAAW,WAAW,CAAC,OAAO,GAAG,CAAmB,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAjIhE,OA0IJ,aAAa,CAAC,WAAmB,UACtC,IAAI,OAAM,cAAc,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA3I1C,OAoJJ,WAAW,CAAC,WAAmB,UACpC,IAAI,OAAM,YAAY,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AArJxC,OA6JJ,SAAS,CAAC,eACf,IAAI,OAAM,UAAU,QAAW,UAAU,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA9J3C,OAwKJ,SAAS,CAAC,WAAmB,UAClC,IAAI,OAAM,UAAU,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAzKtC,OAiLJ,YAAY,CAAC,cAClB,IAAI,OAAM,aAAa,SAAS,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAlLlC,OA0LJ,WAAW,CAAC,cACjB,IAAI,OAAM,YAAY,SAAS,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA3LjC,OAmMJ,cAAc,CAAC,eACpB,IAAI,OAAM,eAAe,QAAW,UAAU,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AApMhD,OA4MJ,eAAe,CAAC,eACrB,IAAI,OAAM,gBAAgB,QAAW,UAAU,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA7MjD,OAqNJ,QAAQ,CAAC,UACd,IAAI,OAAM,SAAS,QAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtNrC,OA8NJ,SAAS,CAAC,WACf,IAAI,OAAM,UAAU,QAAW,MAAM,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA/NvC,OAwOJ,WAAW,CAAC,WAAmB,UACpC,IAAI,OAAM,YAAY,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAzOxC,OAkPJ,cAAc,CAAC,WAAmB,UACvC,IAAI,OAAM,eAAe,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAnP3C,OA6PJ,YAAY,CAAC,WAAmB,UACrC,IAAI,OAAM,aAAa,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA9PzC,OAwQJ,aAAa,CAAC,WAAmB,OAAwB,QAC9D,IAAI,OAAM,cAAc,WAAW,CAAC,OAAO,GAAG,CAAmB,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAzQnE,OAkRJ,gBAAgB,CAAC,WAAmB,UACzC,IAAI,OAAM,iBAAiB,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAnR7C,OA4RJ,cAAc,CAAC,WAAmB,UACvC,IAAI,OAAM,eAAe,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA7R3C,OAqSJ,gBAAgB,CAAC,UACtB,IAAI,OAAM,iBAAiB,QAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtS7C,OA8SJ,eAAe,CAAC,UACrB,IAAI,OAAM,gBAAgB,QAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA/S5C,OAwTJ,iBAAiB,CAAC,OAAe,QACtC,IAAI,OAAM,kBAAkB,QAAW,CAAC,OAAO,GAAG,CAAmB,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAzTvE,OAiUJ,gBAAgB,CAAC,UACtB,IAAI,OAAM,iBAAiB,QAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAlU7C,OA0UJ,eAAe,CAAC,UACrB,IAAI,OAAM,gBAAgB,QAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA3U5C,OAoVJ,iBAAiB,CAAC,OAAe,QACtC,IAAI,OAAM,kBAAkB,QAAW,CAAC,OAAO,GAAG,CAAmB,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AArVvE,OA6VJ,KAAK,CAAC,YACX,IAAI,OAAM,MAAM,QAAW,QAAQ,IAAI,CAAC,UAAU,KAAK,MAAM,KAAK,CAAC,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA9VtE,OAsWJ,MAAM,CAAC,YACZ,IAAI,OAAM,OAAO,QAAW,QAAQ,IAAI,CAAC,UAAU,KAAK,MAAM,KAAK,CAAC,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAvWvE,OAkXJ,gBAAgB,CAAC,WAAmB,QAAe,UAAkB,SAAkB,SAC5F,IAAI,OAAM,iBAAiB,WAAW,CAAC,CAAC,QAAQ,UAAU,MAAM,CAAC,CAAmB,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAnXtF,OA8XJ,mBAAmB,CAAC,WAAmB,QAAe,UAAkB,SAAkB,SAC/F,IAAI,OAAM,oBAAoB,WAAW,CAAC,CAAC,QAAQ,UAAU,MAAM,CAAC,CAAmB,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA/XzF,OA0YJ,sBAAsB,CAAC,WAAmB,QAAe,UAAkB,SAAkB,SAClG,IAAI,OAAM,uBAAuB,WAAW,CAAC,CAAC,QAAQ,UAAU,MAAM,CAAC,CAAmB,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA3Y5F,OAsZJ,mBAAmB,CAAC,WAAmB,QAAe,UAAkB,SAAkB,SAC/F,IAAI,OAAM,oBAAoB,WAAW,CAAC,CAAC,QAAQ,UAAU,MAAM,CAAC,CAAmB,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAvZzF,OAgaJ,aAAa,CAAC,WAAmB,WACtC,IAAI,OAAM,cAAc,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAja7C,OA0aJ,gBAAgB,CAAC,WAAmB,WACzC,IAAI,OAAM,iBAAiB,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA3ahD,OAobJ,UAAU,CAAC,WAAmB,WACnC,IAAI,OAAM,WAAW,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AArb1C,OA8bJ,aAAa,CAAC,WAAmB,WACtC,IAAI,OAAM,cAAc,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA/b7C,OAwcJ,WAAW,CAAC,WAAmB,WACpC,IAAI,OAAM,YAAY,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAzc3C,OAkdJ,cAAc,CAAC,WAAmB,WACvC,IAAI,OAAM,eAAe,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAnd9C,OA4dJ,UAAU,CAAC,WAAmB,WACnC,IAAI,OAAM,WAAW,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA7d1C,OAseJ,aAAa,CAAC,WAAmB,WACtC,IAAI,OAAM,cAAc,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAvenD,IAAM,QAAN","sourcesContent":["type QueryTypesSingle = string | number | boolean;\nexport type QueryTypesList = string[] | number[] | boolean[] | Query[] | any[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\n/**\n * Helper class to generate query strings.\n */\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n /**\n * Constructor for Query class.\n *\n * @param {string} method\n * @param {AttributesTypes} attribute\n * @param {QueryTypes} values\n */\n constructor(\n method: string,\n attribute?: AttributesTypes,\n values?: QueryTypes\n ) {\n this.method = method;\n this.attribute = attribute;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as QueryTypesList;\n }\n }\n }\n\n /**\n * Convert the query object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSON.stringify({\n method: this.method,\n attribute: this.attribute,\n values: this.values,\n });\n }\n\n /**\n * Filter resources where attribute is equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes | any[]} value\n * @returns {string}\n */\n static equal = (attribute: string, value: QueryTypes | any[]): string =>\n new Query(\"equal\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes | any[]} value\n * @returns {string}\n */\n static notEqual = (attribute: string, value: QueryTypes | any[]): string =>\n new Query(\"notEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is less than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is less than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNull = (attribute: string): string =>\n new Query(\"isNull\", attribute).toString();\n\n /**\n * Filter resources where attribute is not null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNotNull = (attribute: string): string =>\n new Query(\"isNotNull\", attribute).toString();\n\n /**\n * Filter resources where attribute is between start and end (inclusive).\n *\n * @param {string} attribute\n * @param {string | number} start\n * @param {string | number} end\n * @returns {string}\n */\n static between = (attribute: string, start: string | number, end: string | number): string =>\n new Query(\"between\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute starts with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static startsWith = (attribute: string, value: string): string =>\n new Query(\"startsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute ends with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static endsWith = (attribute: string, value: string): string =>\n new Query(\"endsWith\", attribute, value).toString();\n\n /**\n * Specify which attributes should be returned by the API call.\n *\n * @param {string[]} attributes\n * @returns {string}\n */\n static select = (attributes: string[]): string =>\n new Query(\"select\", undefined, attributes).toString();\n\n /**\n * Filter resources by searching attribute for value.\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static search = (attribute: string, value: string): string =>\n new Query(\"search\", attribute, value).toString();\n\n /**\n * Sort results by attribute descending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderDesc = (attribute: string): string =>\n new Query(\"orderDesc\", attribute).toString();\n\n /**\n * Sort results by attribute ascending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderAsc = (attribute: string): string =>\n new Query(\"orderAsc\", attribute).toString();\n\n /**\n * Return results after documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorAfter = (documentId: string): string =>\n new Query(\"cursorAfter\", undefined, documentId).toString();\n\n /**\n * Return results before documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorBefore = (documentId: string): string =>\n new Query(\"cursorBefore\", undefined, documentId).toString();\n\n /**\n * Return only limit results.\n *\n * @param {number} limit\n * @returns {string}\n */\n static limit = (limit: number): string =>\n new Query(\"limit\", undefined, limit).toString();\n\n /**\n * Filter resources by skipping the first offset results.\n *\n * @param {number} offset\n * @returns {string}\n */\n static offset = (offset: number): string =>\n new Query(\"offset\", undefined, offset).toString();\n\n /**\n * Filter resources where attribute contains the specified value.\n *\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static contains = (attribute: string, value: string | any[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not contain the specified value.\n *\n * @param {string} attribute\n * @param {string | any[]} value\n * @returns {string}\n */\n static notContains = (attribute: string, value: string | any[]): string =>\n new Query(\"notContains\", attribute, value).toString();\n\n /**\n * Filter resources by searching attribute for value (inverse of search).\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notSearch = (attribute: string, value: string): string =>\n new Query(\"notSearch\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not between start and end (exclusive).\n *\n * @param {string} attribute\n * @param {string | number} start\n * @param {string | number} end\n * @returns {string}\n */\n static notBetween = (attribute: string, start: string | number, end: string | number): string =>\n new Query(\"notBetween\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute does not start with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notStartsWith = (attribute: string, value: string): string =>\n new Query(\"notStartsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not end with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notEndsWith = (attribute: string, value: string): string =>\n new Query(\"notEndsWith\", attribute, value).toString();\n\n /**\n * Filter resources where document was created before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdBefore = (value: string): string =>\n new Query(\"createdBefore\", undefined, value).toString();\n\n /**\n * Filter resources where document was created after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdAfter = (value: string): string =>\n new Query(\"createdAfter\", undefined, value).toString();\n\n /**\n * Filter resources where document was created between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static createdBetween = (start: string, end: string): string =>\n new Query(\"createdBetween\", undefined, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where document was updated before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedBefore = (value: string): string =>\n new Query(\"updatedBefore\", undefined, value).toString();\n\n /**\n * Filter resources where document was updated after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedAfter = (value: string): string =>\n new Query(\"updatedAfter\", undefined, value).toString();\n\n /**\n * Filter resources where document was updated between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static updatedBetween = (start: string, end: string): string =>\n new Query(\"updatedBetween\", undefined, [start, end] as QueryTypesList).toString();\n\n /**\n * Combine multiple queries using logical OR operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static or = (queries: string[]) =>\n new Query(\"or\", undefined, queries.map((query) => JSON.parse(query))).toString();\n\n /**\n * Combine multiple queries using logical AND operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static and = (queries: string[]) =>\n new Query(\"and\", undefined, queries.map((query) => JSON.parse(query))).toString();\n\n /**\n * Filter resources where attribute is at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is not at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceNotEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceNotEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceGreaterThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceGreaterThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance less than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceLessThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceLessThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute intersects with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static intersects = (attribute: string, values: any[]): string =>\n new Query(\"intersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not intersect with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notIntersects = (attribute: string, values: any[]): string =>\n new Query(\"notIntersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute crosses the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static crosses = (attribute: string, values: any[]): string =>\n new Query(\"crosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not cross the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notCrosses = (attribute: string, values: any[]): string =>\n new Query(\"notCrosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute overlaps with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static overlaps = (attribute: string, values: any[]): string =>\n new Query(\"overlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not overlap with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notOverlaps = (attribute: string, values: any[]): string =>\n new Query(\"notOverlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute touches the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static touches = (attribute: string, values: any[]): string =>\n new Query(\"touches\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not touch the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notTouches = (attribute: string, values: any[]): string =>\n new Query(\"notTouches\", attribute, [values]).toString();\n}\n"]}
1
+ {"version":3,"sources":["../src/query.ts"],"names":[],"mappings":"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","sourcesContent":["type QueryTypesSingle = string | number | boolean;\nexport type QueryTypesList = string[] | number[] | boolean[] | Query[] | any[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\n/**\n * Helper class to generate query strings.\n */\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n /**\n * Constructor for Query class.\n *\n * @param {string} method\n * @param {AttributesTypes} attribute\n * @param {QueryTypes} values\n */\n constructor(\n method: string,\n attribute?: AttributesTypes,\n values?: QueryTypes\n ) {\n this.method = method;\n this.attribute = attribute;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as QueryTypesList;\n }\n }\n }\n\n /**\n * Convert the query object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSON.stringify({\n method: this.method,\n attribute: this.attribute,\n values: this.values,\n });\n }\n\n /**\n * Filter resources where attribute is equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static equal = (attribute: string, value: QueryTypes): string =>\n new Query(\"equal\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static notEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"notEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is less than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is less than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNull = (attribute: string): string =>\n new Query(\"isNull\", attribute).toString();\n\n /**\n * Filter resources where attribute is not null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNotNull = (attribute: string): string =>\n new Query(\"isNotNull\", attribute).toString();\n\n /**\n * Filter resources where attribute is between start and end (inclusive).\n *\n * @param {string} attribute\n * @param {string | number} start\n * @param {string | number} end\n * @returns {string}\n */\n static between = (attribute: string, start: string | number, end: string | number): string =>\n new Query(\"between\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute starts with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static startsWith = (attribute: string, value: string): string =>\n new Query(\"startsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute ends with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static endsWith = (attribute: string, value: string): string =>\n new Query(\"endsWith\", attribute, value).toString();\n\n /**\n * Specify which attributes should be returned by the API call.\n *\n * @param {string[]} attributes\n * @returns {string}\n */\n static select = (attributes: string[]): string =>\n new Query(\"select\", undefined, attributes).toString();\n\n /**\n * Filter resources by searching attribute for value.\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static search = (attribute: string, value: string): string =>\n new Query(\"search\", attribute, value).toString();\n\n /**\n * Sort results by attribute descending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderDesc = (attribute: string): string =>\n new Query(\"orderDesc\", attribute).toString();\n\n /**\n * Sort results by attribute ascending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderAsc = (attribute: string): string =>\n new Query(\"orderAsc\", attribute).toString();\n\n /**\n * Sort results randomly.\n *\n * @returns {string}\n */\n static orderRandom = (): string =>\n new Query(\"orderRandom\").toString();\n\n /**\n * Return results after documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorAfter = (documentId: string): string =>\n new Query(\"cursorAfter\", undefined, documentId).toString();\n\n /**\n * Return results before documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorBefore = (documentId: string): string =>\n new Query(\"cursorBefore\", undefined, documentId).toString();\n\n /**\n * Return only limit results.\n *\n * @param {number} limit\n * @returns {string}\n */\n static limit = (limit: number): string =>\n new Query(\"limit\", undefined, limit).toString();\n\n /**\n * Filter resources by skipping the first offset results.\n *\n * @param {number} offset\n * @returns {string}\n */\n static offset = (offset: number): string =>\n new Query(\"offset\", undefined, offset).toString();\n\n /**\n * Filter resources where attribute contains the specified value.\n *\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static contains = (attribute: string, value: string | any[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not contain the specified value.\n *\n * @param {string} attribute\n * @param {string | any[]} value\n * @returns {string}\n */\n static notContains = (attribute: string, value: string | any[]): string =>\n new Query(\"notContains\", attribute, value).toString();\n\n /**\n * Filter resources by searching attribute for value (inverse of search).\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notSearch = (attribute: string, value: string): string =>\n new Query(\"notSearch\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not between start and end (exclusive).\n *\n * @param {string} attribute\n * @param {string | number} start\n * @param {string | number} end\n * @returns {string}\n */\n static notBetween = (attribute: string, start: string | number, end: string | number): string =>\n new Query(\"notBetween\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute does not start with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notStartsWith = (attribute: string, value: string): string =>\n new Query(\"notStartsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not end with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notEndsWith = (attribute: string, value: string): string =>\n new Query(\"notEndsWith\", attribute, value).toString();\n\n /**\n * Filter resources where document was created before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdBefore = (value: string): string =>\n new Query(\"createdBefore\", undefined, value).toString();\n\n /**\n * Filter resources where document was created after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdAfter = (value: string): string =>\n new Query(\"createdAfter\", undefined, value).toString();\n\n /**\n * Filter resources where document was created between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static createdBetween = (start: string, end: string): string =>\n new Query(\"createdBetween\", undefined, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where document was updated before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedBefore = (value: string): string =>\n new Query(\"updatedBefore\", undefined, value).toString();\n\n /**\n * Filter resources where document was updated after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedAfter = (value: string): string =>\n new Query(\"updatedAfter\", undefined, value).toString();\n\n /**\n * Filter resources where document was updated between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static updatedBetween = (start: string, end: string): string =>\n new Query(\"updatedBetween\", undefined, [start, end] as QueryTypesList).toString();\n\n /**\n * Combine multiple queries using logical OR operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static or = (queries: string[]) =>\n new Query(\"or\", undefined, queries.map((query) => JSON.parse(query))).toString();\n\n /**\n * Combine multiple queries using logical AND operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static and = (queries: string[]) =>\n new Query(\"and\", undefined, queries.map((query) => JSON.parse(query))).toString();\n\n /**\n * Filter resources where attribute is at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is not at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceNotEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceNotEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceGreaterThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceGreaterThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance less than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceLessThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceLessThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute intersects with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static intersects = (attribute: string, values: any[]): string =>\n new Query(\"intersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not intersect with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notIntersects = (attribute: string, values: any[]): string =>\n new Query(\"notIntersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute crosses the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static crosses = (attribute: string, values: any[]): string =>\n new Query(\"crosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not cross the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notCrosses = (attribute: string, values: any[]): string =>\n new Query(\"notCrosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute overlaps with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static overlaps = (attribute: string, values: any[]): string =>\n new Query(\"overlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not overlap with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notOverlaps = (attribute: string, values: any[]): string =>\n new Query(\"notOverlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute touches the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static touches = (attribute: string, values: any[]): string =>\n new Query(\"touches\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not touch the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notTouches = (attribute: string, values: any[]): string =>\n new Query(\"notTouches\", attribute, [values]).toString();\n}\n"]}
package/dist/query.mjs CHANGED
@@ -35,7 +35,7 @@ var _Query = class _Query {
35
35
  * Filter resources where attribute is equal to value.
36
36
  *
37
37
  * @param {string} attribute
38
- * @param {QueryTypes | any[]} value
38
+ * @param {QueryTypes} value
39
39
  * @returns {string}
40
40
  */
41
41
  _Query.equal = (attribute, value) => new _Query("equal", attribute, value).toString();
@@ -43,7 +43,7 @@ _Query.equal = (attribute, value) => new _Query("equal", attribute, value).toStr
43
43
  * Filter resources where attribute is not equal to value.
44
44
  *
45
45
  * @param {string} attribute
46
- * @param {QueryTypes | any[]} value
46
+ * @param {QueryTypes} value
47
47
  * @returns {string}
48
48
  */
49
49
  _Query.notEqual = (attribute, value) => new _Query("notEqual", attribute, value).toString();
@@ -148,6 +148,12 @@ _Query.orderDesc = (attribute) => new _Query("orderDesc", attribute).toString();
148
148
  * @returns {string}
149
149
  */
150
150
  _Query.orderAsc = (attribute) => new _Query("orderAsc", attribute).toString();
151
+ /**
152
+ * Sort results randomly.
153
+ *
154
+ * @returns {string}
155
+ */
156
+ _Query.orderRandom = () => new _Query("orderRandom").toString();
151
157
  /**
152
158
  * Return results after documentId.
153
159
  *