diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..1fd8a55
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,56 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+ branches:
+ - main
+
+env:
+ PUBG_API_KEY: ${{secrets.PUBG_API_KEY}}
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ node-version: [14.x, 16.x]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
+ - name: Use Node.js ${{ matrix.node-version }}
+ uses: actions/setup-node@v1
+ with:
+ node-version: ${{ matrix.node-version }}
+
+ - name: Install
+ run: yarn install --frozen-lock
+
+ - name: Build
+ run: yarn build
+
+ test:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ node-version: [14.x, 16.x]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
+ - name: Use Node.js ${{ matrix.node-version }}
+ uses: actions/setup-node@v1
+ with:
+ node-version: ${{ matrix.node-version }}
+
+ - name: Install
+ run: yarn install --frozen-lock
+
+ - name: Build
+ run: yarn build:prod
+
+ - name: Test
+ run: yarn test
diff --git a/README.md b/README.md
index 7bdbc03..6973ae9 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,6 @@
- ❗ Stirctly typed
- ⚡ Request batching
- ✍️ Verbose documentation
-- 🪝 Hooks support
- ⚠️ Error handling
## 🚀 Install
@@ -58,73 +57,111 @@ You'll first need to [sign up on the PUBG developer API site](https://developer.
With an account created, you can [create a new developer application](https://developer.playbattlegrounds.com/apps/new?locale=en) that will provide you with your API key.
-### Make something!
+### Basic
-Here's a few small examples of what you can do with this library
+As a basic example here's how to fetch player data:
```typescript
-import { Client, Shard } from "pubg.ts";
+import { getPlayer } from "pubg.ts";
-const client = new Client({
- apiKey: "your_key_goes_here",
- shard: Shard.STEAM, // Optional (Default: Steam)
+const { data, error } = await getPlayer({
+ value: "YOUR_NAME_HERE",
});
-// Get a single or multiple player(s) using their name or ID
-const { data: player } = await api.getPlayer({
- skipFailed: false, // Optional: fail silently (Default: false)
- value: "single_name_or_id_or_array_of_such",
-});
+console.log({ data, error });
+```
+
+## 📕 Documentation
+
+Here is a breakdown of all modules that the package provides & how to use them:
+
+
+ Match
+
+ ## Match
+
+Get a match from a specificed match id.
+
+---
-// Fetch a data from a single match
-const { data: match } = await client.getMatch({
+Get started using the module function:
+
+```typescript
+import { getMatch } from "pubg.ts";
+
+const { data, error } = await getMatch({
+ apiKey: "...",
id: "a036c694-be29-4dea-833d-b6ff84323de7",
});
+```
-// Get the current active season
-const { data: activeSeason } = await client.getSeason();
+Or using the client:
+
+```typescript
+import { Client } from "pubg.ts";
+
+const client = new Client({
+ apiKey: "...",
+});
-// Get season stats for a specific player
-const { data: playerSeason } = await client.getPlayerSeason({
- player: player.id,
- season: activeSeason,
- ranked: false, // Optionally gets stats for ranked gamemodes
+const { data, error } = await getMatch({
+ id: "a036c694-be29-4dea-833d-b6ff84323de7",
});
```
-Using individual fetchers
+
+
+
+ Player
+
+ ## Player
+
+Get player(s) by a given name(s) or id(s).
+
+---
+
+Get started using the module function:
```typescript
-import { Shard, getPlayer, getMatch, getSeason } from "pubg.ts";
-
-// Get a single or multiple player(s) using their name or ID
-const { data: player } = await getPlayer({
- apiKey: "your_key_goes_here",
- shard: Shard.STEAM, // Optional: for all hooks (Default: Steam)
- skipFailed: false, // Optional: fail silently (Default: false)
- value: "single_name_or_id_or_array_of_such",
+import { getPlayer } from "pubg.ts";
+
+// Using a player name
+const { data, error } = await getPlayer({
+ apiKey: "...",
+ value: "YOUR_NAME_HERE",
});
-// Fetch a data from a single match
-const { data: match } = await getMatch({
- apiKey: "your_key_goes_here",
- id: "a036c694-be29-4dea-833d-b6ff84323de7",
+// Using a player ID
+const { data, error } = await getPlayer({
+ apiKey: "...",
+ id: true,
+ value: "account.ABC123",
});
+```
+
+Or using the client:
+
+```typescript
+import { Client } from "pubg.ts";
-// Get the current active season
-const { data: activeSeason } = await getSeason({
- apiKey: "your_key_goes_here",
+const client = new Client({
+ apiKey: "...",
+});
+
+// Using a player name
+const { data, error } = await getPlayer({
+ value: "YOUR_NAME_HERE",
});
-// Get season stats for a specific player
-const { data: playerSeason } = await getPlayerSeason({
- apiKey: "your_key_goes_here",
- player: player.id,
- season: activeSeason,
- ranked: false, // Optionally gets stats for ranked gamemodes
+// Using a player ID
+const { data, error } = await getPlayer({
+ id: true,
+ value: "account.ABC123",
});
```
+
+
## ❤️ Credits
- [ickerio](https://github.com/ickerio): This project was heavily inspired by [pubg.js](https://github.com/ickerio/pubg.js)
diff --git a/example/index.html b/example/index.html
deleted file mode 100644
index 3a0d8ee..0000000
--- a/example/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
- PUBG.ts
-
-
-
-
-
-
diff --git a/example/public/favicon.png b/example/public/favicon.png
deleted file mode 100644
index f7b0197..0000000
Binary files a/example/public/favicon.png and /dev/null differ
diff --git a/example/src/App.vue b/example/src/App.vue
deleted file mode 100644
index 33077ae..0000000
--- a/example/src/App.vue
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 🐔
-
-
-
- A lightweight PUBG TypeScript API
-
-
-
-
-
-
-
-
-
-
-
diff --git a/example/src/components/Button.vue b/example/src/components/Button.vue
deleted file mode 100644
index 5f0c7ed..0000000
--- a/example/src/components/Button.vue
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/example/src/env.d.ts b/example/src/env.d.ts
deleted file mode 100644
index 2da5596..0000000
--- a/example/src/env.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-///
-
-declare module "*.vue" {
- import { DefineComponent } from "vue";
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
- const component: DefineComponent<{}, {}, any>;
- export default component;
-}
diff --git a/example/src/main.ts b/example/src/main.ts
deleted file mode 100644
index 49009a5..0000000
--- a/example/src/main.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { createApp } from "vue";
-
-import "virtual:windi.css";
-
-import App from "./App.vue";
-
-createApp(App).mount("#app");
diff --git a/example/vite.config.ts b/example/vite.config.ts
deleted file mode 100644
index bad8419..0000000
--- a/example/vite.config.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { defineConfig } from "vite";
-import { join } from "path";
-import Vue from "@vitejs/plugin-vue";
-import WindiCSS from "vite-plugin-windicss";
-import WindiCSSColors from "windicss/colors";
-import WindiCSSPluginFilters from "windicss/plugin/filters";
-
-export default defineConfig({
- envDir: join(process.cwd()),
- plugins: [
- Vue(),
- WindiCSS({
- config: {
- darkMode: "class",
- plugins: [WindiCSSPluginFilters],
- theme: {
- extend: {
- colors: {
- gray: WindiCSSColors.trueGray,
- },
- },
- },
- },
- }),
- ],
-});
diff --git a/package.json b/package.json
index 21dc633..1415562 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "pubg.ts",
- "version": "0.1.7",
+ "version": "1.1.0",
"description": "A lightweight PUBG TypeScript API Wrapper",
"repository": {
"type": "git",
@@ -28,29 +28,54 @@
"LICENSE",
"README.md"
],
+ "exports": {
+ ".": {
+ "import": "./dist/index.mjs",
+ "require": "./dist/index.js",
+ "types": "./dist/index.d.ts"
+ },
+ "./constants": {
+ "import": "./dist/constants.mjs",
+ "require": "./dist/constants.js",
+ "types": "./dist/constants.d.ts"
+ },
+ "./types": {
+ "import": "./dist/types.mjs",
+ "require": "./dist/types.js",
+ "types": "./dist/types.d.ts"
+ }
+ },
+ "typesVersions": {
+ "*": {
+ "constants": [
+ "./dist/constants.d.ts"
+ ],
+ "types": [
+ "./dist/types.d.ts"
+ ]
+ }
+ },
"scripts": {
- "dev": "npm run build -- --watch",
+ "coverage": "vitest run --coverage",
+ "dev": "yarn build --watch",
"build": "rimraf dist && tsup",
- "build:prod": "cross-env NODE_ENV=production npm run build",
- "example:build": "vite build ./example/",
- "example:dev": "vite ./example/",
- "example:preview": "vite preview ./example/"
+ "build:prod": "cross-env NODE_ENV=production yarn build",
+ "test": "vitest run",
+ "test:watch": "vitest watch",
+ "test:ui": "vitest watch --ui"
+ },
+ "dependencies": {
+ "axios": "^0.27.2"
},
"devDependencies": {
- "@heroicons/vue": "^1.0.4",
- "@types/node": "^16.10.2",
- "@vitejs/plugin-vue": "^1.9.2",
- "@vueuse/core": "^6.5.3",
+ "@types/node": "^17.0.41",
+ "@vitest/ui": "^0.14.2",
+ "c8": "^7.11.3",
"cross-env": "^7.0.3",
+ "dotenv": "^16.0.1",
"rimraf": "^3.0.2",
- "tsup": "^5.3.0",
- "typescript": "^4.4.3",
- "vite": "^2.6.2",
- "vite-plugin-windicss": "^1.4.9",
- "vue": "^3.2.19",
- "windicss": "^3.1.9"
- },
- "dependencies": {
- "axios": "^0.22.0"
+ "tsup": "^6.1.0",
+ "typescript": "^4.7.3",
+ "vitest": "^0.14.2"
}
}
diff --git a/src/client.ts b/src/client.ts
index 5413cfe..868560a 100644
--- a/src/client.ts
+++ b/src/client.ts
@@ -1,27 +1,8 @@
-import {
- getMatch,
- getPlayer,
- getPlayerSeason,
- getSamples,
- getSeason,
- getSeasons,
- getStatus,
- getTelemetry,
- getTournament,
- getTournaments,
-} from ".";
-import { ErrorCode, Shard } from "./types";
+import { getMatch, getPlayer } from "~/modules";
+import { ErrorCode, Shard } from "~/types";
-import type {
- MatchOptions,
- PlayerOptions,
- PlayerSeasonOptions,
- SamplesOptions,
- SeasonOptions,
- TelemetryOptions,
- TournamentOptions,
-} from ".";
-import type { WithApiShard } from "./types/util";
+import type { MatchOptions, PlayerOptions } from "~/modules";
+import type { WithApiShard } from "~/util/types";
interface ClientOptions extends WithApiShard {}
@@ -30,8 +11,11 @@ type ClientFnOptions = Omit;
export class Client {
/**
* PUBG Developer API access token
+ *
+ * @see https://documentation.pubg.com/en/api-keys.html#api-keys
*/
private _apiKey: string;
+
/**
* Default shard to get if none provided in methods
*/
@@ -53,125 +37,35 @@ export class Client {
}
/**
- * Get a match from a match id
+ * @name `getMatch`
*
- * @param {Object} options - Match Options
- * @param {string} options.id - Match ID
- */
- public async getMatch({ id }: ClientFnOptions) {
- return await getMatch({
- apiKey: this._apiKey,
- id,
- shard: this._shard,
- });
- }
-
- /**
- * Get player by the given id or name
+ * @description Get a match from a match id
*
- * @param {Object} options - Player Options
- * @param {boolean} [options.id] - Whether the provided value(s) are ID's, not player names
- * @param {string | Array} options.value - Player or array of players to fetch
+ * @param {String} options.id - Match ID
*/
- public async getPlayer({
- id,
- skipFailed,
- value,
- }: ClientFnOptions) {
- return await getPlayer({
+ public getMatch({ id }: ClientFnOptions) {
+ return getMatch({
apiKey: this._apiKey,
id,
shard: this._shard,
- skipFailed,
- value,
});
}
/**
- * Get data for a single season of a player(s) by a given id or name
+ * @name `getPlayer`
*
- * @param {Object} options - Player Season Options
- */
- public async getPlayerSeason(options: ClientFnOptions) {
- return await getPlayerSeason({
- apiKey: this._apiKey,
- shard: this._shard,
- ...options,
- });
- }
-
- /**
- * Get a list of all past matches from the api
- *
- * @param {Object} options - Samples Options
- * @param {Date | undefined} [options.createdAt] - The starting search date for the matches in UTC
- */
- public async getSamples({ createdAt }: ClientFnOptions = {}) {
- return await getSamples({
- apiKey: this._apiKey,
- createdAt,
- shard: this._shard,
- });
- }
-
- /**
- * Get data on a specified season. Whether current or a player(s)
- * By default will fetch the current season
+ * @description Get player by the given id or name
*
- * @param {Object} options - Season Options
- * @param {string | undefined} [options.id] - Season ID
+ * @param {Boolean} [options.id] - Whether the provided value(s) are ID's, not player names
+ * @param {Array} options.value - Player or array of players to fetch
*/
- public async getSeason({ id }: ClientFnOptions = {}) {
- return await getSeason({
+ public getPlayer({ id, skipFailed, value }: ClientFnOptions) {
+ return getPlayer({
apiKey: this._apiKey,
id,
shard: this._shard,
- });
- }
-
- /**
- * Get an array of all seasons
- */
- public async getSeasons() {
- return await getSeasons({
- apiKey: this._apiKey,
- shard: this._shard,
- });
- }
-
- /**
- * Gets the status of the API
- */
- public async getStatus() {
- return await getStatus({
- apiKey: this._apiKey,
- });
- }
-
- /**
- * Fetches telemetry data object
- *
- * @param {Object} options - Telemetry Options
- * @param {string} options.url - URL of the telemetry object
- */
- public async getTelemetry({ url }: ClientFnOptions) {
- return await getTelemetry({
- apiKey: this._apiKey,
- url,
- });
- }
-
- /**
- * Gets all or a specific tournament with a provided id
- *
- * @param {Object} options - Tournament Options
- * @param {string | undefined} [options.id] - Tournament ID
- */
- public async getTournament({ id }: ClientFnOptions = {}) {
- if (id) return await getTournament({ apiKey: this._apiKey, id });
-
- return await getTournaments({
- apiKey: this._apiKey,
+ skipFailed,
+ value,
});
}
}
diff --git a/src/endpoints/getPlayerSeason.ts b/src/endpoints/getPlayerSeason.ts
deleted file mode 100644
index 67d4513..0000000
--- a/src/endpoints/getPlayerSeason.ts
+++ /dev/null
@@ -1,132 +0,0 @@
-import { ResponseObjectType } from "..";
-import { chunkify, fetch, fetchAll } from "../util";
-
-import type {
- ApiPlayerSeason,
- BaseResponse,
- GameModeStatGamemode,
- PlayerSeason,
- PromiseResult,
- Season,
-} from "..";
-import type { WithApiShard } from "../types/util";
-
-export interface PlayerSeasonOptions extends WithApiShard {
- /**
- * Gamemode type
- */
- gamemode: GameModeStatGamemode;
-
- /**
- * Player object or id
- */
- player: string | Array;
-
- /**
- * Fetch player ranked statistics
- */
- ranked?: boolean;
-
- /**
- * Season object or id
- */
- season: Season | string;
-}
-
-interface ApiPlayerSeasonResponse extends BaseResponse {
- /**
- * A players stats & season data
- *
- * @see https://documentation.pubg.com/en/seasons-endpoint.html#/Season_Stats
- */
- data: ApiPlayerSeason;
-}
-
-export type PlayerSeasonResponse = PromiseResult<
- PlayerSeason | Array
->;
-
-/**
- * Get data for a single season of a player(s) by a given id or name
- *
- * @param {Object} options - Player Season Options
- * @param {string} options.apiKey - PUBG Developer API key
- * @param {string | undefined} [options.shard] - Platform Shard
- */
-export async function getPlayerSeason({
- gamemode,
- player,
- ranked = false,
- season,
- ...rest
-}: PlayerSeasonOptions): PlayerSeasonResponse {
- const seasonId = typeof season === "object" ? season.id : season;
-
- if (ranked)
- return {
- data: null,
- error: {
- title: "Unimplemented",
- detail: "Ranked player season stats are currently not supported",
- },
- };
-
- if (Array.isArray(player)) {
- const fetchOptions = chunkify(player).map((chunk) => ({
- ...rest,
- endpoint: `seasons/${seasonId}/gameMode/${gamemode}/players`,
- params: {
- ["filter[playerIds]"]: chunk.join(","),
- },
- }));
-
- const responses = await fetchAll(fetchOptions);
-
- const error = responses.find((res) => res.error !== null);
- if (error && error.error) return error;
-
- const data = responses.map(({ data }) => data!.data).flat();
-
- return {
- data: data.map((d) => handlePlayerSeasonData(d)),
- error: null,
- };
- }
-
- const response = await fetch({
- ...rest,
- endpoint: `players/${player}/seasons/${seasonId}`,
- });
-
- if (response.error) return response;
-
- return {
- data: handlePlayerSeasonData(response.data.data),
- error: null,
- };
-}
-
-function handlePlayerSeasonData(data: ApiPlayerSeason): PlayerSeason {
- switch (data.type) {
- case ResponseObjectType.PLAYER_SEASON:
- return {
- bestRankPoint: data.attributes.bestRankPoint ?? undefined,
- gamemodeStats: data.attributes.gameModeStats,
- matches: Object.fromEntries(
- Object.entries(data.relationships).map(([key, value]) =>
- key === "player" || key === "season" ? [] : [key, value]
- )
- ),
- playerId: data.relationships.player.data.id,
- seasonId: data.relationships.season.data.id,
- type: data.type,
- };
- case ResponseObjectType.RANKED_PLAYER_SEASON:
- return {
- playerId: data.relationships.player.data.id,
- rankedGameModeStats: data.attributes.rankedGameModeStats,
- seasonId: data.relationships.season.data.id,
- type: data.type,
- };
- }
-}
diff --git a/src/endpoints/getSamples.ts b/src/endpoints/getSamples.ts
deleted file mode 100644
index c417e7a..0000000
--- a/src/endpoints/getSamples.ts
+++ /dev/null
@@ -1,96 +0,0 @@
-import { fetch } from "../util";
-
-import type {
- ApiSampleMatches,
- PromiseResult,
- Sample,
- SampleMatches,
-} from "..";
-import type { WithApiShard } from "../types/util";
-
-export interface SamplesOptions extends WithApiShard {
- /**
- * The starting search date for the matches in UTC
- *
- * @default now() - 24hrs
- */
- createdAt?: Date;
-}
-
-interface ApiSamplesResponse {
- data: {
- /**
- * Sample specific attributes / metadata
- *
- * @see https://documentation.pubg.com/en/samples-endpoint.html
- */
- attributes: Sample;
-
- /**
- * ID of the sample
- */
- id: string;
-
- /**
- * References to resource objects related to this sample
- */
- relationships: {
- matches: ApiSampleMatches;
- };
- };
-}
-
-/**
- * @see https://documentation.pubg.com/en/samples-endpoint.html
- */
-export type SamplesResponse = PromiseResult<
- Sample & {
- /**
- * ID of the sample
- */
- id: string;
-
- /**
- *
- */
- matches: SampleMatches;
- }
->;
-
-/**
- * Get a list of all past matches from the api
- *
- * @param {Object} options - Sample Options
- * @param {string} options.apiKey - PUBG Developer API key
- * @param {Date | undefined} options.createdAt - The starting search date for the matches in UTC
- * @param {string | undefined} [options.shard] - Platform Shard
- */
-export async function getSamples({
- apiKey,
- createdAt,
- shard,
-}: SamplesOptions): SamplesResponse {
- const response = await fetch({
- apiKey,
- endpoint: "samples",
- params: createdAt
- ? {
- "filter[createdAt-start]": createdAt.toISOString(),
- }
- : undefined,
- shard,
- });
-
- if (response.error) return response;
-
- const { data } = response.data;
-
- return {
- data: {
- ...data.attributes,
- id: data.id,
- matches: data.relationships.matches.data,
- },
- error: null,
- };
-}
diff --git a/src/endpoints/getSeason.ts b/src/endpoints/getSeason.ts
deleted file mode 100644
index 2bd7d17..0000000
--- a/src/endpoints/getSeason.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-import { getSeasons } from ".";
-
-import type { PromiseResult, Season } from "..";
-import type { WithApiShard } from "../types/util";
-
-export interface SeasonOptions extends WithApiShard {
- /**
- * Season ID
- */
- id?: string;
-}
-
-export type SeasonResponse = PromiseResult;
-
-/**
- * Get data on a specified season. Whether current or a player(s)
- *
- * By default will fetch the current season
- *
- * @param {Object} options - Season Options
- * @param {string} options.apiKey - PUBG Developer API key
- * @param {string | undefined} [options.id] - Season ID
- * @param {string | undefined} [options.shard] - Platform Shard
- */
-export async function getSeason({
- id,
- ...rest
-}: SeasonOptions): SeasonResponse {
- // TODO: Pass through override error code
- const seasons = await getSeasons({
- ...rest,
- });
-
- if (seasons.error) return seasons;
-
- return {
- data: seasons.data.find((season) =>
- id ? id === season.id : season.isCurrentSeason
- ),
- error: null,
- };
-}
diff --git a/src/endpoints/getSeasons.ts b/src/endpoints/getSeasons.ts
deleted file mode 100644
index f105b7b..0000000
--- a/src/endpoints/getSeasons.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-import { fetch } from "../util";
-
-import type { ApiSeason, BaseResponse, PromiseResult, Season } from "..";
-import type { WithApiShard } from "../types/util";
-
-export interface SeasonsOptions extends WithApiShard {}
-
-interface ApiSeasonsResponse extends BaseResponse {
- /**
- * An array of available seasons
- *
- * @see https://documentation.pubg.com/en/seasons-endpoint.html
- */
- data: Array;
-}
-
-/**
- * An promised array of available seasons
- *
- * @see https://documentation.pubg.com/en/seasons-endpoint.html
- */
-export type SeasonsResponse = PromiseResult>;
-
-/**
- * Get an array of all seasons of a provided shard
- *
- * @param {Object} options - Seasons Options
- * @param {string} options.apiKey - PUBG Developer API key
- * @param {string | undefined} [options.shard] - Platform Shard
- */
-export async function getSeasons(options: SeasonsOptions): SeasonsResponse {
- const response = await fetch({
- ...options,
- endpoint: "seasons",
- });
-
- if (response.error) return response;
-
- const { data } = response.data;
-
- return {
- data: data.map(({ attributes, id, type }) => ({
- id,
- isCurrentSeason: attributes.isCurrentSeason,
- isOffseason: attributes.isOffseason,
- type,
- })),
- error: null,
- };
-}
diff --git a/src/endpoints/getStatus.ts b/src/endpoints/getStatus.ts
deleted file mode 100644
index 6bc4fda..0000000
--- a/src/endpoints/getStatus.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { fetch } from "../util";
-
-import type { ResponseObjectType, PromiseResult } from "..";
-import type { WithApiKey } from "../types/util";
-
-export interface StatusOptions extends WithApiKey {}
-
-interface ApiStatusResponse {
- /**
- * The current status of the API
- *
- * @see https://documentation.pubg.com/en/samples-endpoint.html
- */
- data: {
- id: string;
- type: ResponseObjectType.STATUS;
- };
-}
-
-/**
- * The current status of the API
- *
- * @see https://documentation.pubg.com/en/samples-endpoint.html
- */
-export type StatusResponse = PromiseResult<{
- id: string;
- type: ResponseObjectType.STATUS;
-}>;
-
-/**
- * Gets the status of the API
- *
- * @param {Object} options - Status Options
- * @param {string} options.apiKey - PUBG Developer API key
- */
-export async function getStatus({ apiKey }: StatusOptions): StatusResponse {
- const response = await fetch({
- apiKey,
- endpoint: "status",
- root: true,
- });
-
- if (response.error) return response;
-
- return {
- data: response.data.data,
- error: null,
- };
-}
diff --git a/src/endpoints/getTelemetry.ts b/src/endpoints/getTelemetry.ts
deleted file mode 100644
index d2b0e26..0000000
--- a/src/endpoints/getTelemetry.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import axios from "axios";
-
-import { BASE_HEADERS } from "../constants";
-
-import type { AxiosResponse } from "axios";
-
-import type { BaseResponse, Telemetry } from "..";
-import type { WithApiKey } from "../types/util";
-
-export interface TelemetryOptions extends WithApiKey {
- /**
- * URL of the telemetry object
- */
- url: string;
-}
-
-interface ApiTelemetryResponse extends BaseResponse {}
-
-export type TelemetryResponse = Promise;
-
-/**
- * Fetches telemetry data from a provided URL
- *
- * @param {Object} options - Telemetry Options
- * @param {string} options.apiKey - PUBG Developer API key
- * @param {string | undefined} [options.shard] - Platform Shard
- * @param {string} options.url - URL of the telemetry object
- */
-export async function getTelemetry({
- apiKey,
- url,
-}: TelemetryOptions): TelemetryResponse {
- const response: AxiosResponse = await axios(url, {
- headers: {
- ...BASE_HEADERS,
- Authorization: `Bearer ${apiKey}`,
- },
- responseType: "json",
- });
-
- if ("error" in response) return response;
-
- return response.data;
-}
diff --git a/src/endpoints/getTournament.ts b/src/endpoints/getTournament.ts
deleted file mode 100644
index 969c11c..0000000
--- a/src/endpoints/getTournament.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-import { fetch } from "../util";
-
-import type {
- ApiTournament,
- BaseResponse,
- ApiMatch,
- PromiseResult,
- Tournament,
- Tournaments,
-} from "..";
-import type { WithApiKey } from "../types/util";
-
-export interface TournamentOptions extends WithApiKey {
- /**
- * Tournament ID
- */
- id?: string;
-}
-
-interface ApiTournamentResponse extends BaseResponse {
- /**
- * Data about a specified tournament
- *
- * @see https://documentation.pubg.com/en/tournaments-endpoint.html
- */
- data: ApiTournament;
-
- /**
- * Matches related to the selected tournament
- */
- included: Array>;
-}
-
-export type TournamentResponse = PromiseResult>;
-
-/**
- * Gets a specific tournament using a provided match id
- *
- * @param {Object} options - Tournament Options
- * @param {string} options.apiKey - PUBG Developer API key
- * @param {string} options.id - Tournament ID
- */
-export async function getTournament({
- apiKey,
- id,
-}: TournamentOptions): TournamentResponse {
- const response = await fetch({
- apiKey,
- endpoint: `tournaments/${id}`,
- root: true,
- });
-
- if (response.error) return response;
-
- const { data, included } = response.data;
-
- return {
- data: {
- ...data,
- matches: included,
- },
- error: null,
- };
-}
diff --git a/src/endpoints/getTournaments.ts b/src/endpoints/getTournaments.ts
deleted file mode 100644
index bbc9ee9..0000000
--- a/src/endpoints/getTournaments.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { fetch } from "../util";
-
-import type {
- ApiTournaments,
- BaseResponse,
- PromiseResult,
- Tournament,
- Tournaments,
-} from "..";
-import type { WithApiKey } from "../types/util";
-
-export interface TournamentsOptions extends WithApiKey {}
-
-interface ApiTournamentsResponse extends BaseResponse {
- /**
- * @see https://documentation.pubg.com/en/tournaments-endpoint.html
- */
- data: Array;
-}
-
-export type TournamentsResponse = PromiseResult<
- Tournament | Array
->;
-
-/**
- * Gets all tournaments
- */
-export async function getTournaments({
- apiKey,
-}: TournamentsOptions): TournamentsResponse {
- const response = await fetch({
- apiKey,
- endpoint: "tournaments",
- root: true,
- });
-
- if (response.error) return response;
-
- const { data } = response.data;
-
- return {
- data: data.map(({ attributes, id, type }) => ({
- createdAt: attributes.createdAt,
- id,
- type,
- })),
- error: null,
- };
-}
diff --git a/src/endpoints/index.ts b/src/endpoints/index.ts
deleted file mode 100644
index 1007097..0000000
--- a/src/endpoints/index.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-export * from "./getMatch";
-export * from "./getPlayer";
-export * from "./getPlayerSeason";
-export * from "./getSamples";
-export * from "./getSeason";
-export * from "./getSeasons";
-export * from "./getStatus";
-export * from "./getTelemetry";
-export * from "./getTournament";
-export * from "./getTournaments";
diff --git a/src/index.ts b/src/index.ts
index 84c864f..e2f07ab 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,4 +1,6 @@
+import * as modules from "./modules";
+
export * from "./client";
-export * from "./endpoints";
+export * from "./modules";
-export * from "./types";
+export default modules;
diff --git a/src/modules/index.ts b/src/modules/index.ts
new file mode 100644
index 0000000..1512251
--- /dev/null
+++ b/src/modules/index.ts
@@ -0,0 +1,2 @@
+export * from "./match";
+export * from "./player";
diff --git a/src/modules/match/index.ts b/src/modules/match/index.ts
new file mode 100644
index 0000000..daadc16
--- /dev/null
+++ b/src/modules/match/index.ts
@@ -0,0 +1,3 @@
+export { getMatch } from "./match.module";
+
+export type { MatchOptions } from "./match.module";
diff --git a/src/endpoints/getMatch.ts b/src/modules/match/match.module.ts
similarity index 59%
rename from src/endpoints/getMatch.ts
rename to src/modules/match/match.module.ts
index f1872ee..301501a 100644
--- a/src/endpoints/getMatch.ts
+++ b/src/modules/match/match.module.ts
@@ -1,19 +1,9 @@
-import { fetch } from "../util";
+import { fetch } from "~/util";
-import type {
- ApiMatch,
- BaseResponse,
- Match,
- Participant,
- PromiseResult,
- Roster,
-} from "..";
-import type { WithApiShard } from "../types/util";
+import type { BaseResponse, Module, Result, WithApiShard } from "~/util/types";
+import type { ApiMatch, Match, Participant, Roster } from "./match.types";
export interface MatchOptions extends WithApiShard {
- /**
- * Match ID
- */
id: string;
}
@@ -33,17 +23,19 @@ interface ApiMatchResponse extends BaseResponse {
included: Array;
}
-export type MatchResponse = PromiseResult;
-
/**
- * Get a match from a specificed match id
+ * @name `getMatch`
*
- * @param {Object} options - Match Options
- * @param {string} options.apiKey - PUBG Developer API key
- * @param {string} options.id - Match ID
- * @param {string | undefined} [options.shard] - Platform Shard
+ * @description Get a match from a specificed match id
+ *
+ * @param {String} options.apiKey - PUBG Developer API key
+ * @param {String} options.id - Match ID
+ * @param {String} [options.shard="Steam"] - Platform Shard
*/
-export async function getMatch({ id, ...rest }: MatchOptions): MatchResponse {
+export const getMatch: Module> = async ({
+ id,
+ ...rest
+}) => {
const response = await fetch({
...rest,
endpoint: `matches/${id}`,
@@ -63,4 +55,4 @@ export async function getMatch({ id, ...rest }: MatchOptions): MatchResponse {
},
error: null,
};
-}
+};
diff --git a/src/modules/match/match.test.ts b/src/modules/match/match.test.ts
new file mode 100644
index 0000000..806a224
--- /dev/null
+++ b/src/modules/match/match.test.ts
@@ -0,0 +1,120 @@
+import dotenv from "dotenv";
+import { beforeAll, describe, it, expect } from "vitest";
+
+import { Client } from "~/client";
+import { Gamemode, Shard, Map, MatchType } from "~/types";
+import { getMatch, getPlayer } from "~/modules";
+import { patternMatchUUID, testPlayers } from "~/util/tests";
+import { ResponseObjectType } from "~/util/types";
+
+describe("Get Match", () => {
+ let apiKey: string;
+ let matchIds: Array;
+ let singleMatchId: string;
+
+ beforeAll(async () => {
+ dotenv.config();
+ apiKey = process.env.PUBG_API_KEY;
+
+ const { data: player, error } = await getPlayer({
+ apiKey,
+ id: true,
+ value: testPlayers[0].id,
+ });
+
+ expect(error).toBeNull();
+
+ expect(player).toBeTypeOf("object");
+
+ expect(Array.isArray(player)).toBe(true);
+
+ matchIds = player![0].matches.map(({ id }) => id);
+ singleMatchId = matchIds[0];
+ });
+
+ describe.concurrent("Function", () => {
+ it.concurrent("Single Match", async () => {
+ const { data: match, error } = await getMatch({
+ apiKey,
+ id: singleMatchId,
+ });
+
+ expect(error).toBeNull();
+
+ expect(match).toBeTypeOf("object");
+
+ expect(match).toStrictEqual(
+ expect.objectContaining({
+ assets: expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchUUID),
+ type: "asset",
+ }),
+ ]),
+ id: expect.stringMatching(patternMatchUUID),
+ members: expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchUUID),
+ }),
+ ]),
+ type: ResponseObjectType.MATCH,
+ })
+ );
+
+ expect(match?.gameMode).oneOf(Object.values(Gamemode));
+ expect(match?.mapName).oneOf(Object.values(Map));
+ expect(match?.matchType).oneOf(Object.values(MatchType));
+ expect(match?.shardId).oneOf(Object.values(Shard));
+ });
+ });
+
+ describe.concurrent("Client", () => {
+ let client: Client;
+
+ beforeAll(() => {
+ client = new Client({
+ apiKey,
+ });
+ });
+
+ it.concurrent("Single Match", async () => {
+ const { data: match, error } = await client.getMatch({
+ id: singleMatchId,
+ });
+
+ expect(error).toBeNull();
+
+ expect(match).toBeTypeOf("object");
+
+ expect(match).toStrictEqual(
+ expect.objectContaining({
+ assets: expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchUUID),
+ type: "asset",
+ }),
+ ]),
+ id: expect.stringMatching(patternMatchUUID),
+ members: expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchUUID),
+ }),
+ ]),
+ type: ResponseObjectType.MATCH,
+ })
+ );
+
+ expect(match?.gameMode).oneOf(Object.values(Gamemode));
+ expect(match?.mapName).oneOf(Object.values(Map));
+ expect(match?.matchType).oneOf(Object.values(MatchType));
+ expect(match?.shardId).oneOf(Object.values(Shard));
+ });
+ });
+
+ /**
+ * @todo Add tests with bad data expecting error response
+ * ```
+ * describe.concurrent("Invalid Data", () => {});
+ * ```
+ */
+});
diff --git a/src/types/match.ts b/src/modules/match/match.types.ts
similarity index 98%
rename from src/types/match.ts
rename to src/modules/match/match.types.ts
index ed42a5b..84815bd 100644
--- a/src/types/match.ts
+++ b/src/modules/match/match.types.ts
@@ -1,15 +1,17 @@
import type {
- ApiAssets,
- Assets,
DeathType,
Gamemode,
Map,
MatchType,
- ResponseObjectType,
SeasonState,
Shard,
-} from ".";
-import type { WithLinks } from "./util";
+} from "~/types";
+import type {
+ ApiAssets,
+ Asset,
+ ResponseObjectType,
+ WithLinks,
+} from "~/util/types";
export interface MatchAttributes {
/**
@@ -53,12 +55,12 @@ export interface MatchAttributes {
shardId: Shard;
/**
- * Unknown
+ * @todo Unknown
*/
stats: unknown | null;
/**
- * Unknown
+ * @todo Unknown
*/
tags: unknown | null;
@@ -215,7 +217,7 @@ export interface Participant {
*/
kills: number;
/**
- * Unknown
+ * @todo Unknown
*
* Min: 0
*/
@@ -343,7 +345,7 @@ export interface Match extends Pick, MatchAttributes {
/**
* Any assets a part of the match
*/
- assets: Assets;
+ assets: Array;
/**
* An array of all members (participants/rosters) who took part in the game
*/
diff --git a/src/modules/player/index.ts b/src/modules/player/index.ts
new file mode 100644
index 0000000..e29081d
--- /dev/null
+++ b/src/modules/player/index.ts
@@ -0,0 +1,3 @@
+export { getPlayer } from "./player.module";
+
+export type { PlayerOptions } from "./player.module";
diff --git a/src/endpoints/getPlayer.ts b/src/modules/player/player.module.ts
similarity index 85%
rename from src/endpoints/getPlayer.ts
rename to src/modules/player/player.module.ts
index 00f1c04..b8095b8 100644
--- a/src/endpoints/getPlayer.ts
+++ b/src/modules/player/player.module.ts
@@ -1,7 +1,7 @@
-import { chunkify, fetchAll } from "../util";
+import { chunkify, fetchAll } from "~/util";
-import type { ApiPlayer, BaseResponse, Player, PromiseResult } from "..";
-import type { WithApiShard } from "../types/util";
+import type { BaseResponse, Module, Result, WithApiShard } from "~/util/types";
+import type { ApiPlayer, Player } from "./player.types";
export interface PlayerOptions extends WithApiShard {
/**
@@ -37,14 +37,9 @@ interface ApiPlayerResponse extends BaseResponse {
}
/**
- * Player(s) data & their recent matches (Up to 14 days old)
+ * @name `getPlayer``
*
- * @see https://documentation.pubg.com/en/players-endpoint.html/
- */
-export type PlayerResponse = PromiseResult>;
-
-/**
- * Get player(s) by a given name(s) or id(s)
+ * @description Get player(s) by a given name(s) or id(s)
*
* @param {Object} options - Player Options
* @param {string} options.apiKey - PUBG Developer API key
@@ -52,12 +47,12 @@ export type PlayerResponse = PromiseResult>;
* @param {string | undefined} [options.shard] - Platform Shard
* @param {string | Array} - Player or array of players to fetch
*/
-export async function getPlayer({
+export const getPlayer: Module>> = async ({
id = false,
skipFailed = false,
value,
...rest
-}: PlayerOptions): PlayerResponse {
+}) => {
const isArray = Array.isArray(value);
const endpoint = !isArray && id ? `players/${value}` : "players";
@@ -118,4 +113,4 @@ export async function getPlayer({
})),
error: null,
};
-}
+};
diff --git a/src/modules/player/player.test.ts b/src/modules/player/player.test.ts
new file mode 100644
index 0000000..a0f75dd
--- /dev/null
+++ b/src/modules/player/player.test.ts
@@ -0,0 +1,284 @@
+import dotenv from "dotenv";
+import { beforeAll, describe, it, expect } from "vitest";
+
+import { Client } from "~/client";
+import { getPlayer } from "~/modules";
+import {
+ patternMatchAccountId,
+ patternMatchUUID,
+ testPlayers,
+} from "~/util/tests";
+import { ResponseObjectType } from "~/util/types";
+import { Shard } from "~/types";
+
+describe("Get Player", () => {
+ let apiKey: string;
+
+ beforeAll(async () => {
+ dotenv.config();
+ apiKey = process.env.PUBG_API_KEY;
+ });
+
+ describe.concurrent("Function", () => {
+ it.concurrent("Single player name", async () => {
+ const { name: playerName, id: playerId } = testPlayers[0];
+
+ const { data: player, error } = await getPlayer({
+ apiKey,
+ id: false,
+ value: playerName,
+ });
+
+ expect(error).toBeNull();
+
+ expect(player).toBeTypeOf("object");
+
+ expect(Array.isArray(player)).toBe(true);
+
+ expect(player).toStrictEqual(
+ expect.arrayContaining([
+ expect.objectContaining({
+ id: playerId,
+ matches: expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchUUID),
+ type: "match",
+ }),
+ ]),
+ name: playerName,
+ type: ResponseObjectType.PLAYER,
+ }),
+ ])
+ );
+
+ expect(player![0]?.shardId).oneOf(Object.values(Shard));
+ });
+
+ it.concurrent("Single player ID", async () => {
+ const { id: playerId, name: playerName } = testPlayers[0];
+
+ const { data: player, error } = await getPlayer({
+ apiKey,
+ id: true,
+ value: playerId,
+ });
+
+ expect(error).toBeNull();
+
+ expect(Array.isArray(player)).toBe(true);
+
+ expect(player).toStrictEqual(
+ expect.arrayContaining([
+ expect.objectContaining({
+ id: playerId,
+ matches: expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchUUID),
+ type: "match",
+ }),
+ ]),
+ name: playerName,
+ type: ResponseObjectType.PLAYER,
+ }),
+ ])
+ );
+
+ expect(player![0]?.shardId).oneOf(Object.values(Shard));
+ });
+
+ it.concurrent("Multiple player names", async () => {
+ const { data: player, error } = await getPlayer({
+ apiKey,
+ id: false,
+ value: testPlayers.map(({ name }) => name),
+ });
+
+ expect(error).toBeNull();
+
+ expect(Array.isArray(player)).toBe(true);
+
+ expect(player).toStrictEqual(
+ expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchAccountId),
+ matches: expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchUUID),
+ type: "match",
+ }),
+ ]),
+ type: ResponseObjectType.PLAYER,
+ }),
+ ])
+ );
+
+ expect(player![0]?.shardId).oneOf(Object.values(Shard));
+ });
+
+ it.concurrent("Multiple player ID's", async () => {
+ const { data: player, error } = await getPlayer({
+ apiKey,
+ id: true,
+ value: testPlayers.map(({ id }) => id),
+ });
+
+ expect(error).toBeNull();
+
+ expect(Array.isArray(player)).toBe(true);
+
+ expect(player).toStrictEqual(
+ expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchAccountId),
+ matches: expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchUUID),
+ type: "match",
+ }),
+ ]),
+ type: ResponseObjectType.PLAYER,
+ }),
+ ])
+ );
+
+ expect(player![0]?.shardId).oneOf(Object.values(Shard));
+ });
+ });
+
+ describe.concurrent("Client", () => {
+ let client: Client;
+
+ beforeAll(() => {
+ client = new Client({
+ apiKey,
+ });
+ });
+
+ it.concurrent("Single player name", async () => {
+ const { name: playerName, id: playerId } = testPlayers[0];
+
+ const { data: player, error } = await client.getPlayer({
+ id: false,
+ value: playerName,
+ });
+
+ expect(error).toBeNull();
+
+ expect(player).toBeTypeOf("object");
+
+ expect(Array.isArray(player)).toBe(true);
+
+ expect(player).toStrictEqual(
+ expect.arrayContaining([
+ expect.objectContaining({
+ id: playerId,
+ matches: expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchUUID),
+ type: "match",
+ }),
+ ]),
+ name: playerName,
+ type: ResponseObjectType.PLAYER,
+ }),
+ ])
+ );
+
+ expect(player![0]?.shardId).oneOf(Object.values(Shard));
+ });
+
+ it.concurrent("Single player ID", async () => {
+ const { id: playerId, name: playerName } = testPlayers[0];
+
+ const { data: player, error } = await client.getPlayer({
+ id: true,
+ value: playerId,
+ });
+
+ expect(error).toBeNull();
+
+ expect(Array.isArray(player)).toBe(true);
+
+ expect(player).toStrictEqual(
+ expect.arrayContaining([
+ expect.objectContaining({
+ id: playerId,
+ matches: expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchUUID),
+ type: "match",
+ }),
+ ]),
+ name: playerName,
+ type: ResponseObjectType.PLAYER,
+ }),
+ ])
+ );
+
+ expect(player![0]?.shardId).oneOf(Object.values(Shard));
+ });
+
+ it.concurrent("Multiple player names", async () => {
+ const { data: player, error } = await client.getPlayer({
+ id: false,
+ value: testPlayers.map(({ name }) => name),
+ });
+
+ expect(error).toBeNull();
+
+ expect(Array.isArray(player)).toBe(true);
+
+ expect(player).toStrictEqual(
+ expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchAccountId),
+ matches: expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchUUID),
+ type: "match",
+ }),
+ ]),
+ type: ResponseObjectType.PLAYER,
+ }),
+ ])
+ );
+
+ expect(player![0]?.shardId).oneOf(Object.values(Shard));
+ });
+
+ it.concurrent("Multiple player ID's", async () => {
+ const { data: player, error } = await client.getPlayer({
+ id: true,
+ value: testPlayers.map(({ id }) => id),
+ });
+
+ expect(error).toBeNull();
+
+ expect(Array.isArray(player)).toBe(true);
+
+ expect(player).toStrictEqual(
+ expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchAccountId),
+ matches: expect.arrayContaining([
+ expect.objectContaining({
+ id: expect.stringMatching(patternMatchUUID),
+ type: "match",
+ }),
+ ]),
+ type: ResponseObjectType.PLAYER,
+ }),
+ ])
+ );
+
+ expect(player![0]?.shardId).oneOf(Object.values(Shard));
+ });
+ });
+
+ /**
+ * @todo Add tests with bad data expecting error response
+ * ```
+ * describe.concurrent("Invalid Data", () => {});
+ * ```
+ */
+});
diff --git a/src/types/player.ts b/src/modules/player/player.types.ts
similarity index 87%
rename from src/types/player.ts
rename to src/modules/player/player.types.ts
index b9a5183..74ffc22 100644
--- a/src/types/player.ts
+++ b/src/modules/player/player.types.ts
@@ -1,7 +1,6 @@
-import { ResponseObjectType, Shard } from ".";
-
-import type { ApiMatch } from ".";
-import type { WithLinks } from "./util";
+import type { ApiMatch } from "~/modules/match/match.types";
+import type { Shard } from "~/types";
+import type { ResponseObjectType, WithLinks } from "~/util/types";
interface PlayerAttributes {
/**
diff --git a/src/types/error.ts b/src/types/error.ts
index 6c17d79..bd5c674 100644
--- a/src/types/error.ts
+++ b/src/types/error.ts
@@ -11,21 +11,3 @@ export interface PubgResponseError {
detail: string;
title: string;
}
-
-enum PlayerError {
- /**
- * Not Found
- *
- * No player(s) found matching the criteria
- */
- NOT_FOUND = "not-found",
-}
-
-export const PlayerErrors: {
- [Error in PlayerError]: PubgResponseError;
-} = {
- [PlayerError.NOT_FOUND]: {
- detail: "No player(s) found matching the criteria",
- title: "Not found",
- },
-};
diff --git a/src/types/game.ts b/src/types/game.ts
index da23983..ddb9591 100644
--- a/src/types/game.ts
+++ b/src/types/game.ts
@@ -135,32 +135,32 @@ export enum Gamemode {
/**
* Conquest Duo's (Third Person Perspective)
*/
- CONQUEST_DUO = "conquest_duo",
+ CONQUEST_DUO = "conquest-duo",
/**
* Conquest Duo's (First Person Perspective)
*/
- CONQUEST_DUO_FPP = "conquest_duo_fpp",
+ CONQUEST_DUO_FPP = "conquest-duo-fpp",
/**
* Conquest Solo's (Third Person Perspective)
*/
- CONQUEST_SOLO = "conquest_solo",
+ CONQUEST_SOLO = "conquest-solo",
/**
* Conquest Solos' (First Person Perspective)
*/
- CONQUEST_SOLO_FPP = "conquest_solo_fpp",
+ CONQUEST_SOLO_FPP = "conquest-solo-fpp",
/**
* Conquest Squad (Third Person Perspective)
*/
- CONQUEST_SQUAD = "conquest_squad",
+ CONQUEST_SQUAD = "conquest-squad",
/**
* Conquest Squad (First Person Perspective)
*/
- CONQUEST_SQUAD_FPP = "conquest_squad_fpp",
+ CONQUEST_SQUAD_FPP = "conquest-squad-fpp",
/**
* Duo's (Third Person Perspective)
@@ -170,77 +170,77 @@ export enum Gamemode {
/**
* Duo's (First Person Perspective)
*/
- DUO_FPP = "duo_fpp",
+ DUO_FPP = "duo-fpp",
/**
* Esports Duo's (Third Person Perspective)
*/
- ESPORTS_DUO = "esports_duo",
+ ESPORTS_DUO = "esports-duo",
/**
* Esports Duo's (First Person Perspective)
*/
- ESPORTS_DUO_FPP = "esports_duo_fpp",
+ ESPORTS_DUO_FPP = "esports-duo-fpp",
/**
* Esports Solo's (Third Person Perspective)
*/
- ESPORTS_SOLO = "esports_solo",
+ ESPORTS_SOLO = "esports-solo",
/**
* Esports Solo's (First Person Perspective)
*/
- ESPORTS_SOLO_FPP = "esports_solo_fpp",
+ ESPORTS_SOLO_FPP = "esports-solo-fpp",
/**
* Esports Squad (Third Person Perspective)
*/
- ESPORTS_SQUAD = "esports_squad",
+ ESPORTS_SQUAD = "esports-squad",
/**
* Esports Squad (First Person Perspective)
*/
- ESPORTS_SQUAD_FPP = "esports_squad_fpp",
+ ESPORTS_SQUAD_FPP = "esports-squad-fpp",
/**
- * Unknown (First Person Perspective)
+ * @todo Unknown (First Person Perspective)
*/
- LAB_FPP = "lab_fpp",
+ LAB_FPP = "lab-fpp",
/**
- * Unknown (Third Person Perspective)
+ * @todo Unknown (Third Person Perspective)
*/
- LAB_TPP = "lab_tpp",
+ LAB_TPP = "lab-tpp",
/**
* Normal Duo's (Third Person Perspective)
*/
- NORMAL_DUO = "normal_duo",
+ NORMAL_DUO = "normal-duo",
/**
* Normal Duo's (First Person Perspective)
*/
- NORMAL_DUO_FPP = "normal_duo_fpp",
+ NORMAL_DUO_FPP = "normal-duo-fpp",
/**
* Normal Solo's (Third Person Perspective)
*/
- NORMAL_SOLO = "normal_solo",
+ NORMAL_SOLO = "normal-solo",
/**
* Normal Solo's (First Person Perspective)
*/
- NORMAL_SOLO_FPP = "normal_solo_fpp",
+ NORMAL_SOLO_FPP = "normal-solo-fpp",
/**
* Normal Squad (Third Person Perspective)
*/
- NORMAL_SQUAD = "normal_squad",
+ NORMAL_SQUAD = "normal-squad",
/**
* Normal Squad (First Person Perspective)
*/
- NORMAL_SQUAD_FPP = "normal_squad_fpp",
+ NORMAL_SQUAD_FPP = "normal-squad-fpp",
/**
* Solo's (Third Person Perspective)
@@ -250,7 +250,7 @@ export enum Gamemode {
/**
* Solo's (First Person Perspective)
*/
- SOLO_FPP = "solo_fpp",
+ SOLO_FPP = "solo-fpp",
/**
* Squad (Third Person Perspective)
@@ -260,7 +260,7 @@ export enum Gamemode {
/**
* Squad (First Person Perspective)
*/
- SQUAD_FPP = "squad_fpp",
+ SQUAD_FPP = "squad-fpp",
/**
* Team Deathmatch
@@ -270,60 +270,60 @@ export enum Gamemode {
/**
* War Duo's (Third Person Perspective)
*/
- WAR_DUO = "war_duo",
+ WAR_DUO = "war-duo",
/**
* War Duo's (First Person Perspective)
*/
- WAR_DUO_FPP = "war_duo_fpp",
+ WAR_DUO_FPP = "war-duo-fpp",
/**
* War Solo's (Third Person Perspective)
*/
- WAR_SOLO = "war_solo",
+ WAR_SOLO = "war-solo",
/**
* War Solo's (First Person Perspective)
*/
- WAR_SOLO_FPP = "war_solo_fpp",
+ WAR_SOLO_FPP = "war-solo-fpp",
/**
* War Squad (Third Person Perspective)
*/
- WAR_SQUAD = "war_squad",
+ WAR_SQUAD = "war-squad",
/**
* War Squad (First Person Perspective)
*/
- WAR_SQUAD_FPP = "war_squad_fpp",
+ WAR_SQUAD_FPP = "war-squad-fpp",
/**
* Zombie Duo's (Third Person Perspective)
*/
- ZOMBIE_DUO = "zombie_duo",
+ ZOMBIE_DUO = "zombie-duo",
/**
* Zombie Duo's (First Person Perspective)
*/
- ZOMBIE_DUO_FPP = "zombie_duo_fpp",
+ ZOMBIE_DUO_FPP = "zombie-duo-fpp",
/**
* Zombie Solo's (Third Person Perspective)
*/
- ZOMBIE_SOLO = "zombie_solo",
+ ZOMBIE_SOLO = "zombie-solo",
/**
* Zombie Solo's (First Person Perspective)
*/
- ZOMBIE_SOLO_FPP = "zombie_solo_fpp",
+ ZOMBIE_SOLO_FPP = "zombie-solo-fpp",
/**
* Zombie Squad (Third Person Perspective)
*/
- ZOMBIE_SQUAD = "zombie_squad",
+ ZOMBIE_SQUAD = "zombie-squad",
/**
* Zombie Squad (First Person Perspective)
*/
- ZOMBIE_SQUAD_FPP = "zombie_squad_fpp",
+ ZOMBIE_SQUAD_FPP = "zombie-squad-fpp",
}
diff --git a/src/types/index.ts b/src/types/index.ts
index 5a8760b..c5cc0ba 100644
--- a/src/types/index.ts
+++ b/src/types/index.ts
@@ -1,8 +1,8 @@
-export * from "./error";
-export * from "./game";
-export * from "./match";
-export * from "./platform";
-export * from "./player";
-export * from "./responses";
-export * from "./season";
-export * from "./telemetry";
+export { ErrorCode } from "./error";
+export type { PubgResponseError } from "./error";
+
+export { DeathType, Gamemode, Map, MatchType } from "./game";
+
+export { Region, Shard } from "./platform";
+
+export { SeasonState } from "./season";
diff --git a/src/types/platform.ts b/src/types/platform.ts
index bbc8306..98a4727 100644
--- a/src/types/platform.ts
+++ b/src/types/platform.ts
@@ -8,7 +8,7 @@
*/
export enum Shard {
/**
- * Console - PSN/Xbox (getd for the /matches and /samples endpoints)
+ * Console - Playstation Network / Xbox (getd for the /matches and /samples endpoints)
*/
CONSOLE = "console",
@@ -18,7 +18,7 @@ export enum Shard {
KAKAO = "kakao",
/**
- * PayStation Network
+ * PlayStation Network
*/
PSN = "psn",
diff --git a/src/types/season.ts b/src/types/season.ts
index 1f58411..7fa4088 100644
--- a/src/types/season.ts
+++ b/src/types/season.ts
@@ -1,51 +1,3 @@
-import type { ResponseObjectType } from ".";
-
-/**
- * Season
- *
- * @see https://documentation.pubg.com/en/seasons-endpoint.html
- */
-export interface ApiSeason {
- /**
- * Season specific attributes / metadata
- */
- attributes: {
- /**
- * Indicates if the season is active
- */
- isCurrentSeason: boolean;
-
- /**
- * Indicates if the season is not active
- */
- isOffseason: boolean;
- };
-
- /**
- * Season ID
- *
- * getd to lookup a player's stats for this season on the /players endpoint
- */
- id: string;
-
- /**
- * Identifier for this object type ("season")
- */
- type: ResponseObjectType.SEASON;
-}
-
-export interface Season extends Pick {
- /**
- * Indicates if the season is active
- */
- isCurrentSeason: boolean;
-
- /**
- * Indicates if the season is not active
- */
- isOffseason: boolean;
-}
-
/**
* Season State
*
@@ -69,695 +21,3 @@ export enum SeasonState {
*/
PROGRESS = "progress",
}
-
-export type ApiPlayerSeason =
- | {
- /**
- * Season specific attributes / metadata
- */
- attributes: {
- /**
- * @deprecated
- * Highest number of rank points the player was awarded during the season across all game modes
- * Min: 0
- */
- bestRankPoint?: number;
-
- /**
- * Game Mode stats objects contain a player's aggregated stats for a game mode in the context of a season.
- */
- gameModeStats: {
- [G in GameModeStatGamemode]: GameModeStat;
- };
- };
-
- /**
- * Lists of up to the 32 most recent match IDs that this player played this season (within the last 14 days) separated by game mode.
- * If a player didn't play any matches in a season with a specific game mode (or within the last 14 days), then the array for that game mode will be empty.
- */
- relationships: {
- matchesDuo: MatchGameModeResponse;
- matchesDuoFPP: MatchGameModeResponse;
- matchesSolo: MatchGameModeResponse;
- matchesSoloFPP: MatchGameModeResponse;
- matchesSquad: MatchGameModeResponse;
- matchesSquadFPP: MatchGameModeResponse;
- player: {
- data: {
- /**
- * Player ID
- */
- id: string;
-
- /**
- * Identifier for this object type ("player")
- */
- type: ResponseObjectType.PLAYER;
- };
- };
- season: {
- data: {
- /**
- * Season ID
- */
- id: string;
-
- /**
- * Identifier for this object type ("season")
- */
- type: ResponseObjectType.SEASON;
- };
- };
- };
-
- /**
- * Identifier for this object type ("playerSeason")
- */
- type: ResponseObjectType.PLAYER_SEASON;
- }
- | {
- /**
- * Season specific attributes / metadata
- */
- attributes: {
- /**
- * Ranked Game Mode stats objects contain a player's aggregated ranked stats for a game mode in the context of a season.
- */
- rankedGameModeStats: {
- [GameModeStatGamemode.SQUAD]: RankedGameModeStats;
- [GameModeStatGamemode.SQUAD_FPP]: RankedGameModeStats;
- };
- };
-
- /**
- * References to resource objects related to this match
- */
- relationships: {
- player: {
- data: {
- /**
- * Player ID
- */
- id: string;
-
- /**
- * Identifier for this object type ("player")
- */
- type: ResponseObjectType.PLAYER;
- };
- };
- season: {
- data: {
- /**
- * Season ID
- */
- id: string;
-
- /**
- * Identifier for this object type ("season")
- */
- type: ResponseObjectType.SEASON;
- };
- };
- };
-
- /**
- * Identifier for this object type ("rankedplayerstats")
- */
- type: ResponseObjectType.RANKED_PLAYER_SEASON;
- };
-
-export type PlayerSeason =
- | {
- /**
- * @deprecated
- * Highest number of rank points the player was awarded during the season across all game modes
- * Min: 0
- */
- bestRankPoint?: number;
-
- /**
- * Stats for the player broken down by gamemode
- */
- gamemodeStats: {
- [G in GameModeStatGamemode]: GameModeStat;
- };
-
- /**
- * Matches ID's for each gamemode
- */
- matches: {
- [G in GameModeStatGamemode]: Array;
- };
-
- /**
- * Player ID
- */
- playerId: string;
-
- /**
- * Season ID
- */
- seasonId: string;
-
- /**
- * Identifier for this object type ("playerSeason")
- */
- type: ResponseObjectType.PLAYER_SEASON;
- }
- | {
- /**
- * Stats for the player broken down by gamemode
- */
- rankedGameModeStats: {
- [GameModeStatGamemode.SQUAD]: RankedGameModeStats;
- [GameModeStatGamemode.SQUAD_FPP]: RankedGameModeStats;
- };
-
- /**
- * Player ID
- */
- playerId: string;
-
- /**
- * Season ID
- */
- seasonId: string;
-
- /**
- * Identifier for this object type ("rankedplayerstats")
- */
- type: ResponseObjectType.RANKED_PLAYER_SEASON;
- };
-
-/**
- * All gamodes that support player season statistics
- */
-export enum GameModeStatGamemode {
- /**
- * Duo's (Third Person Perspective)
- */
- DUO = "duo",
-
- /**
- * Duo's (First Person Perspective)
- */
- DUO_FPP = "duo-fpp",
-
- /**
- * Solo's (Third Person Perspective)
- */
- SOLO = "solo",
-
- /**
- * Solo's (First Person Perspective)
- */
- SOLO_FPP = "solo-fpp",
-
- /**
- * Squad (Third Person Perspective)
- */
- SQUAD = "squad",
-
- /**
- * Squad (First Person Perspective)
- */
- SQUAD_FPP = "squad-fpp",
-}
-
-/**
- * All player stats for a given gamemode
- */
-interface GameModeStat {
- /**
- * Assists
- *
- * Min: 0
- */
- assists: number;
-
- /**
- * Boosts
- *
- * Min: 0
- */
- boosts: number;
-
- /**
- * Daily Kills
- *
- * Min: 0
- */
- dailyKills: number;
-
- /**
- * Daily Wins
- *
- * Min: 0
- */
- dailyWins: number;
-
- /**
- * Damage Dealt
- *
- * Min: 0
- */
- damageDealt: number;
-
- /**
- * Days
- *
- * Min: 0
- */
- days: number;
-
- /**
- * Down but not out's
- *
- * Min: 0
- */
- dBNOs: number;
-
- /**
- * Headshot Kills
- *
- * Min: 0
- */
- headshotKills: number;
-
- /**
- * Heals
- *
- * Min: 0
- */
- heals: number;
-
- /**
- * @deprecated Kill Points
- */
- killPoints: number;
-
- /**
- * Kills
- *
- * Min: 0
- */
- kills: number;
-
- /**
- * Longest Kill
- *
- * Min: 0
- */
- longestKill: number;
-
- /**
- * Longest Time Survived
- *
- * Min: 0
- */
- longestTimeSurvived: number;
-
- /**
- * Losses
- *
- * Min: 0
- */
- losses: number;
-
- /**
- * Max Kill Streaks
- *
- * Min: 0
- */
- maxKillStreaks: number;
-
- /**
- * Most Survival Time
- *
- * Min: 0
- */
- mostSurvivalTime: number;
-
- /**
- * @deprecated Rank Points
- *
- * Min: 0
- */
- rankPoints: number;
-
- /**
- * @deprecated Rank Points Title
- */
- rankPointsTitle: string;
-
- /**
- * Revives
- *
- * Min: 0
- */
- revives: number;
-
- /**
- * Ride Distance
- *
- * Min: 0
- */
- rideDistance: number;
-
- /**
- * Road Kills
- *
- * Min: 0
- */
- roadKills: number;
-
- /**
- * Round Most Kills
- *
- * Min: 0
- */
- roundMostKills: number;
-
- /**
- * Rounds Played
- *
- * Min: 0
- */
- roundsPlayed: number;
-
- /**
- * Suicides
- *
- * Min: 0
- */
- suicides: number;
-
- /**
- * Swim Distance
- *
- * Min: 0
- */
- swimDistance: number;
-
- /**
- * Team Kills
- *
- * Min: 0
- */
- teamKills: number;
-
- /**
- * Time Survived
- *
- * Min: 0
- */
- timeSurvived: number;
-
- /**
- * Top 10's
- *
- * Min: 0
- */
- top10s: number;
-
- /**
- * Vehicle Destroys
- *
- * Min: 0
- */
- vehicleDestroys: number;
-
- /**
- * Walk Distance
- *
- * Min: 0
- */
- walkDistance: number;
-
- /**
- * Weapons Acquired
- *
- * Min: 0
- */
- weaponsAcquired: 12;
-
- /**
- * Weekly Kills
- *
- * Min: 0
- */
- weeklyKills: number;
-
- /**
- * Weekly Wins
- *
- * Min: 0
- */
- weeklyWins: number;
-
- /**
- * @deprecated Win Points
- */
- winPoints: number;
-
- /**
- * Wins
- *
- * Min: 0
- */
- wins: number;
-}
-
-interface RankedGameModeStats {
- /**
- * Assists
- *
- * Min: 0
- */
- assists: number;
-
- /**
- * Average Rank
- *
- * Min: 0
- */
- avgRank: number;
-
- /**
- * @deprecated Average Survival Time
- *
- * Min: 0
- */
- avgSurvivalTime: number;
-
- /**
- * Best Rank Point
- *
- * Min: 0
- */
- bestRankPoint: number;
-
- /**
- * Best Tier
- */
- bestTier: {
- /**
- * Highest ranked tier
- */
- tier: string;
-
- /**
- * Highest ranked sub-tier
- */
- subTier: string;
- };
-
- /**
- * @deprecated Boosts
- *
- * Min: 0
- */
- boosts: number;
-
- /**
- * Current Rank Point
- *
- * Min: 0
- */
- currentRankPoint: number;
-
- /**
- * Current Tier
- */
- currentTier: {
- /**
- * Current rank tier
- */
- tier: string;
-
- /**
- * Current rank sub-tier
- */
- subTier: string;
- };
-
- /**
- * Down but not out's
- *
- * Min: 0
- */
- dBNOs: number;
-
- /**
- * Damage Dealt
- *
- * Min: 0
- */
- damageDealt: number;
-
- /**
- * Deaths
- *
- * Min: 0
- */
- deaths: number;
-
- /**
- * @deprecated Headshot Kill Ratio
- *
- * Min: 0
- */
- headshotKillRatio: number;
-
- /**
- * @deprecated Headshot Kills
- *
- * Min: 0
- */
- headshotKills: number;
-
- /**
- * @deprecated Heals
- *
- * Min: 0
- */
- heals: number;
-
- /**
- * Kill to death average
- *
- * Min: 0
- */
- kda: number;
-
- /**
- * @deprecated Kills to death ratio
- */
- kdr: number;
-
- /**
- * @deprecated Kill Streak
- *
- * Min: 0
- */
- killStreak: number;
-
- /**
- * Kills
- *
- * Min: 0
- */
- kills: number;
-
- /**
- * @deprecated Longest Kill
- *
- * Min: 0
- */
- longestKill: number;
-
- /**
- * @deprecated Play Time
- *
- * Min: 0
- */
- playTime: number;
-
- /**
- * @deprecated Revive Ratio
- *
- * Min: 0
- */
- reviveRatio: number;
-
- /**
- * @deprecated Revives
- *
- * Min: 0
- */
- revives: number;
-
- /**
- * @deprecated Round Most Kills
- *
- * Min: 0
- */
- roundMostKills: number;
-
- /**
- * Rounds Played
- *
- * Min: 0
- */
- roundsPlayed: number;
-
- /**
- * @deprecated Team Kills
- *
- * Min: 0
- */
- teamKills: number;
-
- /**
- * Top 10 Ratio
- *
- * Min: 0
- */
- top10Ratio: number;
-
- /**
- * @deprecated Weapons Acquired
- *
- * Min: 0
- */
- weaponsAcquired: number;
-
- /**
- * Win Ratio
- *
- * Min: 0
- */
- winRatio: number;
-
- /**
- * Wins
- *
- * Min: 0
- */
- wins: number;
-}
-
-interface MatchGameModeResponse {
- data: Array<{
- /**
- * Match ID
- */
- id: string;
-
- /**
- * Identifier for this object type ("match")
- */
- type: ResponseObjectType.MATCH;
- }>;
-}
diff --git a/src/types/telemetry.ts b/src/types/telemetry.ts
deleted file mode 100644
index dd7de4c..0000000
--- a/src/types/telemetry.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Telemetry data returned from the API
- *
- * @see https://documentation.pubg.com/en/telemetry.html
- */
-export interface ApiTelemetry {}
-
-export interface Telemetry {}
diff --git a/src/util/chunkify.ts b/src/util/chunkify.ts
index dbefdaa..ef47011 100644
--- a/src/util/chunkify.ts
+++ b/src/util/chunkify.ts
@@ -1,7 +1,7 @@
const CHUNK_SIZE = 10 as const;
/**
- * Chunkify - Splits up an array into chnks of arrays of a specified size
+ * Chunkify - Splits up an array into chunks of arrays of a specified size
*
* @param {Array} array - The input array that will be chunkified
* @param {number} [chunkSize] - The size of each chunk
diff --git a/src/util/fetch.ts b/src/util/fetch.ts
index 7c4631c..c34b615 100644
--- a/src/util/fetch.ts
+++ b/src/util/fetch.ts
@@ -1,12 +1,9 @@
import axios from "axios";
-import { BASE_HEADERS, BASE_URL } from "../constants";
-import { ErrorCode, PubgResponseError, Shard } from "../types";
+import { BASE_HEADERS, BASE_URL } from "~/constants";
+import { ErrorCode, PubgResponseError, Shard } from "~/types";
-import type { AxiosResponse } from "axios";
-
-import type { PromiseResult, Result } from "..";
-import type { FetchOptions } from "../types/util";
+import type { FetchOptions, Result } from "~/util/types";
export async function fetch({
apiKey,
@@ -15,7 +12,7 @@ export async function fetch({
params = {},
root = false,
shard = Shard.STEAM,
-}: FetchOptions): PromiseResult {
+}: FetchOptions): Promise> {
if (!Object.values(Shard).includes(shard))
throw new Error(ErrorCode.INVALID_SHARD);
@@ -24,7 +21,7 @@ export async function fetch({
: `${BASE_URL}/shards/${shard}/${endpoint}`;
try {
- const response: AxiosResponse = await axios(url, {
+ const response = await axios.get(url, {
headers: {
...BASE_HEADERS,
Authorization: `Bearer ${apiKey}`,
diff --git a/src/util/index.ts b/src/util/index.ts
index db1a2cc..f28b254 100644
--- a/src/util/index.ts
+++ b/src/util/index.ts
@@ -1,2 +1,3 @@
-export * from "./chunkify";
-export * from "./fetch";
+export { chunkify } from "./chunkify";
+
+export { fetch, fetchAll } from "./fetch";
diff --git a/src/util/tests.ts b/src/util/tests.ts
new file mode 100644
index 0000000..19eac5d
--- /dev/null
+++ b/src/util/tests.ts
@@ -0,0 +1,9 @@
+export const testPlayers = [
+ { name: "iBBA", id: "account.1225daa4e7544edfbe5f115b433d5069" },
+ { name: "WackyJacky101", id: "account.c0e530e9b7244b358def282782f893af" },
+];
+
+export const patternMatchUUID =
+ /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
+
+export const patternMatchAccountId = /^account.*$/;
diff --git a/src/util/types/environment.d.ts b/src/util/types/environment.d.ts
new file mode 100644
index 0000000..9571ba8
--- /dev/null
+++ b/src/util/types/environment.d.ts
@@ -0,0 +1,9 @@
+declare global {
+ namespace NodeJS {
+ interface ProcessEnv {
+ PUBG_API_KEY: string;
+ }
+ }
+}
+
+export {};
diff --git a/src/util/types/index.ts b/src/util/types/index.ts
new file mode 100644
index 0000000..e8df397
--- /dev/null
+++ b/src/util/types/index.ts
@@ -0,0 +1,12 @@
+export type { FetchOptions, Module, Result } from "./misc";
+
+export { ResponseObjectType } from "./response";
+export type {
+ ApiAssets,
+ Asset,
+ BaseResponse,
+ ErrorsResponse,
+ Links,
+} from "./response";
+
+export type { WithApiKey, WithApiShard, WithLinks, WithShard } from "./with";
diff --git a/src/types/util.ts b/src/util/types/misc.ts
similarity index 52%
rename from src/types/util.ts
rename to src/util/types/misc.ts
index 6cef43d..a1efcee 100644
--- a/src/types/util.ts
+++ b/src/util/types/misc.ts
@@ -1,27 +1,7 @@
-import type { Links, Shard } from "./index";
+import type { PubgResponseError } from "~/types";
+import type { WithApiShard } from "~/util/types";
-export type WithApiKey = T & {
- /**
- * PUBG Developer App API access token
- */
- apiKey: string;
-};
-
-export type WithShard = T & {
- /**
- * The server shard to send the request to
- */
- shard?: Shard;
-};
-
-export type WithApiShard = T & WithApiKey & WithShard;
-
-export type WithLinks = T & {
- /**
- * Links to relevant / current objects
- */
- links: Links;
-};
+export type Module = (options: TOptions) => Promise;
export interface FetchOptions extends WithApiShard {
/**
@@ -50,3 +30,14 @@ export interface FetchOptions extends WithApiShard {
*/
root?: boolean;
}
+
+export type Result =
+ | {
+ data: T;
+ error: null;
+ }
+ | {
+ data: null;
+ error: PubgResponseError;
+ status?: number;
+ };
diff --git a/src/types/responses.ts b/src/util/types/response.ts
similarity index 67%
rename from src/types/responses.ts
rename to src/util/types/response.ts
index f4d0fc4..f79b49f 100644
--- a/src/types/responses.ts
+++ b/src/util/types/response.ts
@@ -1,87 +1,72 @@
-import type { PubgResponseError } from ".";
-import type { WithLinks } from "./util";
-
-export type Result =
- | {
- data: T;
- error: null;
- }
- | {
- data: null;
- error: PubgResponseError;
- status?: number;
- };
-
-export type PromiseResult = Promise>;
-
-export enum ResponseObjectType {
- ASSET = "asset",
- MATCH = "match",
- PARTICIPANT = "participant",
- PLAYER = "player",
- PLAYER_SEASON = "playerSeason",
- RANKED_PLAYER_SEASON = "rankedplayerstats",
- ROSTER = "roster",
- SEASON = "season",
- STATUS = "status",
- TOURNAMENT = "tournament",
-}
-
-export interface Links {
- /**
- * Unknown
- */
- schema?: string;
-
- /**
- * Link to the current object
- */
- self: string;
-}
-
-export interface Asset {
- /**
- * Asset specific attributes / metadata
- */
- attributes?: {
- /**
- * Time of telemetry creation
- */
- createdAt: Date;
- /**
- * Telemetry
- */
- name: string;
- /**
- * Link to the telemetry.json file
- */
- url: string;
- };
-
- /**
- * A randomly generated ID assigned to this resource object for linking elsewhere in the match response
- */
- id: string;
-
- /**
- * Identifier for this object type
- */
- type: ResponseObjectType.ASSET;
-}
-
-export interface ApiAssets {
- data: Array;
-}
-
-export type Assets = Array;
-
-export interface BaseResponse extends WithLinks {
- /**
- * Unknown
- */
- meta: unknown;
-}
-
-export interface ErrorsResponse {
- errors: PubgResponseError;
-}
+import type { PubgResponseError } from "~/types";
+import type { WithLinks } from "~/util/types";
+
+export interface Links {
+ /**
+ * @todo Unknown
+ */
+ schema?: string;
+
+ /**
+ * Link to the current object
+ */
+ self: string;
+}
+
+export interface Asset {
+ /**
+ * Asset specific attributes / metadata
+ */
+ attributes?: {
+ /**
+ * Time of telemetry creation
+ */
+ createdAt: Date;
+ /**
+ * Telemetry
+ */
+ name: string;
+ /**
+ * Link to the telemetry.json file
+ */
+ url: string;
+ };
+
+ /**
+ * A randomly generated ID assigned to this resource object for linking elsewhere in the match response
+ */
+ id: string;
+
+ /**
+ * Identifier for this object type
+ */
+ type: ResponseObjectType.ASSET;
+}
+
+export interface ApiAssets {
+ data: Array;
+}
+
+export interface BaseResponse extends WithLinks {
+ /**
+ * @todo Unknown
+ */
+ meta: TMeta;
+}
+
+export interface ErrorsResponse {
+ errors: PubgResponseError;
+}
+
+export enum ResponseObjectType {
+ ASSET = "asset",
+ MATCH = "match",
+ PARTICIPANT = "participant",
+ PLAYER = "player",
+ PLAYER_SEASON = "playerSeason",
+ RANKED_PLAYER_SEASON = "rankedplayerstats",
+ ROSTER = "roster",
+ SEASON = "season",
+ STATUS = "status",
+ TOURNAMENT = "tournament",
+}
diff --git a/src/util/types/with.ts b/src/util/types/with.ts
new file mode 100644
index 0000000..f210905
--- /dev/null
+++ b/src/util/types/with.ts
@@ -0,0 +1,25 @@
+import type { Shard } from "~/types";
+import type { Links } from "~/util/types";
+
+export type WithApiKey = T & {
+ /**
+ * PUBG Developer App API access token
+ */
+ apiKey: string;
+};
+
+export type WithShard = T & {
+ /**
+ * The server shard to send the request to
+ */
+ shard?: Shard;
+};
+
+export type WithApiShard = T & WithApiKey & WithShard;
+
+export type WithLinks = T & {
+ /**
+ * Links to relevant / current objects
+ */
+ links: Links;
+};
diff --git a/tsconfig.json b/tsconfig.json
index 8029b87..471c7af 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -10,7 +10,12 @@
"esModuleInterop": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
- "noImplicitReturns": true
+ "noImplicitReturns": true,
+ "baseUrl": ".",
+ "paths": {
+ "~/*": ["./src/*"]
+ },
+ "types": ["vitest/globals"]
},
"include": ["./src"]
}
diff --git a/tsup.config.ts b/tsup.config.ts
index 22bb3cf..257480c 100644
--- a/tsup.config.ts
+++ b/tsup.config.ts
@@ -1,12 +1,16 @@
-import type { Options } from "tsup";
+import { defineConfig } from "tsup";
const isProduction = process.env.NODE_ENV === "production";
-export const tsup: Options = {
+export default defineConfig({
clean: true,
dts: true,
- entryPoints: ["src/index.ts"],
+ entryPoints: {
+ constants: "src/constants.ts",
+ index: "src/index.ts",
+ types: "src/types/index.ts",
+ },
format: ["cjs", "esm", "iife"],
minify: isProduction,
sourcemap: true,
-};
+});
diff --git a/vitest.config.ts b/vitest.config.ts
new file mode 100644
index 0000000..c882894
--- /dev/null
+++ b/vitest.config.ts
@@ -0,0 +1,10 @@
+import { defineConfig } from "vitest/config";
+import { resolve } from "node:path";
+
+export default defineConfig({
+ resolve: {
+ alias: {
+ "~": resolve(__dirname, "/src"),
+ },
+ },
+});
diff --git a/yarn.lock b/yarn.lock
index 22c4c0a..acfa2d0 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,22 +2,33 @@
# yarn lockfile v1
-"@antfu/utils@^0.3.0":
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.3.0.tgz#6306c43b52a883bd8e973e3ed8dd64248418bcc4"
- integrity sha512-UU8TLr/EoXdg7OjMp0h9oDoIAVr+Z/oW9cpOxQQyrsz6Qzd2ms/1CdWx8fl2OQdFpxGmq5Vc4TwfLHId6nAZjA==
- dependencies:
- "@types/throttle-debounce" "^2.1.0"
-
-"@babel/parser@^7.15.0":
- version "7.15.7"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae"
- integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==
-
-"@heroicons/vue@^1.0.4":
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/@heroicons/vue/-/vue-1.0.4.tgz#dcfd957a9abc827321054e643f6fb73629b3eef6"
- integrity sha512-jm7JMoUGr7Asn07oYNmewxkdQALnskTzRo17iGpHG/apLcc+GFdvdN4XvWZ2awStodaqeZ4eYWg7UcI0LvLETQ==
+"@bcoe/v8-coverage@^0.2.3":
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
+ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+
+"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
+ integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
+
+"@jridgewell/resolve-uri@^3.0.3":
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe"
+ integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==
+
+"@jridgewell/sourcemap-codec@^1.4.10":
+ version "1.4.13"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c"
+ integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==
+
+"@jridgewell/trace-mapping@^0.3.7":
+ version "0.3.13"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea"
+ integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.0.3"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
@@ -40,150 +51,46 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
-"@types/node@^16.10.2":
- version "16.10.2"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.2.tgz#5764ca9aa94470adb4e1185fe2e9f19458992b2e"
- integrity sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ==
+"@polka/url@^1.0.0-next.20":
+ version "1.0.0-next.21"
+ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1"
+ integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==
-"@types/throttle-debounce@^2.1.0":
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz#1c3df624bfc4b62f992d3012b84c56d41eab3776"
- integrity sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==
-
-"@vitejs/plugin-vue@^1.9.2":
- version "1.9.2"
- resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.9.2.tgz#7234efb8c3c3d60c7eac350a935074ab1820ae0e"
- integrity sha512-QnUQJvGmY+YT9xTidLcjr6NAjKWNdSuul1M+BZ6uwTQaO5vpAY9USBncXESATk742dYMZGJenegJgeJhG/HMNQ==
-
-"@vue/compiler-core@3.2.19":
- version "3.2.19"
- resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.19.tgz#b537dd377ce51fdb64e9b30ebfbff7cd70a64cb9"
- integrity sha512-8dOPX0YOtaXol0Zf2cfLQ4NU/yHYl2H7DCKsLEZ7gdvPK6ZSEwGLJ7IdghhY2YEshEpC5RB9QKdC5I07z8Dtjg==
- dependencies:
- "@babel/parser" "^7.15.0"
- "@vue/shared" "3.2.19"
- estree-walker "^2.0.2"
- source-map "^0.6.1"
-
-"@vue/compiler-dom@3.2.19":
- version "3.2.19"
- resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.19.tgz#0607bc90de6af55fde73b09b3c4d0bf8cb597ed8"
- integrity sha512-WzQoE8rfkFjPtIioc7SSgTsnz9g2oG61DU8KHnzPrRS7fW/lji6H2uCYJfp4Z6kZE8GjnHc1Ljwl3/gxDes0cw==
- dependencies:
- "@vue/compiler-core" "3.2.19"
- "@vue/shared" "3.2.19"
-
-"@vue/compiler-sfc@3.2.19":
- version "3.2.19"
- resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.19.tgz#d412195a98ebd49b84602f171719294a1d9549be"
- integrity sha512-pLlbgkO1UHTO02MSpa/sFOXUwIDxSMiKZ1ozE5n71CY4DM+YmI+G3gT/ZHZ46WBId7f3VTF/D8pGwMygcQbrQA==
- dependencies:
- "@babel/parser" "^7.15.0"
- "@vue/compiler-core" "3.2.19"
- "@vue/compiler-dom" "3.2.19"
- "@vue/compiler-ssr" "3.2.19"
- "@vue/ref-transform" "3.2.19"
- "@vue/shared" "3.2.19"
- estree-walker "^2.0.2"
- magic-string "^0.25.7"
- postcss "^8.1.10"
- source-map "^0.6.1"
-
-"@vue/compiler-ssr@3.2.19":
- version "3.2.19"
- resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.19.tgz#3e91ecf70f8f961c5f63eacd2139bcdab9a7a07c"
- integrity sha512-oLon0Cn3O7WEYzzmzZavGoqXH+199LT+smdjBT3Uf3UX4HwDNuBFCmvL0TsqV9SQnIgKvBRbQ7lhbpnd4lqM3w==
- dependencies:
- "@vue/compiler-dom" "3.2.19"
- "@vue/shared" "3.2.19"
-
-"@vue/reactivity@3.2.19":
- version "3.2.19"
- resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.19.tgz#fc6e0f0106f295226835cfed5ff5f84d927bea65"
- integrity sha512-FtachoYs2SnyrWup5UikP54xDX6ZJ1s5VgHcJp4rkGoutU3Ry61jhs+nCX7J64zjX992Mh9gGUC0LqTs8q9vCA==
- dependencies:
- "@vue/shared" "3.2.19"
-
-"@vue/ref-transform@3.2.19":
- version "3.2.19"
- resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.19.tgz#cf0f986486bb26838fbd09749e927bab19745600"
- integrity sha512-03wwUnoIAeKti5IGGx6Vk/HEBJ+zUcm5wrUM3+PQsGf7IYnXTbeIfHHpx4HeSeWhnLAjqZjADQwW8uA4rBmVbg==
- dependencies:
- "@babel/parser" "^7.15.0"
- "@vue/compiler-core" "3.2.19"
- "@vue/shared" "3.2.19"
- estree-walker "^2.0.2"
- magic-string "^0.25.7"
-
-"@vue/runtime-core@3.2.19":
- version "3.2.19"
- resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.19.tgz#807715b7f4728abb84fa4a8efdbe37d8ddb4c6d3"
- integrity sha512-qArZSWKxWsgKfxk9BelZ32nY0MZ31CAW2kUUyVJyxh4cTfHaXGbjiQB5JgsvKc49ROMNffv9t3/qjasQqAH+RQ==
- dependencies:
- "@vue/reactivity" "3.2.19"
- "@vue/shared" "3.2.19"
-
-"@vue/runtime-dom@3.2.19":
- version "3.2.19"
- resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.19.tgz#7e8bf645754703e360fa132e4be9113edf2377bb"
- integrity sha512-hIRboxXwafeHhbZEkZYNV0MiJXPNf4fP0X6hM2TJb0vssz8BKhD9cF92BkRgZztTQevecbhk0gu4uAPJ3dxL9A==
- dependencies:
- "@vue/runtime-core" "3.2.19"
- "@vue/shared" "3.2.19"
- csstype "^2.6.8"
-
-"@vue/server-renderer@3.2.19":
- version "3.2.19"
- resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.19.tgz#870bcec9f7cdaee0c2187a169b6e636ab4362fb1"
- integrity sha512-A9FNT7fgQJXItwdzWREntAgWKVtKYuXHBKGev/H4+ByTu8vB7gQXGcim01QxaJshdNg4dYuH2tEBZXCNCNx+/w==
- dependencies:
- "@vue/compiler-ssr" "3.2.19"
- "@vue/shared" "3.2.19"
-
-"@vue/shared@3.2.19":
- version "3.2.19"
- resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.19.tgz#111ec3da18337d86274446984c49925b1b2b2dd7"
- integrity sha512-Knqhx7WieLdVgwCAZgTVrDCXZ50uItuecLh9JdLC8O+a5ayaSyIQYveUK3hCRNC7ws5zalHmZwfdLMGaS8r4Ew==
-
-"@vueuse/core@^6.5.3":
- version "6.5.3"
- resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-6.5.3.tgz#15848eaccad18652df4cb4b6ccae7bd7921a0c7e"
- integrity sha512-o3CTu4nEqs371sDY5qLBX0r4QOm6GVpm3ApQc2Y+p8OMI2rRGartQo8xRykpUfsyq602A+SVtm/wxIWBkD/KCQ==
- dependencies:
- "@vueuse/shared" "6.5.3"
- vue-demi "*"
-
-"@vueuse/shared@6.5.3":
- version "6.5.3"
- resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-6.5.3.tgz#6503fa4bfbf45d0616bacedb8a4bd003f01da73b"
- integrity sha512-ChOKu3mECyZeqGJ/gHVm0CaHoZK5/TwNZr1ZM/aqH+RaRNQvC1qkLf1/8PBugzN3yRgC3BtZ/M1kLpGe/BFylw==
- dependencies:
- vue-demi "*"
-
-"@windicss/config@1.4.9":
- version "1.4.9"
- resolved "https://registry.yarnpkg.com/@windicss/config/-/config-1.4.9.tgz#fe36c540b71129a8a064a758ec45cf2dca1ee7d5"
- integrity sha512-DYgWKuY48Nrhi4xprdKVC2IpcLQ8j3jJ1FYgaoHKvHYZG7Ux4xaPZEYaAWEeEiGKLP7bv9VpBYdjRTKFqOMIsA==
- dependencies:
- debug "^4.3.2"
- jiti "^1.12.5"
- tsup "^5.2.1"
- windicss "^3.1.8"
-
-"@windicss/plugin-utils@1.4.9":
- version "1.4.9"
- resolved "https://registry.yarnpkg.com/@windicss/plugin-utils/-/plugin-utils-1.4.9.tgz#c31d128b94c25e48298f110da1916f0f0830fa20"
- integrity sha512-Pie0mEH5whtI3zkWKThmgS6dxSAxQL5Be01Er/abLMVQjdoecoQT7ek2qSYOoFTtXGs7gMPUtCV/NdoL2TDgWw==
- dependencies:
- "@antfu/utils" "^0.3.0"
- "@windicss/config" "1.4.9"
- debug "^4.3.2"
- fast-glob "^3.2.7"
- magic-string "^0.25.7"
- micromatch "^4.0.4"
- windicss "^3.1.8"
+"@types/chai-subset@^1.3.3":
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94"
+ integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==
+ dependencies:
+ "@types/chai" "*"
-ansi-styles@^4.1.0:
+"@types/chai@*", "@types/chai@^4.3.1":
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.1.tgz#e2c6e73e0bdeb2521d00756d099218e9f5d90a04"
+ integrity sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==
+
+"@types/istanbul-lib-coverage@^2.0.1":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
+ integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==
+
+"@types/node@^17.0.41":
+ version "17.0.41"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.41.tgz#1607b2fd3da014ae5d4d1b31bc792a39348dfb9b"
+ integrity sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==
+
+"@vitest/ui@^0.14.2":
+ version "0.14.2"
+ resolved "https://registry.yarnpkg.com/@vitest/ui/-/ui-0.14.2.tgz#63809d41127f8b539919ea785302b2ae11e6cd99"
+ integrity sha512-yV2paiv0/Obymx+9KV+KjM/FAbYF+PbnQiO2RFnZqDCgYwkkNmO1ZNNIetBeOzuNoi1BT1iPSKwtvL0PwCesDQ==
+ dependencies:
+ sirv "^2.0.2"
+
+ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-styles@^4.0.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
@@ -208,12 +115,23 @@ array-union@^2.1.0:
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
-axios@^0.22.0:
- version "0.22.0"
- resolved "https://registry.yarnpkg.com/axios/-/axios-0.22.0.tgz#bf702c41fb50fbca4539589d839a077117b79b25"
- integrity sha512-Z0U3uhqQeg1oNcihswf4ZD57O3NrR1+ZXhxaROaWpDmsDTx7T2HNBV2ulBtie2hwJptu8UvgnJoK+BIqdzh/1w==
+assertion-error@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
+ integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+
+axios@^0.27.2:
+ version "0.27.2"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972"
+ integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==
dependencies:
- follow-redirects "^1.14.4"
+ follow-redirects "^1.14.9"
+ form-data "^4.0.0"
balanced-match@^1.0.0:
version "1.0.2"
@@ -240,18 +158,53 @@ braces@^3.0.1, braces@~3.0.2:
dependencies:
fill-range "^7.0.1"
-cac@^6.7.2:
- version "6.7.3"
- resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.3.tgz#10410b8611677990cc2e3c8b576d471c1d71b768"
- integrity sha512-ECVqVZh74qgSuZG9YOt2OJPI3wGcf+EwwuF/XIOYqZBD0KZYLtgPWqFPxmDPQ6joxI1nOlvVgRV6VT53Ooyocg==
-
-chalk@^4.1.0, chalk@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
- integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
- dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
+bundle-require@^3.0.2:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-3.0.4.tgz#2b52ba77d99c0a586b5854cd21d36954e63cc110"
+ integrity sha512-VXG6epB1yrLAvWVQpl92qF347/UXmncQj7J3U8kZEbdVZ1ZkQyr4hYeL/9RvcE8vVVdp53dY78Fd/3pqfRqI1A==
+ dependencies:
+ load-tsconfig "^0.2.0"
+
+c8@^7.11.3:
+ version "7.11.3"
+ resolved "https://registry.yarnpkg.com/c8/-/c8-7.11.3.tgz#88c8459c1952ed4f701b619493c9ae732b057163"
+ integrity sha512-6YBmsaNmqRm9OS3ZbIiL2EZgi1+Xc4O24jL3vMYGE6idixYuGdy76rIfIdltSKDj9DpLNrcXSonUTR1miBD0wA==
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@istanbuljs/schema" "^0.1.3"
+ find-up "^5.0.0"
+ foreground-child "^2.0.0"
+ istanbul-lib-coverage "^3.2.0"
+ istanbul-lib-report "^3.0.0"
+ istanbul-reports "^3.1.4"
+ rimraf "^3.0.2"
+ test-exclude "^6.0.0"
+ v8-to-istanbul "^9.0.0"
+ yargs "^16.2.0"
+ yargs-parser "^20.2.9"
+
+cac@^6.7.12:
+ version "6.7.12"
+ resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.12.tgz#6fb5ea2ff50bd01490dbda497f4ae75a99415193"
+ integrity sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==
+
+chai@^4.3.6:
+ version "4.3.6"
+ resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c"
+ integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==
+ dependencies:
+ assertion-error "^1.1.0"
+ check-error "^1.0.2"
+ deep-eql "^3.0.1"
+ get-func-name "^2.0.0"
+ loupe "^2.3.1"
+ pathval "^1.1.1"
+ type-detect "^4.0.5"
+
+check-error@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
+ integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==
chokidar@^3.5.1:
version "3.5.2"
@@ -268,6 +221,15 @@ chokidar@^3.5.1:
optionalDependencies:
fsevents "~2.3.2"
+cliui@^7.0.2:
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
+ integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^7.0.0"
+
color-convert@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
@@ -280,6 +242,13 @@ color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+combined-stream@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
commander@^4.0.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
@@ -290,6 +259,13 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+convert-source-map@^1.6.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
+ integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
+ dependencies:
+ safe-buffer "~5.1.1"
+
cross-env@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
@@ -297,7 +273,7 @@ cross-env@^7.0.3:
dependencies:
cross-spawn "^7.0.1"
-cross-spawn@^7.0.1, cross-spawn@^7.0.3:
+cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -306,18 +282,32 @@ cross-spawn@^7.0.1, cross-spawn@^7.0.3:
shebang-command "^2.0.0"
which "^2.0.1"
-csstype@^2.6.8:
- version "2.6.18"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.18.tgz#980a8b53085f34af313410af064f2bd241784218"
- integrity sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==
-
-debug@^4.3.1, debug@^4.3.2:
+debug@^4.3.1:
version "4.3.2"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
dependencies:
ms "2.1.2"
+debug@^4.3.4:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
+deep-eql@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
+ integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==
+ dependencies:
+ type-detect "^4.0.0"
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+
dir-glob@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
@@ -325,117 +315,146 @@ dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
-esbuild-android-arm64@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.3.tgz#ef734c76eeff42e8c53acdffe901da090164a890"
- integrity sha512-jc9E8vGTHkzb0Vwl74H8liANV9BWsqtzLHaKvcsRgf1M+aVCBSF0gUheduAKfDsbDMT0judeMLhwBP34EUesTA==
-
-esbuild-darwin-64@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.3.tgz#35f29376b7451add79f0640980683ef923365385"
- integrity sha512-8bG3Zq+ZNuLlIJebOO2+weI7P2LVf33sOzaUfHj8MuJ+1Ixe4KtQxfYp7qhFnP6xP2ToJaYHxGUfLeiUCEz9hw==
-
-esbuild-darwin-arm64@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.3.tgz#530a1326e7d18d62c9a54b6dce70f2b77ed50eec"
- integrity sha512-5E81eImYtTgh8pY7Gq4WQHhWkR/LvYadUXmuYeZBiP+3ADZJZcG60UFceZrjqNPaFOWKr/xmh4aNocwagEubcA==
-
-esbuild-freebsd-64@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.3.tgz#ce2896ac362e06eb82ca5dec06b2568901eb5afc"
- integrity sha512-ou+f91KkTGexi8HvF/BdtsITL6plbciQfZGys7QX6/QEwyE96PmL5KnU6ZQwoU7E99Ts6Sc9bUDq8HXJubKtBA==
-
-esbuild-freebsd-arm64@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.3.tgz#a20454f99e060bea4e465d131556a9f0533f403f"
- integrity sha512-F1zV7nySjHswJuvIgjkiG5liZ63MeazDGXGKViTCeegjZ71sAhOChcaGhKcu6vq9+vqZxlfEi1fmXlx6Pc3coQ==
-
-esbuild-linux-32@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.3.tgz#ad56f18208ecf007cd9ab16cd39626ca0312b8ee"
- integrity sha512-mHHc2v6uLrHH4zaaq5RB/5IWzgimEJ1HGldzf1qtGI513KZWfH0HRRQ8p1di4notJgBn7tDzWQ1f34ZHy69viQ==
-
-esbuild-linux-64@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.3.tgz#be1eabadf68d153897ed887678f7496d3949810f"
- integrity sha512-FJ1De2O89mrOuqtaEXu41qIYJU6R41F+OA6vheNwcAQcX8fu0aiA13FJeLABq29BYJuTVgRj3cyC8q+tz19/dQ==
-
-esbuild-linux-arm64@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.3.tgz#329348bb4a19cfb5e9046cc5d97ba5017d8f74ad"
- integrity sha512-Cauhr45KSo+wRUojs+1qfycQqQCAXTOvsWvkZ6xmEMAXLAm+f8RQGDQeP8CAf8Yeelnegcn6UNdvzdzLHhWDFg==
-
-esbuild-linux-arm@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.3.tgz#b3b3167c9d5d3038894fbc75b194a4fbe93eaf09"
- integrity sha512-9BJNRtLwBh3OP22cln9g3AJdbAQUcjRHqA4BScx9k4RZpGqPokFr548zpeplxWhcwrIjT8qPebwH9CrRVy8Bsw==
-
-esbuild-linux-mips64le@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.3.tgz#ea1687f28ea2c85399ecc2fe23a48ab343b7b35d"
- integrity sha512-YVzJUGCncuuLm2boYyVeuMFsak4ZAhdiBwi0xNDZCC8sy+tS6Boe2mzcrD2uubv5JKAUOrpN186S1DtU4WgBgw==
-
-esbuild-linux-ppc64le@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.3.tgz#a462cf42eae3d7fc29a9f277679f5adee70afa67"
- integrity sha512-GU6CqqKtJEoyxC2QWHiJtmuOz9wc/jMv8ZloK2WwiGY5yMvAmM3PI103Dj7xcjebNTHBqITTUw/aigY1wx5A3w==
-
-esbuild-openbsd-64@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.3.tgz#0cb15bd86d20eb19cb548b530f1a533197532cf9"
- integrity sha512-HVpkgpn4BQt4BPDAjTOpeMub6mzNWw6Y3gaLQJrpbO24pws6ZwYkY24OI3/Uo3LDCbH6856MM81JxECt92OWjA==
-
-esbuild-sunos-64@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.3.tgz#53a941241f881010969cc8f1acb1ada49c4cd3c2"
- integrity sha512-XncBVOtnEfUbPV4CaiFBxh38ychnBfwCxuTm9iAqcHzIwkmeNRN5qMzDyfE1jyfJje+Bbt6AvIfz6SdYt8/UEQ==
-
-esbuild-windows-32@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.3.tgz#265dc0d0cdb5374685a851c584857055e12865a4"
- integrity sha512-ZlgDz7d1nk8wQACi+z8IDzNZVUlN9iprAme+1YSTsfFDlkyI8jeaGWPk9EQFNY7rJzsLVYm6eZ2mhPioc7uT5A==
-
-esbuild-windows-64@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.3.tgz#ae710c0629ec8c39c5ef1f69e86ed5592bb4128f"
- integrity sha512-YX7KvRez3TR+GudlQm9tND/ssj2FsF9vb8ZWzAoZOLxpPzE3y+3SFJNrfDzzQKPzJ0Pnh9KBP4gsaMwJjKHDhw==
-
-esbuild-windows-arm64@0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.3.tgz#a236199a26b1205573dcb571f966189326a4c953"
- integrity sha512-nP7H0Y2a6OJd3Qi1Q8sehhyP4x4JoXK4S5y6FzH2vgaJgiyEurzFxjUufGdMaw+RxtxiwD/uRndUgwaZ2JD8lg==
-
-esbuild@^0.12.28:
- version "0.12.29"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.29.tgz#be602db7c4dc78944a9dbde0d1ea19d36c1f882d"
- integrity sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==
-
-esbuild@^0.13.2:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.3.tgz#cc9fc347fc81ff6440cdd1fdb9fe65c02eddcc97"
- integrity sha512-98xovMLKnyhv3gcReUuAEi5Ig1rK6SIgvsJuBIcfwzqGSEHsV8UJjMlmkhHoHMf9XZybMpE9Zax8AA8f7i2hlQ==
+dotenv@^16.0.1:
+ version "16.0.1"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.1.tgz#8f8f9d94876c35dac989876a5d3a82a267fdce1d"
+ integrity sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==
+
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+esbuild-android-64@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.43.tgz#59bf3edad6863c27aa92bbb5c1d83a9a5c981495"
+ integrity sha512-kqFXAS72K6cNrB6RiM7YJ5lNvmWRDSlpi7ZuRZ1hu1S3w0zlwcoCxWAyM23LQUyZSs1PbjHgdbbfYAN8IGh6xg==
+
+esbuild-android-arm64@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.43.tgz#0258704edf92ce2463af6d2900b844b5423bed63"
+ integrity sha512-bKS2BBFh+7XZY9rpjiHGRNA7LvWYbZWP87pLehggTG7tTaCDvj8qQGOU/OZSjCSKDYbgY7Q+oDw8RlYQ2Jt2BA==
+
+esbuild-darwin-64@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.43.tgz#72a47295678d4aa0656979baa8cf6d5c8c92656f"
+ integrity sha512-/3PSilx011ttoieRGkSZ0XV8zjBf2C9enV4ScMMbCT4dpx0mFhMOpFnCHkOK0pWGB8LklykFyHrWk2z6DENVUg==
+
+esbuild-darwin-arm64@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.43.tgz#5f5823170b8d85b888957f0794e186caac447aca"
+ integrity sha512-1HyFUKs8DMCBOvw1Qxpr5Vv/ThNcVIFb5xgXWK3pyT40WPvgYIiRTwJCvNs4l8i5qWF8/CK5bQxJVDjQvtv0Yw==
+
+esbuild-freebsd-64@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.43.tgz#e4a48b08181053837e6cd9bda19ae0af94d493b0"
+ integrity sha512-FNWc05TPHYgaXjbPZO5/rJKSBslfG6BeMSs8GhwnqAKP56eEhvmzwnIz1QcC9cRVyO+IKqWNfmHFkCa1WJTULA==
+
+esbuild-freebsd-arm64@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.43.tgz#386e780d36c1dedf3a1cdab79e0bbacd873274e6"
+ integrity sha512-amrYopclz3VohqisOPR6hA3GOWA3LZC1WDLnp21RhNmoERmJ/vLnOpnrG2P/Zao+/erKTCUqmrCIPVtj58DRoA==
+
+esbuild-linux-32@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.43.tgz#040ed6b9ebf06d73acdf2acce7f1cd0c12fbc6a5"
+ integrity sha512-KoxoEra+9O3AKVvgDFvDkiuddCds6q71owSQEYwjtqRV7RwbPzKxJa6+uyzUulHcyGVq0g15K0oKG5CFBcvYDw==
+
+esbuild-linux-64@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.43.tgz#8abbb7594ab6a008f2aae72d95d8a4fdc59d9000"
+ integrity sha512-EwINwGMyiJMgBby5/SbMqKcUhS5AYAZ2CpEBzSowsJPNBJEdhkCTtEjk757TN/wxgbu3QklqDM6KghY660QCUw==
+
+esbuild-linux-arm64@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.43.tgz#4e8e9ce77cbf7efec65e79e512b3d2fbd2da398f"
+ integrity sha512-UlSpjMWllAc70zYbHxWuDS3FJytyuR/gHJYBr8BICcTNb/TSOYVBg6U7b3jZ3mILTrgzwJUHwhEwK18FZDouUQ==
+
+esbuild-linux-arm@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.43.tgz#9e41ee5e099c0ffdfd150da154330c2c0226cc96"
+ integrity sha512-e6YzQUoDxxtyamuF12eVzzRC7bbEFSZohJ6igQB9tBqnNmIQY3fI6Cns3z2wxtbZ3f2o6idkD2fQnlvs2902Dg==
+
+esbuild-linux-mips64le@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.43.tgz#4b41f465a787f91cc4fe7dffa0dcabf655935a1a"
+ integrity sha512-f+v8cInPEL1/SDP//CfSYzcDNgE4CY3xgDV81DWm3KAPWzhvxARrKxB1Pstf5mB56yAslJDxu7ryBUPX207EZA==
+
+esbuild-linux-ppc64le@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.43.tgz#ca15934f5b46728dd9ac05270e783e7feaca9eaf"
+ integrity sha512-5wZYMDGAL/K2pqkdIsW+I4IR41kyfHr/QshJcNpUfK3RjB3VQcPWOaZmc+74rm4ZjVirYrtz+jWw0SgxtxRanA==
+
+esbuild-linux-riscv64@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.43.tgz#70fce2b5a0605a67e58b5a357b0e00be1029836d"
+ integrity sha512-lYcAOUxp85hC7lSjycJUVSmj4/9oEfSyXjb/ua9bNl8afonaduuqtw7hvKMoKuYnVwOCDw4RSfKpcnIRDWq+Bw==
+
+esbuild-linux-s390x@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.43.tgz#318d03b4f4ccc7fa44ac7562121cf4a4529e477a"
+ integrity sha512-27e43ZhHvhFE4nM7HqtUbMRu37I/4eNSUbb8FGZWszV+uLzMIsHDwLoBiJmw7G9N+hrehNPeQ4F5Ujad0DrUKQ==
+
+esbuild-netbsd-64@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.43.tgz#86130ce204ef0162a96e863b55851efecc92f423"
+ integrity sha512-2mH4QF6hHBn5zzAfxEI/2eBC0mspVsZ6UVo821LpAJKMvLJPBk3XJO5xwg7paDqSqpl7p6IRrAenW999AEfJhQ==
+
+esbuild-openbsd-64@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.43.tgz#0229dc2db2ded97b03bb93bba7646b30ffdf5d0d"
+ integrity sha512-ZhQpiZjvqCqO8jKdGp9+8k9E/EHSA+zIWOg+grwZasI9RoblqJ1QiZqqi7jfd6ZrrG1UFBNGe4m0NFxCFbMVbg==
+
+esbuild-sunos-64@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.43.tgz#17e316216eb9f1de25d52a9000356ae5b869e736"
+ integrity sha512-DgxSi9DaHReL9gYuul2rrQCAapgnCJkh3LSHPKsY26zytYppG0HgkgVF80zjIlvEsUbGBP/GHQzBtrezj/Zq1Q==
+
+esbuild-windows-32@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.43.tgz#a173757bc6dfd0f2656ff40b64f7f9290745778e"
+ integrity sha512-Ih3+2O5oExiqm0mY6YYE5dR0o8+AspccQ3vIAtRodwFvhuyGLjb0Hbmzun/F3Lw19nuhPMu3sW2fqIJ5xBxByw==
+
+esbuild-windows-64@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.43.tgz#c447b23126aad158c4fe6a394342cafd97926ed1"
+ integrity sha512-8NsuNfI8xwFuJbrCuI+aBqNTYkrWErejFO5aYM+yHqyHuL8mmepLS9EPzAzk8rvfaJrhN0+RvKWAcymViHOKEw==
+
+esbuild-windows-arm64@0.14.43:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.43.tgz#3caed1b430d394d7a7836407b9d36c4750246e76"
+ integrity sha512-7ZlD7bo++kVRblJEoG+cepljkfP8bfuTPz5fIXzptwnPaFwGS6ahvfoYzY7WCf5v/1nX2X02HDraVItTgbHnKw==
+
+esbuild@^0.14.25, esbuild@^0.14.27:
+ version "0.14.43"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.43.tgz#c227d585c512d3e0f23b88f50b8e16501147f647"
+ integrity sha512-Uf94+kQmy/5jsFwKWiQB4hfo/RkM9Dh7b79p8yqd1tshULdr25G2szLz631NoH3s2ujnKEKVD16RmOxvCNKRFA==
optionalDependencies:
- esbuild-android-arm64 "0.13.3"
- esbuild-darwin-64 "0.13.3"
- esbuild-darwin-arm64 "0.13.3"
- esbuild-freebsd-64 "0.13.3"
- esbuild-freebsd-arm64 "0.13.3"
- esbuild-linux-32 "0.13.3"
- esbuild-linux-64 "0.13.3"
- esbuild-linux-arm "0.13.3"
- esbuild-linux-arm64 "0.13.3"
- esbuild-linux-mips64le "0.13.3"
- esbuild-linux-ppc64le "0.13.3"
- esbuild-openbsd-64 "0.13.3"
- esbuild-sunos-64 "0.13.3"
- esbuild-windows-32 "0.13.3"
- esbuild-windows-64 "0.13.3"
- esbuild-windows-arm64 "0.13.3"
-
-estree-walker@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
- integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
+ esbuild-android-64 "0.14.43"
+ esbuild-android-arm64 "0.14.43"
+ esbuild-darwin-64 "0.14.43"
+ esbuild-darwin-arm64 "0.14.43"
+ esbuild-freebsd-64 "0.14.43"
+ esbuild-freebsd-arm64 "0.14.43"
+ esbuild-linux-32 "0.14.43"
+ esbuild-linux-64 "0.14.43"
+ esbuild-linux-arm "0.14.43"
+ esbuild-linux-arm64 "0.14.43"
+ esbuild-linux-mips64le "0.14.43"
+ esbuild-linux-ppc64le "0.14.43"
+ esbuild-linux-riscv64 "0.14.43"
+ esbuild-linux-s390x "0.14.43"
+ esbuild-netbsd-64 "0.14.43"
+ esbuild-openbsd-64 "0.14.43"
+ esbuild-sunos-64 "0.14.43"
+ esbuild-windows-32 "0.14.43"
+ esbuild-windows-64 "0.14.43"
+ esbuild-windows-arm64 "0.14.43"
+
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
execa@^5.0.0:
version "5.1.1"
@@ -452,7 +471,7 @@ execa@^5.0.0:
signal-exit "^3.0.3"
strip-final-newline "^2.0.0"
-fast-glob@^3.1.1, fast-glob@^3.2.7:
+fast-glob@^3.1.1:
version "3.2.7"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1"
integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==
@@ -477,10 +496,35 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
-follow-redirects@^1.14.4:
- version "1.14.8"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc"
- integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==
+find-up@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+ integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+ dependencies:
+ locate-path "^6.0.0"
+ path-exists "^4.0.0"
+
+follow-redirects@^1.14.9:
+ version "1.15.1"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5"
+ integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==
+
+foreground-child@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53"
+ integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==
+ dependencies:
+ cross-spawn "^7.0.0"
+ signal-exit "^3.0.2"
+
+form-data@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
+ integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
fs.realpath@^1.0.0:
version "1.0.0"
@@ -497,6 +541,16 @@ function-bind@^1.1.1:
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+get-caller-file@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+get-func-name@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
+ integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==
+
get-stream@^6.0.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
@@ -533,6 +587,18 @@ glob@^7.1.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
+glob@^7.1.4:
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.1.1"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
globby@^11.0.3:
version "11.0.4"
resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5"
@@ -557,6 +623,11 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
+html-escaper@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+ integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+
human-signals@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
@@ -601,10 +672,10 @@ is-binary-path@~2.1.0:
dependencies:
binary-extensions "^2.0.0"
-is-core-module@^2.2.0:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3"
- integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==
+is-core-module@^2.8.1:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
+ integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
dependencies:
has "^1.0.3"
@@ -613,6 +684,11 @@ is-extglob@^2.1.1:
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
is-glob@^4.0.1, is-glob@~4.0.1:
version "4.0.3"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
@@ -635,10 +711,27 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
-jiti@^1.12.5:
- version "1.12.6"
- resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.12.6.tgz#8884d53a10bd571e0e85787994d97cfcc48ac6f9"
- integrity sha512-drQ/qnYriF9KiU47sRF0rTvfQmJo4JEmFMhCk2SJIsUj+hGnQaxkwaKfyvK9KenX20JNTQmVfJOz7VWe0cSntw==
+istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3"
+ integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==
+
+istanbul-lib-report@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
+ integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
+ dependencies:
+ istanbul-lib-coverage "^3.0.0"
+ make-dir "^3.0.0"
+ supports-color "^7.1.0"
+
+istanbul-reports@^3.1.4:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c"
+ integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==
+ dependencies:
+ html-escaper "^2.0.0"
+ istanbul-lib-report "^3.0.0"
joycon@^3.0.1:
version "3.0.1"
@@ -655,12 +748,41 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
-magic-string@^0.25.7:
- version "0.25.7"
- resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
- integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==
+load-tsconfig@^0.2.0:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/load-tsconfig/-/load-tsconfig-0.2.3.tgz#08af3e7744943caab0c75f8af7f1703639c3ef1f"
+ integrity sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==
+
+local-pkg@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.1.tgz#e7b0d7aa0b9c498a1110a5ac5b00ba66ef38cfff"
+ integrity sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==
+
+locate-path@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+ integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
dependencies:
- sourcemap-codec "^1.4.4"
+ p-locate "^5.0.0"
+
+lodash.sortby@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
+ integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==
+
+loupe@^2.3.1:
+ version "2.3.4"
+ resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3"
+ integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==
+ dependencies:
+ get-func-name "^2.0.0"
+
+make-dir@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+ dependencies:
+ semver "^6.0.0"
merge-stream@^2.0.0:
version "2.0.0"
@@ -680,6 +802,18 @@ micromatch@^4.0.4:
braces "^3.0.1"
picomatch "^2.2.3"
+mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.12:
+ version "2.1.35"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
mimic-fn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
@@ -692,6 +826,18 @@ minimatch@^3.0.4:
dependencies:
brace-expansion "^1.1.7"
+minimatch@^3.1.1:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+mrmime@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27"
+ integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==
+
ms@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
@@ -706,10 +852,10 @@ mz@^2.7.0:
object-assign "^4.0.1"
thenify-all "^1.0.0"
-nanoid@^3.1.28:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c"
- integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==
+nanoid@^3.3.4:
+ version "3.3.4"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
+ integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
node-modules-regexp@^1.0.0:
version "1.0.0"
@@ -747,6 +893,25 @@ onetime@^5.1.2:
dependencies:
mimic-fn "^2.1.0"
+p-limit@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+ integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+ dependencies:
+ yocto-queue "^0.1.0"
+
+p-locate@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+ integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+ dependencies:
+ p-limit "^3.0.2"
+
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@@ -757,7 +922,7 @@ path-key@^3.0.0, path-key@^3.1.0:
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-path-parse@^1.0.6:
+path-parse@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
@@ -767,10 +932,15 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
-picocolors@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f"
- integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==
+pathval@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d"
+ integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
+
+picocolors@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+ integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
version "2.3.0"
@@ -793,14 +963,19 @@ postcss-load-config@^3.0.1:
lilconfig "^2.0.3"
yaml "^1.10.2"
-postcss@^8.1.10, postcss@^8.3.8:
- version "8.3.9"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.9.tgz#98754caa06c4ee9eb59cc48bd073bb6bd3437c31"
- integrity sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==
+postcss@^8.4.13:
+ version "8.4.14"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf"
+ integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
dependencies:
- nanoid "^3.1.28"
- picocolors "^0.2.1"
- source-map-js "^0.6.2"
+ nanoid "^3.3.4"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
+punycode@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
queue-microtask@^1.2.2:
version "1.2.3"
@@ -814,18 +989,24 @@ readdirp@~3.6.0:
dependencies:
picomatch "^2.2.1"
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+
resolve-from@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
-resolve@^1.20.0:
- version "1.20.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
- integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
+resolve@^1.22.0:
+ version "1.22.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
+ integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
dependencies:
- is-core-module "^2.2.0"
- path-parse "^1.0.6"
+ is-core-module "^2.8.1"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
reusify@^1.0.4:
version "1.0.4"
@@ -839,10 +1020,10 @@ rimraf@^3.0.2:
dependencies:
glob "^7.1.3"
-rollup@^2.56.1, rollup@^2.57.0:
- version "2.58.0"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.58.0.tgz#a643983365e7bf7f5b7c62a8331b983b7c4c67fb"
- integrity sha512-NOXpusKnaRpbS7ZVSzcEXqxcLDOagN6iFS8p45RkoiMqPHDLwJm758UF05KlMoCRbLBTZsPOIa887gZJ1AiXvw==
+rollup@^2.59.0, rollup@^2.74.1:
+ version "2.75.6"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.75.6.tgz#ac4dc8600f95942a0180f61c7c9d6200e374b439"
+ integrity sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==
optionalDependencies:
fsevents "~2.3.2"
@@ -853,6 +1034,16 @@ run-parallel@^1.1.9:
dependencies:
queue-microtask "^1.2.2"
+safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+semver@^6.0.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
shebang-command@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
@@ -865,40 +1056,67 @@ shebang-regex@^3.0.0:
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+signal-exit@^3.0.2:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
signal-exit@^3.0.3:
version "3.0.5"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f"
integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==
+sirv@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.2.tgz#128b9a628d77568139cff85703ad5497c46a4760"
+ integrity sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==
+ dependencies:
+ "@polka/url" "^1.0.0-next.20"
+ mrmime "^1.0.0"
+ totalist "^3.0.0"
+
slash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
-source-map-js@^0.6.2:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e"
- integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==
+source-map-js@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
+ integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+
+source-map@0.8.0-beta.0:
+ version "0.8.0-beta.0"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11"
+ integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==
+ dependencies:
+ whatwg-url "^7.0.0"
-source-map@^0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
- integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+string-width@^4.1.0, string-width@^4.2.0:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
-sourcemap-codec@^1.4.4:
- version "1.4.8"
- resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
- integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
strip-final-newline@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
-sucrase@^3.20.1:
- version "3.20.1"
- resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.20.1.tgz#1c055e97d0fab2f9857f02461364075b3a4ab226"
- integrity sha512-BIG59HaJOxNct9Va6KvT5yzBA/rcMGetzvZyTx0ZdCcspIbpJTPS64zuAfYlJuOj+3WaI5JOdA+F0bJQQi8ZiQ==
+sucrase@^3.20.3:
+ version "3.21.0"
+ resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.21.0.tgz#6a5affdbe716b22e4dc99c57d366ad0d216444b9"
+ integrity sha512-FjAhMJjDcifARI7bZej0Bi1yekjWQHoEvWIXhLPwDhC6O4iZ5PtGb86WV56riW87hzpgB13wwBKO9vKAiWu5VQ==
dependencies:
commander "^4.0.0"
glob "7.1.6"
@@ -914,6 +1132,20 @@ supports-color@^7.1.0:
dependencies:
has-flag "^4.0.0"
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+test-exclude@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
+ integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
+ dependencies:
+ "@istanbuljs/schema" "^0.1.2"
+ glob "^7.1.4"
+ minimatch "^3.0.4"
+
thenify-all@^1.0.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
@@ -928,6 +1160,16 @@ thenify-all@^1.0.0:
dependencies:
any-promise "^1.0.0"
+tinypool@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.1.3.tgz#b5570b364a1775fd403de5e7660b325308fee26b"
+ integrity sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==
+
+tinyspy@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-0.3.2.tgz#2f95cb14c38089ca690385f339781cd35faae566"
+ integrity sha512-2+40EP4D3sFYy42UkgkFFB+kiX2Tg3URG/lVvAZFfLxgGpnWl5qQJuBw1gaLttq8UOS+2p3C0WrhJnQigLTT2Q==
+
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@@ -935,6 +1177,18 @@ to-regex-range@^5.0.1:
dependencies:
is-number "^7.0.0"
+totalist@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.0.tgz#4ef9c58c5f095255cdc3ff2a0a55091c57a3a1bd"
+ integrity sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==
+
+tr46@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
+ integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==
+ dependencies:
+ punycode "^2.1.0"
+
tree-kill@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
@@ -945,67 +1199,84 @@ ts-interface-checker@^0.1.9:
resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"
integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
-tsup@^5.2.1, tsup@^5.3.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/tsup/-/tsup-5.3.0.tgz#a62bf44922a2234a6c0b7499cf4237ca12eeb9de"
- integrity sha512-/LZTuAj1Lhh7iXBhtWTWjPodtmOkg6HnhdWo+sl4JftJTAJqnxnHerOiFYjPeA5RIhcaFc2w2Sho1rGLJ7rLhw==
+tsup@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/tsup/-/tsup-6.1.0.tgz#85d346b3f40da523a736b0eb5a687554106bce72"
+ integrity sha512-kKSzFbX996OXkbQif23LV0xDDvxnhH95Hw39ku7Kx1NEfJxcxvqexGGEDgRyd5dlzIJI4U8mySfPeq5iExYwnw==
dependencies:
- cac "^6.7.2"
- chalk "^4.1.0"
+ bundle-require "^3.0.2"
+ cac "^6.7.12"
chokidar "^3.5.1"
debug "^4.3.1"
- esbuild "^0.12.28"
+ esbuild "^0.14.25"
execa "^5.0.0"
globby "^11.0.3"
joycon "^3.0.1"
postcss-load-config "^3.0.1"
resolve-from "^5.0.0"
- rollup "^2.56.1"
- sucrase "^3.20.1"
+ rollup "^2.74.1"
+ source-map "0.8.0-beta.0"
+ sucrase "^3.20.3"
tree-kill "^1.2.2"
-typescript@^4.4.3:
- version "4.4.3"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324"
- integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==
-
-vite-plugin-windicss@^1.4.9:
- version "1.4.9"
- resolved "https://registry.yarnpkg.com/vite-plugin-windicss/-/vite-plugin-windicss-1.4.9.tgz#7f97a6157790d614d4cc518e86cfd62abc189285"
- integrity sha512-4DxBnsQ8dvhhtR5aUgpTApxN7Auh11/9xOIW7Qdu+OuTY6tyU1NqZntVQpwArf4gNsJssgUBBCfFx1zei+rYnQ==
- dependencies:
- "@windicss/plugin-utils" "1.4.9"
- chalk "^4.1.2"
- debug "^4.3.2"
- windicss "^3.1.8"
-
-vite@^2.6.2:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/vite/-/vite-2.6.2.tgz#5bbb4afe1f69ed9d6482e51a0f761f8cfc230e22"
- integrity sha512-HSIg9U15LOnbD3CUxX364Pdrm7DUjftuBljowGxvkFHgDZU/SKPqApg9t86MX/Qq1VCO7wS+mGJHlfuTF7c0Sg==
- dependencies:
- esbuild "^0.13.2"
- postcss "^8.3.8"
- resolve "^1.20.0"
- rollup "^2.57.0"
+type-detect@^4.0.0, type-detect@^4.0.5:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+
+typescript@^4.7.3:
+ version "4.7.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.3.tgz#8364b502d5257b540f9de4c40be84c98e23a129d"
+ integrity sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==
+
+v8-to-istanbul@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz#be0dae58719fc53cb97e5c7ac1d7e6d4f5b19511"
+ integrity sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.7"
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ convert-source-map "^1.6.0"
+
+vite@^2.9.9:
+ version "2.9.11"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-2.9.11.tgz#59a5a25fe40a4dcddc1ad3c348f4f0d8031ff926"
+ integrity sha512-h1n8bAN5Psv/V+RAY3P6OtYyGSFQdusgYWiLRAk41qY7rSyH4K5Jq+RUXztzyPVB0oHbnXPUuS2Aj44jucViUA==
+ dependencies:
+ esbuild "^0.14.27"
+ postcss "^8.4.13"
+ resolve "^1.22.0"
+ rollup "^2.59.0"
optionalDependencies:
fsevents "~2.3.2"
-vue-demi@*:
- version "0.11.4"
- resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.11.4.tgz#6101992fe4724cf5634018a16e953f3052e94e2a"
- integrity sha512-/3xFwzSykLW2HiiLie43a+FFgNOcokbBJ+fzvFXd0r2T8MYohqvphUyDQ8lbAwzQ3Dlcrb1c9ykifGkhSIAk6A==
-
-vue@^3.2.19:
- version "3.2.19"
- resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.19.tgz#da2c80a6a0271c7097fee9e31692adfd9d569c8f"
- integrity sha512-6KAMdIfAtlK+qohTIUE4urwAv4A3YRuo8uAbByApUmiB0CziGAAPs6qVugN6oHPia8YIafHB/37K0O6KZ7sGmA==
- dependencies:
- "@vue/compiler-dom" "3.2.19"
- "@vue/compiler-sfc" "3.2.19"
- "@vue/runtime-dom" "3.2.19"
- "@vue/server-renderer" "3.2.19"
- "@vue/shared" "3.2.19"
+vitest@^0.14.2:
+ version "0.14.2"
+ resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.14.2.tgz#ac07b46d3cd3b5667d2bb803962f759a1b8f3f89"
+ integrity sha512-vXQUl8OUCqHmxKWscMGL+6Xl1pBJmYHZ8N85iNpLGrirAC2vhspu7b73ShRcLonmZT44BYZW+LBAVvn0L4jyVA==
+ dependencies:
+ "@types/chai" "^4.3.1"
+ "@types/chai-subset" "^1.3.3"
+ chai "^4.3.6"
+ debug "^4.3.4"
+ local-pkg "^0.4.1"
+ tinypool "^0.1.3"
+ tinyspy "^0.3.2"
+ vite "^2.9.9"
+
+webidl-conversions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
+ integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
+
+whatwg-url@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
+ integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
+ dependencies:
+ lodash.sortby "^4.7.0"
+ tr46 "^1.0.1"
+ webidl-conversions "^4.0.2"
which@^2.0.1:
version "2.0.2"
@@ -1014,17 +1285,49 @@ which@^2.0.1:
dependencies:
isexe "^2.0.0"
-windicss@^3.1.8, windicss@^3.1.9:
- version "3.1.9"
- resolved "https://registry.yarnpkg.com/windicss/-/windicss-3.1.9.tgz#e43d924168422efa743c8223607c3af47d2d0291"
- integrity sha512-5YoKvXeCQXIdwc91BoOgpKbIImr2JS8I14rPMa/5dKDDPA4ot3NgICWKELkml39R/8rn4Q0BVUUTqN+w+hjDSA==
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+y18n@^5.0.5:
+ version "5.0.8"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+ integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
yaml@^1.10.2:
version "1.10.2"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+
+yargs-parser@^20.2.2, yargs-parser@^20.2.9:
+ version "20.2.9"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
+ integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
+
+yargs@^16.2.0:
+ version "16.2.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+ integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+ dependencies:
+ cliui "^7.0.2"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.0"
+ y18n "^5.0.5"
+ yargs-parser "^20.2.2"
+
+yocto-queue@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+ integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==