@squarecloud/api
Version:
A NodeJS wrapper for Square Cloud API
1 lines • 12 kB
Source Map (JSON)
{"version":3,"sources":["../../package.json","../../src/services/index.ts","../../src/assertions/common.ts","../../src/assertions/literal.ts","../../src/services/cache/base.ts","../../src/services/cache/application.ts","../../src/structures/error.ts","../../src/services/api.ts","../../src/services/cache/global.ts"],"sourcesContent":["{\n\t\"name\": \"@squarecloud/api\",\n\t\"version\": \"3.7.9\",\n\t\"description\": \"A NodeJS wrapper for Square Cloud API\",\n\t\"exports\": {\n\t\t\".\": {\n\t\t\t\"import\": {\n\t\t\t\t\"types\": \"./lib/index.d.ts\",\n\t\t\t\t\"default\": \"./lib/index.js\"\n\t\t\t},\n\t\t\t\"require\": {\n\t\t\t\t\"types\": \"./lib/index.d.cts\",\n\t\t\t\t\"default\": \"./lib/index.cjs\"\n\t\t\t},\n\t\t\t\"default\": \"./lib/index.js\"\n\t\t}\n\t},\n\t\"packageManager\": \"pnpm@10.11.1\",\n\t\"type\": \"module\",\n\t\"scripts\": {\n\t\t\"release\": \"pnpm build && changeset publish\",\n\t\t\"build\": \"tsup ./src\",\n\t\t\"check-types\": \"tsc --noEmit\",\n\t\t\"lint\": \"biome check --write .\",\n\t\t\"lint:ci\": \"biome check .\",\n\t\t\"test\": \"node --test test/*.test.js\"\n\t},\n\t\"engines\": {\n\t\t\"node\": \">=18.0.0\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@biomejs/biome\": \"^1.9.4\",\n\t\t\"@changesets/cli\": \"^2.29.4\",\n\t\t\"@squarecloud/api-types\": \"^0.5.0\",\n\t\t\"@types/node\": \"^22.15.29\",\n\t\t\"ts-node\": \"^10.9.2\",\n\t\t\"ts-node-dev\": \"^2.0.0\",\n\t\t\"tsc-alias\": \"^1.8.16\",\n\t\t\"tsup\": \"^8.5.0\",\n\t\t\"typescript\": \"^5.8.3\"\n\t},\n\t\"keywords\": [\n\t\t\"wrapper\",\n\t\t\"square\",\n\t\t\"squarecloud\",\n\t\t\"api\",\n\t\t\"typescript\",\n\t\t\"app\",\n\t\t\"bot\",\n\t\t\"website\",\n\t\t\"host\"\n\t],\n\t\"author\": {\n\t\t\"name\": \"joaotonaco\",\n\t\t\"url\": \"https://github.com/joaotonaco\"\n\t},\n\t\"repository\": {\n\t\t\"type\": \"git\",\n\t\t\"url\": \"git+https://github.com/squarecloudofc/sdk-api-js.git\"\n\t},\n\t\"bugs\": {\n\t\t\"url\": \"https://github.com/squarecloudofc/sdk-api-js/issues\"\n\t},\n\t\"homepage\": \"https://docs.squarecloud.app/sdks/js/client\",\n\t\"license\": \"MIT\"\n}\n","export * from \"./api\";\nexport * from \"./cache/global\";\nexport * from \"./cache/application\";\n","import { SquareCloudAPIError } from \"../structures\";\n\nexport interface AssertionProps {\n\tvalidate: (value: unknown) => boolean;\n\texpect: string;\n\tvalue: unknown;\n\tname?: string;\n}\n\nexport function assert({ validate, value, expect, name }: AssertionProps) {\n\tif (!validate(value)) {\n\t\tconst code = name ? `INVALID_${name}` : \"VALIDATION_ERROR\";\n\t\tconst message = `Expected ${expect}, got ${typeof value}`;\n\n\t\tthrow new SquareCloudAPIError(code, message);\n\t}\n}\n\nexport function makeAssertion(\n\texpect: string,\n\tvalidate: (value: unknown) => boolean,\n) {\n\treturn (value: unknown, name?: string) => {\n\t\tassert({ validate, value, expect, name });\n\t};\n}\n","import { makeAssertion } from \"./common\";\n\nexport const assertString = makeAssertion(\n\t\"string\",\n\t(value) => typeof value === \"string\",\n);\n\nexport const assertBoolean = makeAssertion(\n\t\"boolean\",\n\t(value) => typeof value === \"boolean\",\n);\n\nexport const assertPathLike = makeAssertion(\n\t\"string or Buffer\",\n\t(value) => typeof value === \"string\" || value instanceof Buffer,\n);\n","export abstract class BaseCacheService<\n\tStruct extends object,\n\tKeys extends keyof Struct = keyof Struct,\n> {\n\tprotected cache: Struct;\n\n\tset<T extends Keys>(key: T, value: Struct[T]) {\n\t\tReflect.set(this.cache, key, value);\n\t}\n\n\tget<T extends Keys>(key: T): Struct[T] {\n\t\treturn this.cache[key];\n\t}\n\n\tremove<T extends Keys>(key: T) {\n\t\tReflect.set(this.cache, key, undefined);\n\t}\n}\n","import type { ApplicationStatus } from \"@/structures\";\nimport type { Backup } from \"@/structures/backup\";\nimport { BaseCacheService } from \"./base\";\n\nexport interface ApplicationCache {\n\treadonly status?: ApplicationStatus;\n\treadonly backups?: Backup[];\n\treadonly logs?: string;\n}\n\nexport class ApplicationCacheService extends BaseCacheService<ApplicationCache> {\n\tprotected cache: ApplicationCache = {\n\t\tstatus: undefined,\n\t\tbackups: undefined,\n\t\tlogs: undefined,\n\t};\n\n\tget status() {\n\t\treturn this.cache.status;\n\t}\n\n\tget backups() {\n\t\treturn this.cache.backups;\n\t}\n\n\tget logs() {\n\t\treturn this.cache.logs;\n\t}\n}\n","export class SquareCloudAPIError extends TypeError {\n\tconstructor(\n\t\tcode: string,\n\t\tmessage?: string,\n\t\toptions?: { stack?: string; cause?: unknown },\n\t) {\n\t\tsuper(code);\n\n\t\tthis.name = \"SquareCloudAPIError\";\n\n\t\tthis.message =\n\t\t\t(code\n\t\t\t\t?.replaceAll(\"_\", \" \")\n\t\t\t\t.toLowerCase()\n\t\t\t\t.replace(/(^|\\s)\\S/g, (L) => L.toUpperCase()) || \"UNKNOWN_CODE\") +\n\t\t\t(message ? `: ${message}` : \"\");\n\n\t\tif (options?.stack) {\n\t\t\tthis.stack = options.stack;\n\t\t}\n\n\t\tif (options?.cause) {\n\t\t\tthis.cause = options.cause;\n\t\t}\n\t}\n}\n","import type { APIVersion } from \"@squarecloud/api-types/v2\";\n\nimport { SquareCloudAPIError } from \"@/structures\";\nimport type {\n\tAPIEndpoint,\n\tAPIRequestArgs,\n\tAPIRequestOptions,\n\tAPIResponse,\n} from \"@/types\";\n\nexport class APIService {\n\tpublic readonly baseUrl = \"https://api.squarecloud.app\";\n\tpublic readonly version: APIVersion<1 | 2> = \"v2\";\n\tpublic readonly sdkVersion: string = require(\"../../package.json\").version;\n\tpublic readonly userId: string;\n\n\tconstructor(protected readonly apiKey: string) {\n\t\tthis.userId = apiKey.split(\"-\")[0];\n\t}\n\n\tasync request<T extends APIEndpoint>(\n\t\t...[path, options]: APIRequestArgs<T>\n\t): Promise<APIResponse<T>> {\n\t\tconst { url, init } = this.parseRequestOptions(path, options);\n\n\t\tconst response = await fetch(url, init).catch((err) => {\n\t\t\tthrow new SquareCloudAPIError(err.code, err.message);\n\t\t});\n\n\t\tif (response.status === 413) {\n\t\t\tthrow new SquareCloudAPIError(\"PAYLOAD_TOO_LARGE\");\n\t\t}\n\n\t\tif (response.status === 429) {\n\t\t\tthrow new SquareCloudAPIError(\"RATE_LIMIT_EXCEEDED\", \"Try again later\");\n\t\t}\n\n\t\tif (response.status === 502 || response.status === 504) {\n\t\t\tthrow new SquareCloudAPIError(\"SERVER_UNAVAILABLE\", \"Try again later\");\n\t\t}\n\n\t\tconst data = await response.json().catch(() => {\n\t\t\tthrow new SquareCloudAPIError(\n\t\t\t\t\"CANNOT_PARSE_RESPONSE\",\n\t\t\t\t`Failed with status ${response.status}`,\n\t\t\t);\n\t\t});\n\n\t\tif (!data || data.status === \"error\" || !response.ok) {\n\t\t\tthrow new SquareCloudAPIError(data?.code || \"COMMON_ERROR\");\n\t\t}\n\n\t\treturn data;\n\t}\n\n\tprivate parseRequestOptions(\n\t\tpath: string,\n\t\toptions?: APIRequestOptions<APIEndpoint>,\n\t) {\n\t\tconst init: RequestInit = options || {};\n\n\t\tinit.method = init.method || \"GET\";\n\t\tinit.headers = {\n\t\t\tAccept: \"application/json\",\n\t\t\t...(init.headers || {}),\n\t\t\tAuthorization: this.apiKey,\n\t\t\t\"User-Agent\": `squarecloud-sdk-js/${this.sdkVersion}`,\n\t\t};\n\n\t\tconst url = new URL(path, `${this.baseUrl}/${this.version}/`);\n\n\t\tif (\"query\" in init && init.query) {\n\t\t\tconst query = new URLSearchParams(init.query as Record<string, string>);\n\t\t\turl.search = query.toString();\n\t\t\tinit.query = undefined;\n\t\t}\n\n\t\tif (\"body\" in init && init.body && !(init.body instanceof FormData)) {\n\t\t\tinit.body = JSON.stringify(init.body);\n\t\t\tinit.headers = {\n\t\t\t\t...init.headers,\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t};\n\t\t}\n\n\t\treturn { url, init };\n\t}\n}\n","import type { User } from \"@/structures\";\nimport { BaseCacheService } from \"./base\";\n\nexport interface GlobalCache {\n\treadonly user?: User;\n}\n\nexport class GlobalCacheService extends BaseCacheService<GlobalCache> {\n\tprotected cache: GlobalCache = {\n\t\tuser: undefined,\n\t};\n\n\tget user() {\n\t\treturn this.cache.user;\n\t}\n}\n"],"mappings":"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","names":["exports","module"]}