UNPKG

@playt/client

Version:
1 lines 29 kB
{"version":3,"sources":["../node_modules/slugify/slugify.js","../src/index.mts","../node_modules/openapi-typescript-fetch/dist/index.js","../src/utils.mts"],"sourcesContent":["\n;(function (name, root, factory) {\n if (typeof exports === 'object') {\n module.exports = factory()\n module.exports['default'] = factory()\n }\n /* istanbul ignore next */\n else if (typeof define === 'function' && define.amd) {\n define(factory)\n }\n else {\n root[name] = factory()\n }\n}('slugify', this, function () {\n var charMap = JSON.parse('{\"$\":\"dollar\",\"%\":\"percent\",\"&\":\"and\",\"<\":\"less\",\">\":\"greater\",\"|\":\"or\",\"¢\":\"cent\",\"£\":\"pound\",\"¤\":\"currency\",\"¥\":\"yen\",\"©\":\"(c)\",\"ª\":\"a\",\"®\":\"(r)\",\"º\":\"o\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"Æ\":\"AE\",\"Ç\":\"C\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"Ð\":\"D\",\"Ñ\":\"N\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"Ý\":\"Y\",\"Þ\":\"TH\",\"ß\":\"ss\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"æ\":\"ae\",\"ç\":\"c\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"ð\":\"d\",\"ñ\":\"n\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"ý\":\"y\",\"þ\":\"th\",\"ÿ\":\"y\",\"Ā\":\"A\",\"ā\":\"a\",\"Ă\":\"A\",\"ă\":\"a\",\"Ą\":\"A\",\"ą\":\"a\",\"Ć\":\"C\",\"ć\":\"c\",\"Č\":\"C\",\"č\":\"c\",\"Ď\":\"D\",\"ď\":\"d\",\"Đ\":\"DJ\",\"đ\":\"dj\",\"Ē\":\"E\",\"ē\":\"e\",\"Ė\":\"E\",\"ė\":\"e\",\"Ę\":\"e\",\"ę\":\"e\",\"Ě\":\"E\",\"ě\":\"e\",\"Ğ\":\"G\",\"ğ\":\"g\",\"Ģ\":\"G\",\"ģ\":\"g\",\"Ĩ\":\"I\",\"ĩ\":\"i\",\"Ī\":\"i\",\"ī\":\"i\",\"Į\":\"I\",\"į\":\"i\",\"İ\":\"I\",\"ı\":\"i\",\"Ķ\":\"k\",\"ķ\":\"k\",\"Ļ\":\"L\",\"ļ\":\"l\",\"Ľ\":\"L\",\"ľ\":\"l\",\"Ł\":\"L\",\"ł\":\"l\",\"Ń\":\"N\",\"ń\":\"n\",\"Ņ\":\"N\",\"ņ\":\"n\",\"Ň\":\"N\",\"ň\":\"n\",\"Ō\":\"O\",\"ō\":\"o\",\"Ő\":\"O\",\"ő\":\"o\",\"Œ\":\"OE\",\"œ\":\"oe\",\"Ŕ\":\"R\",\"ŕ\":\"r\",\"Ř\":\"R\",\"ř\":\"r\",\"Ś\":\"S\",\"ś\":\"s\",\"Ş\":\"S\",\"ş\":\"s\",\"Š\":\"S\",\"š\":\"s\",\"Ţ\":\"T\",\"ţ\":\"t\",\"Ť\":\"T\",\"ť\":\"t\",\"Ũ\":\"U\",\"ũ\":\"u\",\"Ū\":\"u\",\"ū\":\"u\",\"Ů\":\"U\",\"ů\":\"u\",\"Ű\":\"U\",\"ű\":\"u\",\"Ų\":\"U\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"ź\":\"z\",\"Ż\":\"Z\",\"ż\":\"z\",\"Ž\":\"Z\",\"ž\":\"z\",\"Ə\":\"E\",\"ƒ\":\"f\",\"Ơ\":\"O\",\"ơ\":\"o\",\"Ư\":\"U\",\"ư\":\"u\",\"Lj\":\"LJ\",\"lj\":\"lj\",\"Nj\":\"NJ\",\"nj\":\"nj\",\"Ș\":\"S\",\"ș\":\"s\",\"Ț\":\"T\",\"ț\":\"t\",\"ə\":\"e\",\"˚\":\"o\",\"Ά\":\"A\",\"Έ\":\"E\",\"Ή\":\"H\",\"Ί\":\"I\",\"Ό\":\"O\",\"Ύ\":\"Y\",\"Ώ\":\"W\",\"ΐ\":\"i\",\"Α\":\"A\",\"Β\":\"B\",\"Γ\":\"G\",\"Δ\":\"D\",\"Ε\":\"E\",\"Ζ\":\"Z\",\"Η\":\"H\",\"Θ\":\"8\",\"Ι\":\"I\",\"Κ\":\"K\",\"Λ\":\"L\",\"Μ\":\"M\",\"Ν\":\"N\",\"Ξ\":\"3\",\"Ο\":\"O\",\"Π\":\"P\",\"Ρ\":\"R\",\"Σ\":\"S\",\"Τ\":\"T\",\"Υ\":\"Y\",\"Φ\":\"F\",\"Χ\":\"X\",\"Ψ\":\"PS\",\"Ω\":\"W\",\"Ϊ\":\"I\",\"Ϋ\":\"Y\",\"ά\":\"a\",\"έ\":\"e\",\"ή\":\"h\",\"ί\":\"i\",\"ΰ\":\"y\",\"α\":\"a\",\"β\":\"b\",\"γ\":\"g\",\"δ\":\"d\",\"ε\":\"e\",\"ζ\":\"z\",\"η\":\"h\",\"θ\":\"8\",\"ι\":\"i\",\"κ\":\"k\",\"λ\":\"l\",\"μ\":\"m\",\"ν\":\"n\",\"ξ\":\"3\",\"ο\":\"o\",\"π\":\"p\",\"ρ\":\"r\",\"ς\":\"s\",\"σ\":\"s\",\"τ\":\"t\",\"υ\":\"y\",\"φ\":\"f\",\"χ\":\"x\",\"ψ\":\"ps\",\"ω\":\"w\",\"ϊ\":\"i\",\"ϋ\":\"y\",\"ό\":\"o\",\"ύ\":\"y\",\"ώ\":\"w\",\"Ё\":\"Yo\",\"Ђ\":\"DJ\",\"Є\":\"Ye\",\"І\":\"I\",\"Ї\":\"Yi\",\"Ј\":\"J\",\"Љ\":\"LJ\",\"Њ\":\"NJ\",\"Ћ\":\"C\",\"Џ\":\"DZ\",\"А\":\"A\",\"Б\":\"B\",\"В\":\"V\",\"Г\":\"G\",\"Д\":\"D\",\"Е\":\"E\",\"Ж\":\"Zh\",\"З\":\"Z\",\"И\":\"I\",\"Й\":\"J\",\"К\":\"K\",\"Л\":\"L\",\"М\":\"M\",\"Н\":\"N\",\"О\":\"O\",\"П\":\"P\",\"Р\":\"R\",\"С\":\"S\",\"Т\":\"T\",\"У\":\"U\",\"Ф\":\"F\",\"Х\":\"H\",\"Ц\":\"C\",\"Ч\":\"Ch\",\"Ш\":\"Sh\",\"Щ\":\"Sh\",\"Ъ\":\"U\",\"Ы\":\"Y\",\"Ь\":\"\",\"Э\":\"E\",\"Ю\":\"Yu\",\"Я\":\"Ya\",\"а\":\"a\",\"б\":\"b\",\"в\":\"v\",\"г\":\"g\",\"д\":\"d\",\"е\":\"e\",\"ж\":\"zh\",\"з\":\"z\",\"и\":\"i\",\"й\":\"j\",\"к\":\"k\",\"л\":\"l\",\"м\":\"m\",\"н\":\"n\",\"о\":\"o\",\"п\":\"p\",\"р\":\"r\",\"с\":\"s\",\"т\":\"t\",\"у\":\"u\",\"ф\":\"f\",\"х\":\"h\",\"ц\":\"c\",\"ч\":\"ch\",\"ш\":\"sh\",\"щ\":\"sh\",\"ъ\":\"u\",\"ы\":\"y\",\"ь\":\"\",\"э\":\"e\",\"ю\":\"yu\",\"я\":\"ya\",\"ё\":\"yo\",\"ђ\":\"dj\",\"є\":\"ye\",\"і\":\"i\",\"ї\":\"yi\",\"ј\":\"j\",\"љ\":\"lj\",\"њ\":\"nj\",\"ћ\":\"c\",\"ѝ\":\"u\",\"џ\":\"dz\",\"Ґ\":\"G\",\"ґ\":\"g\",\"Ғ\":\"GH\",\"ғ\":\"gh\",\"Қ\":\"KH\",\"қ\":\"kh\",\"Ң\":\"NG\",\"ң\":\"ng\",\"Ү\":\"UE\",\"ү\":\"ue\",\"Ұ\":\"U\",\"ұ\":\"u\",\"Һ\":\"H\",\"һ\":\"h\",\"Ә\":\"AE\",\"ә\":\"ae\",\"Ө\":\"OE\",\"ө\":\"oe\",\"Ա\":\"A\",\"Բ\":\"B\",\"Գ\":\"G\",\"Դ\":\"D\",\"Ե\":\"E\",\"Զ\":\"Z\",\"Է\":\"E\\'\",\"Ը\":\"Y\\'\",\"Թ\":\"T\\'\",\"Ժ\":\"JH\",\"Ի\":\"I\",\"Լ\":\"L\",\"Խ\":\"X\",\"Ծ\":\"C\\'\",\"Կ\":\"K\",\"Հ\":\"H\",\"Ձ\":\"D\\'\",\"Ղ\":\"GH\",\"Ճ\":\"TW\",\"Մ\":\"M\",\"Յ\":\"Y\",\"Ն\":\"N\",\"Շ\":\"SH\",\"Չ\":\"CH\",\"Պ\":\"P\",\"Ջ\":\"J\",\"Ռ\":\"R\\'\",\"Ս\":\"S\",\"Վ\":\"V\",\"Տ\":\"T\",\"Ր\":\"R\",\"Ց\":\"C\",\"Փ\":\"P\\'\",\"Ք\":\"Q\\'\",\"Օ\":\"O\\'\\'\",\"Ֆ\":\"F\",\"և\":\"EV\",\"ء\":\"a\",\"آ\":\"aa\",\"أ\":\"a\",\"ؤ\":\"u\",\"إ\":\"i\",\"ئ\":\"e\",\"ا\":\"a\",\"ب\":\"b\",\"ة\":\"h\",\"ت\":\"t\",\"ث\":\"th\",\"ج\":\"j\",\"ح\":\"h\",\"خ\":\"kh\",\"د\":\"d\",\"ذ\":\"th\",\"ر\":\"r\",\"ز\":\"z\",\"س\":\"s\",\"ش\":\"sh\",\"ص\":\"s\",\"ض\":\"dh\",\"ط\":\"t\",\"ظ\":\"z\",\"ع\":\"a\",\"غ\":\"gh\",\"ف\":\"f\",\"ق\":\"q\",\"ك\":\"k\",\"ل\":\"l\",\"م\":\"m\",\"ن\":\"n\",\"ه\":\"h\",\"و\":\"w\",\"ى\":\"a\",\"ي\":\"y\",\"ً\":\"an\",\"ٌ\":\"on\",\"ٍ\":\"en\",\"َ\":\"a\",\"ُ\":\"u\",\"ِ\":\"e\",\"ْ\":\"\",\"٠\":\"0\",\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"پ\":\"p\",\"چ\":\"ch\",\"ژ\":\"zh\",\"ک\":\"k\",\"گ\":\"g\",\"ی\":\"y\",\"۰\":\"0\",\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"฿\":\"baht\",\"\":\"a\",\"\":\"b\",\"\":\"g\",\"\":\"d\",\"\":\"e\",\"\":\"v\",\"\":\"z\",\"\":\"t\",\"\":\"i\",\"\":\"k\",\"\":\"l\",\"\":\"m\",\"\":\"n\",\"\":\"o\",\"\":\"p\",\"\":\"zh\",\"\":\"r\",\"\":\"s\",\"\":\"t\",\"\":\"u\",\"\":\"f\",\"\":\"k\",\"\":\"gh\",\"\":\"q\",\"\":\"sh\",\"\":\"ch\",\"\":\"ts\",\"\":\"dz\",\"\":\"ts\",\"\":\"ch\",\"\":\"kh\",\"\":\"j\",\"\":\"h\",\"\":\"S\",\"\":\"s\",\"\":\"W\",\"\":\"w\",\"\":\"W\",\"\":\"w\",\"\":\"W\",\"\":\"w\",\"\":\"SS\",\"\":\"A\",\"\":\"a\",\"\":\"A\",\"\":\"a\",\"\":\"A\",\"\":\"a\",\"\":\"A\",\"\":\"a\",\"\":\"A\",\"\":\"a\",\"\":\"A\",\"\":\"a\",\"\":\"A\",\"\":\"a\",\"\":\"A\",\"\":\"a\",\"\":\"A\",\"\":\"a\",\"\":\"A\",\"\":\"a\",\"\":\"A\",\"\":\"a\",\"\":\"A\",\"\":\"a\",\"\":\"E\",\"\":\"e\",\"\":\"E\",\"\":\"e\",\"\":\"E\",\"\":\"e\",\"\":\"E\",\"ế\":\"e\",\"\":\"E\",\"\":\"e\",\"\":\"E\",\"\":\"e\",\"\":\"E\",\"\":\"e\",\"\":\"E\",\"\":\"e\",\"\":\"I\",\"\":\"i\",\"\":\"I\",\"\":\"i\",\"\":\"O\",\"\":\"o\",\"\":\"O\",\"\":\"o\",\"\":\"O\",\"\":\"o\",\"\":\"O\",\"\":\"o\",\"\":\"O\",\"\":\"o\",\"\":\"O\",\"\":\"o\",\"\":\"O\",\"\":\"o\",\"\":\"O\",\"\":\"o\",\"\":\"O\",\"\":\"o\",\"\":\"O\",\"\":\"o\",\"\":\"O\",\"\":\"o\",\"\":\"O\",\"\":\"o\",\"\":\"U\",\"\":\"u\",\"\":\"U\",\"\":\"u\",\"\":\"U\",\"\":\"u\",\"\":\"U\",\"\":\"u\",\"\":\"U\",\"\":\"u\",\"\":\"U\",\"\":\"u\",\"\":\"U\",\"\":\"u\",\"\":\"Y\",\"\":\"y\",\"\":\"Y\",\"\":\"y\",\"\":\"Y\",\"\":\"y\",\"\":\"Y\",\"\":\"y\",\"\":\"-\",\"\":\"\\'\",\"\":\"\\'\",\"\":\"\\\\\\\"\",\"\":\"\\\\\\\"\",\"\":\"\\\\\\\"\",\"\":\"+\",\"\":\"*\",\"\":\"...\",\"\":\"ecu\",\"\":\"cruzeiro\",\"\":\"french franc\",\"\":\"lira\",\"\":\"mill\",\"\":\"naira\",\"\":\"peseta\",\"\":\"rupee\",\"\":\"won\",\"\":\"new shequel\",\"\":\"dong\",\"\":\"euro\",\"\":\"kip\",\"\":\"tugrik\",\"\":\"drachma\",\"\":\"penny\",\"\":\"peso\",\"\":\"guarani\",\"\":\"austral\",\"\":\"hryvnia\",\"\":\"cedi\",\"\":\"kazakhstani tenge\",\"\":\"indian rupee\",\"\":\"turkish lira\",\"\":\"russian ruble\",\"\":\"bitcoin\",\"\":\"sm\",\"\":\"tm\",\"\":\"d\",\"\":\"delta\",\"\":\"sum\",\"\":\"infinity\",\"\":\"love\",\"\":\"yuan\",\"\":\"yen\",\"\":\"rial\",\"\":\"laa\",\"\":\"laa\",\"\":\"lai\",\"\":\"la\"}')\n var locales = JSON.parse('{\"bg\":{\"Й\":\"Y\",\"Ц\":\"Ts\",\"Щ\":\"Sht\",\"Ъ\":\"A\",\"Ь\":\"Y\",\"й\":\"y\",\"ц\":\"ts\",\"щ\":\"sht\",\"ъ\":\"a\",\"ь\":\"y\"},\"de\":{\"Ä\":\"AE\",\"ä\":\"ae\",\"Ö\":\"OE\",\"ö\":\"oe\",\"Ü\":\"UE\",\"ü\":\"ue\",\"ß\":\"ss\",\"%\":\"prozent\",\"&\":\"und\",\"|\":\"oder\",\"\":\"summe\",\"\":\"unendlich\",\"\":\"liebe\"},\"es\":{\"%\":\"por ciento\",\"&\":\"y\",\"<\":\"menor que\",\">\":\"mayor que\",\"|\":\"o\",\"¢\":\"centavos\",\"£\":\"libras\",\"¤\":\"moneda\",\"\":\"francos\",\"\":\"suma\",\"\":\"infinito\",\"\":\"amor\"},\"fr\":{\"%\":\"pourcent\",\"&\":\"et\",\"<\":\"plus petit\",\">\":\"plus grand\",\"|\":\"ou\",\"¢\":\"centime\",\"£\":\"livre\",\"¤\":\"devise\",\"\":\"franc\",\"\":\"somme\",\"\":\"infini\",\"\":\"amour\"},\"pt\":{\"%\":\"porcento\",\"&\":\"e\",\"<\":\"menor\",\">\":\"maior\",\"|\":\"ou\",\"¢\":\"centavo\",\"\":\"soma\",\"£\":\"libra\",\"\":\"infinito\",\"\":\"amor\"},\"uk\":{\"И\":\"Y\",\"и\":\"y\",\"Й\":\"Y\",\"й\":\"y\",\"Ц\":\"Ts\",\"ц\":\"ts\",\"Х\":\"Kh\",\"х\":\"kh\",\"Щ\":\"Shch\",\"щ\":\"shch\",\"Г\":\"H\",\"г\":\"h\"},\"vi\":{\"Đ\":\"D\",\"đ\":\"d\"},\"da\":{\"Ø\":\"OE\",\"ø\":\"oe\",\"Å\":\"AA\",\"å\":\"aa\",\"%\":\"procent\",\"&\":\"og\",\"|\":\"eller\",\"$\":\"dollar\",\"<\":\"mindre end\",\">\":\"større end\"},\"nb\":{\"&\":\"og\",\"Å\":\"AA\",\"Æ\":\"AE\",\"Ø\":\"OE\",\"å\":\"aa\",\"æ\":\"ae\",\"ø\":\"oe\"},\"it\":{\"&\":\"e\"},\"nl\":{\"&\":\"en\"},\"sv\":{\"&\":\"och\",\"Å\":\"AA\",\"Ä\":\"AE\",\"Ö\":\"OE\",\"å\":\"aa\",\"ä\":\"ae\",\"ö\":\"oe\"}}')\n\n function replace (string, options) {\n if (typeof string !== 'string') {\n throw new Error('slugify: string argument expected')\n }\n\n options = (typeof options === 'string')\n ? {replacement: options}\n : options || {}\n\n var locale = locales[options.locale] || {}\n\n var replacement = options.replacement === undefined ? '-' : options.replacement\n\n var trim = options.trim === undefined ? true : options.trim\n\n var slug = string.normalize().split('')\n // replace characters based on charMap\n .reduce(function (result, ch) {\n var appendChar = locale[ch];\n if (appendChar === undefined) appendChar = charMap[ch];\n if (appendChar === undefined) appendChar = ch;\n if (appendChar === replacement) appendChar = ' ';\n return result + appendChar\n // remove not allowed characters\n .replace(options.remove || /[^\\w\\s$*_+~.()'\"!\\-:@]+/g, '')\n }, '');\n\n if (options.strict) {\n slug = slug.replace(/[^A-Za-z0-9\\s]/g, '');\n }\n\n if (trim) {\n slug = slug.trim()\n }\n\n // Replace spaces with replacement character, treating multiple consecutive\n // spaces as a single space.\n slug = slug.replace(/\\s+/g, replacement);\n\n if (options.lower) {\n slug = slug.toLowerCase()\n }\n\n return slug\n }\n\n replace.extend = function (customMap) {\n Object.assign(charMap, customMap)\n }\n\n return replace\n}))\n","import { CaptureConsole } from \"@sentry/integrations\";\nimport * as Sentry from \"@sentry/node\";\nimport { type ApiError, Fetcher } from \"openapi-typescript-fetch\";\nimport type { FetchConfig } from \"openapi-typescript-fetch/types\";\nimport type { paths } from \"./types.mjs\";\nimport { normalizeEnvironmentName } from \"./utils.mjs\";\n\nexport type { ApiError };\nexport type { paths };\n\nconst PlaytApiClient = ({\n\tapiKey,\n\tapiUrl,\n}: {\n\tapiKey: string;\n\tapiUrl: string;\n}) => {\n\tconst fetcher = Fetcher.for<paths>();\n\tconst config: FetchConfig = {\n\t\tbaseUrl: apiUrl,\n\t\tuse: [],\n\t};\n\tif (typeof apiKey !== \"undefined\") {\n\t\tconfig.init = {\n\t\t\theaders: {\n\t\t\t\tAuthorization: `Bearer ${apiKey}`,\n\t\t\t\t\"User-Agent\": `playt-client/${process.env.npm_package_version}`,\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t},\n\t\t};\n\t}\n\tfetcher.configure(config);\n\n\tconst initialize = async ({ gameVersion }: { gameVersion: string }) => {\n\t\tconst sentryConfigResp = await fetcher\n\t\t\t.path(\"/api/games/self/sentry-config\")\n\t\t\t.method(\"get\")\n\t\t\t.create()({});\n\t\tif (!sentryConfigResp.ok) {\n\t\t\tconsole.error(\n\t\t\t\t\"Failed to fetch Sentry config, error tracking will not work\",\n\t\t\t);\n\t\t}\n\t\tSentry.init({\n\t\t\t...sentryConfigResp.data,\n\t\t\tdsn: sentryConfigResp.data.dsn ?? undefined,\n\t\t\trelease: gameVersion,\n\t\t\tenvironment: normalizeEnvironmentName(new URL(apiUrl)),\n\t\t\tintegrations: [\n\t\t\t\tnew Sentry.Integrations.Http({ tracing: true }),\n\t\t\t\tnew Sentry.Integrations.OnUncaughtException(),\n\t\t\t\tnew Sentry.Integrations.OnUnhandledRejection(),\n\t\t\t\tnew CaptureConsole(sentryConfigResp.data.integrations?.captureConsole),\n\t\t\t],\n\t\t});\n\t};\n\n\tconst searchMatch = fetcher\n\t\t.path(\"/api/matches/search\")\n\t\t.method(\"post\")\n\t\t.create();\n\tconst submitScore = fetcher\n\t\t.path(\"/api/matches/scores\")\n\t\t.method(\"post\")\n\t\t.create();\n\tconst submitReplay = fetcher.path(\"/api/replays\").method(\"post\").create();\n\tconst getReplay = fetcher.path(\"/api/replays\").method(\"get\").create();\n\n\tconst submitScoreWithTimestamp = ({\n\t\ttimestamp = new Date().toISOString(),\n\t\t...args\n\t}: Omit<Parameters<typeof submitScore>[0], \"timestamp\"> & {\n\t\ttimestamp?: string;\n\t}) => submitScore({ timestamp, ...args });\n\n\tconst submitAchievements = (payload: {\n\t\tachievements: `achievement-${number}`[];\n\t\tplayerToken: string;\n\t}) =>\n\t\tfetcher.path(\"/api/matches/achievements\").method(\"post\").create()(payload);\n\n\treturn {\n\t\tinitialize,\n\t\tfetcher,\n\t\tsearchMatch,\n\t\tsubmitScore: submitScoreWithTimestamp,\n\t\tsubmitAchievements,\n\t\tsubmitReplay,\n\t\tgetReplay,\n\t};\n};\nexport default PlaytApiClient;\n","// src/types.ts\nvar never = Symbol();\nvar ApiError = class extends Error {\n headers;\n url;\n status;\n statusText;\n data;\n constructor(response) {\n super(response.statusText);\n Object.setPrototypeOf(this, new.target.prototype);\n this.headers = response.headers;\n this.url = response.url;\n this.status = response.status;\n this.statusText = response.statusText;\n this.data = response.data;\n }\n};\n\n// src/fetcher.ts\nvar sendBody = (method) => method === \"post\" || method === \"put\" || method === \"patch\" || method === \"delete\";\nfunction queryString(params) {\n const qs = [];\n const encode = (key, value) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`;\n Object.keys(params).forEach((key) => {\n const value = params[key];\n if (value != null) {\n if (Array.isArray(value)) {\n value.forEach((value2) => qs.push(encode(key, value2)));\n } else {\n qs.push(encode(key, value));\n }\n }\n });\n if (qs.length > 0) {\n return `?${qs.join(\"&\")}`;\n }\n return \"\";\n}\nfunction getPath(path, payload) {\n return path.replace(/\\{([^}]+)\\}/g, (_, key) => {\n const value = encodeURIComponent(payload[key]);\n delete payload[key];\n return value;\n });\n}\nfunction getQuery(method, payload, query) {\n let queryObj = {};\n if (sendBody(method)) {\n query.forEach((key) => {\n queryObj[key] = payload[key];\n delete payload[key];\n });\n } else {\n queryObj = { ...payload };\n }\n return queryString(queryObj);\n}\nfunction getHeaders(body, init) {\n const headers = new Headers(init);\n if (body !== void 0 && !headers.has(\"Content-Type\")) {\n headers.append(\"Content-Type\", \"application/json\");\n }\n if (!headers.has(\"Accept\")) {\n headers.append(\"Accept\", \"application/json\");\n }\n return headers;\n}\nfunction getBody(method, payload) {\n const body = sendBody(method) ? JSON.stringify(payload) : void 0;\n return method === \"delete\" && body === \"{}\" ? void 0 : body;\n}\nfunction mergeRequestInit(first, second) {\n const headers = new Headers(first?.headers);\n const other = new Headers(second?.headers);\n for (const key of other.keys()) {\n const value = other.get(key);\n if (value != null) {\n headers.set(key, value);\n }\n }\n return { ...first, ...second, headers };\n}\nfunction getFetchParams(request) {\n const payload = Object.assign(\n Array.isArray(request.payload) ? [] : {},\n request.payload\n );\n const path = getPath(request.path, payload);\n const query = getQuery(request.method, payload, request.queryParams);\n const body = getBody(request.method, payload);\n const headers = getHeaders(body, request.init?.headers);\n const url = request.baseUrl + path + query;\n const init = {\n ...request.init,\n method: request.method.toUpperCase(),\n headers,\n body\n };\n return { url, init };\n}\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n if (response.status === 204) {\n return void 0;\n }\n if (contentType && contentType.indexOf(\"application/json\") !== -1) {\n return await response.json();\n }\n const text = await response.text();\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\nasync function fetchJson(url, init) {\n const response = await fetch(url, init);\n const data = await getResponseData(response);\n const result = {\n headers: response.headers,\n url: response.url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n data\n };\n if (result.ok) {\n return result;\n }\n throw new ApiError(result);\n}\nfunction wrapMiddlewares(middlewares, fetch2) {\n const handler = async (index, url, init) => {\n if (middlewares == null || index === middlewares.length) {\n return fetch2(url, init);\n }\n const current = middlewares[index];\n return await current(\n url,\n init,\n (nextUrl, nextInit) => handler(index + 1, nextUrl, nextInit)\n );\n };\n return (url, init) => handler(0, url, init);\n}\nasync function fetchUrl(request) {\n const { url, init } = getFetchParams(request);\n const response = await request.fetch(url, init);\n return response;\n}\nfunction createFetch(fetch2) {\n const fun = async (payload, init) => {\n try {\n return await fetch2(payload, init);\n } catch (err) {\n if (err instanceof ApiError) {\n throw new fun.Error(err);\n }\n throw err;\n }\n };\n fun.Error = class extends ApiError {\n constructor(error) {\n super(error);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n getActualType() {\n return {\n status: this.status,\n data: this.data\n };\n }\n };\n return fun;\n}\nfunction fetcher() {\n let baseUrl = \"\";\n let defaultInit = {};\n const middlewares = [];\n const fetch2 = wrapMiddlewares(middlewares, fetchJson);\n return {\n configure: (config) => {\n baseUrl = config.baseUrl || \"\";\n defaultInit = config.init || {};\n middlewares.splice(0);\n middlewares.push(...config.use || []);\n },\n use: (mw) => middlewares.push(mw),\n path: (path) => ({\n method: (method) => ({\n create: (queryParams) => createFetch(\n (payload, init) => fetchUrl({\n baseUrl: baseUrl || \"\",\n path,\n method,\n queryParams: Object.keys(queryParams || {}),\n payload,\n init: mergeRequestInit(defaultInit, init),\n fetch: fetch2\n })\n )\n })\n })\n };\n}\nvar Fetcher = {\n for: () => fetcher()\n};\n\n// src/utils.ts\nfunction arrayRequestBody(array, params) {\n return Object.assign([...array], params);\n}\nexport {\n ApiError,\n Fetcher,\n arrayRequestBody\n};\n","import slugify from \"slugify\";\nslugify.extend({\n\t\"/\": \"-\",\n\t\".\": \"-\",\n\t\":\": \"-\",\n});\n\nexport const normalizeEnvironmentName = (url: URL) => {\n\treturn slugify(url.origin + url.pathname, {\n\t\tlower: true,\n\t\tstrict: true,\n\t\treplacement: \"-\",\n\t});\n};\n"],"mappings":"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","names":["init","slugify","fetcher"]}