mirror of
https://github.com/tribufu/sdk-js
synced 2025-06-16 02:34:19 +00:00
Parse bot token to get id and add examples
This commit is contained in:
@ -10,3 +10,6 @@ insert_final_newline = true
|
|||||||
|
|
||||||
[*.md]
|
[*.md]
|
||||||
trim_trailing_whitespace = false
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
[*.env*]
|
||||||
|
insert_final_newline = false
|
||||||
|
5
.env.example
Normal file
5
.env.example
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
TRIBUFU_API_KEY=
|
||||||
|
TRIBUFU_BOT_TOKEN=
|
||||||
|
TRIBUFU_CLIENT_ID=
|
||||||
|
TRIBUFU_CLIENT_SECRET=
|
||||||
|
TRIBUFU_SERVER_ID=
|
8
examples/api.js
Normal file
8
examples/api.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
// Copyright (c) Tribufu. All Rights Reserved.
|
||||||
|
|
||||||
|
import dotenv from 'dotenv';
|
||||||
|
import { TribufuApi } from '../src';
|
||||||
|
|
||||||
|
dotenv.config();
|
||||||
|
|
||||||
|
const api = TribufuApi.fromEnv();
|
9
examples/bot.js
Normal file
9
examples/bot.js
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
// Copyright (c) Tribufu. All Rights Reserved.
|
||||||
|
|
||||||
|
import dotenv from 'dotenv';
|
||||||
|
import { TribufuBot } from '../build';
|
||||||
|
|
||||||
|
dotenv.config();
|
||||||
|
|
||||||
|
const bot = TribufuBot.fromEnv();
|
||||||
|
const botId = bot.getBotId();
|
9
examples/client.js
Normal file
9
examples/client.js
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
// Copyright (c) Tribufu. All Rights Reserved.
|
||||||
|
|
||||||
|
import dotenv from 'dotenv';
|
||||||
|
import { TribufuClient } from '../build';
|
||||||
|
|
||||||
|
dotenv.config();
|
||||||
|
|
||||||
|
const client = TribufuClient.fromEnv();
|
||||||
|
const clientId = client.getClientId();
|
10
examples/server.js
Normal file
10
examples/server.js
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// Copyright (c) Tribufu. All Rights Reserved.
|
||||||
|
|
||||||
|
import dotenv from 'dotenv';
|
||||||
|
import { TribufuServer } from '../build';
|
||||||
|
|
||||||
|
dotenv.config();
|
||||||
|
|
||||||
|
const server = TribufuServer.fromEnv();
|
||||||
|
const serverId = server.getServerId();
|
||||||
|
const clientId = server.getClientId();
|
@ -20,13 +20,18 @@
|
|||||||
"camelcase-keys": "^9.1.2",
|
"camelcase-keys": "^9.1.2",
|
||||||
"fp-ts": "^2.16.1",
|
"fp-ts": "^2.16.1",
|
||||||
"json-bigint": "^1.0.0",
|
"json-bigint": "^1.0.0",
|
||||||
|
"jsonwebtoken": "^9.0.2",
|
||||||
"snakecase-keys": "^5.5.0",
|
"snakecase-keys": "^5.5.0",
|
||||||
"uuid": "^9.0.1"
|
"uuid": "^9.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/dotenv": "^8.2.0",
|
||||||
"@types/json-bigint": "^1.0.4",
|
"@types/json-bigint": "^1.0.4",
|
||||||
|
"@types/jsonwebtoken": "^9.0.5",
|
||||||
|
"@types/node": "^20.10.6",
|
||||||
"@types/uuid": "^9.0.7",
|
"@types/uuid": "^9.0.7",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
|
"dotenv": "^16.3.1",
|
||||||
"esbuild": "^0.19.10",
|
"esbuild": "^0.19.10",
|
||||||
"esbuild-node-externals": "^1.12.0",
|
"esbuild-node-externals": "^1.12.0",
|
||||||
"rimraf": "^5.0.5",
|
"rimraf": "^5.0.5",
|
||||||
|
68
src/api.ts
68
src/api.ts
@ -3,12 +3,13 @@
|
|||||||
import { HeaderMap } from "./http";
|
import { HeaderMap } from "./http";
|
||||||
import { JavaScriptRuntime } from "./node";
|
import { JavaScriptRuntime } from "./node";
|
||||||
import { TribufuApiOptions } from "./options";
|
import { TribufuApiOptions } from "./options";
|
||||||
|
import { TribufuBot } from "./bot";
|
||||||
import { TribufuClient } from "./client";
|
import { TribufuClient } from "./client";
|
||||||
import { TribufuServer } from "./server";
|
import { TribufuServer } from "./server";
|
||||||
import axios, { AxiosInstance } from "axios";
|
import axios, { AxiosInstance } from "axios";
|
||||||
|
import jwt from "jsonwebtoken";
|
||||||
export const TRIBUFU_VERSION = "0.0.0";
|
import { TokenPayload } from "./token";
|
||||||
export const TRIBUFU_API_URL = "https://api.tribufu.com";
|
import { TRIBUFU_API_URL, TRIBUFU_VERSION } from ".";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* **Tribufu API**
|
* **Tribufu API**
|
||||||
@ -42,6 +43,10 @@ export class TribufuApi {
|
|||||||
this.http = http;
|
this.http = http;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a TribufuApi with the default options.
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
public static default(): TribufuApi {
|
public static default(): TribufuApi {
|
||||||
return new TribufuApi({});
|
return new TribufuApi({});
|
||||||
}
|
}
|
||||||
@ -207,6 +212,26 @@ export class TribufuApi {
|
|||||||
return TribufuApi.detectRuntime() === JavaScriptRuntime.Node;
|
return TribufuApi.detectRuntime() === JavaScriptRuntime.Node;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extract the payload from a Tribufu token.
|
||||||
|
* @param token
|
||||||
|
* @returns TokenPayload | null
|
||||||
|
*/
|
||||||
|
protected static parseToken(token: string): TokenPayload | null {
|
||||||
|
try {
|
||||||
|
const payload = jwt.decode(token);
|
||||||
|
|
||||||
|
if (!payload) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return payload as TokenPayload;
|
||||||
|
}
|
||||||
|
catch (error) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get current headers with the api key or access token.
|
* Get current headers with the api key or access token.
|
||||||
* @returns HeaderMap
|
* @returns HeaderMap
|
||||||
@ -403,41 +428,4 @@ export class TribufuApi {
|
|||||||
|
|
||||||
return responseBody;
|
return responseBody;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* **Tribufu Bot**
|
|
||||||
*
|
|
||||||
* To authenticate a bot you need to use the bot token obtained from the Tribufu Developer Portal.
|
|
||||||
*
|
|
||||||
* - A bot is a special type of user account.
|
|
||||||
* - A bot give you read and write access to the Tribufu API.
|
|
||||||
*/
|
|
||||||
export class TribufuBot extends TribufuApi {
|
|
||||||
constructor(token: string) {
|
|
||||||
super({ accessToken: token });
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Try to create a TribufuBot from environment variables.
|
|
||||||
*
|
|
||||||
* - This will only work if the environment variables are set.
|
|
||||||
*
|
|
||||||
* @param prefix A prefix for the environment variables.
|
|
||||||
* @returns TribufuBot | null
|
|
||||||
* @example
|
|
||||||
* ```ts
|
|
||||||
* const bot = TribufuBot.fromEnv("TRIBUFU_"); // process.env.TRIBUFU_BOT_TOKEN
|
|
||||||
* ```
|
|
||||||
*/
|
|
||||||
public static override fromEnv(prefix: string = ""): TribufuBot | null {
|
|
||||||
const token = process.env[`${prefix}BOT_TOKEN`];
|
|
||||||
|
|
||||||
if (token) {
|
|
||||||
return TribufuApi.withBot(token);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
26
src/bot.ts
26
src/bot.ts
@ -11,8 +11,26 @@ import { TribufuApi } from "./api";
|
|||||||
* - A bot give you read and write access to the Tribufu API.
|
* - A bot give you read and write access to the Tribufu API.
|
||||||
*/
|
*/
|
||||||
export class TribufuBot extends TribufuApi {
|
export class TribufuBot extends TribufuApi {
|
||||||
|
private readonly botId: string;
|
||||||
|
|
||||||
constructor(token: string) {
|
constructor(token: string) {
|
||||||
|
const payload = TribufuApi.parseToken(token);
|
||||||
|
|
||||||
|
if (!payload) {
|
||||||
|
throw new Error("Invalid token");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (payload.type !== "bot") {
|
||||||
|
throw new Error("Invalid token type");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!payload.bot_id) {
|
||||||
|
throw new Error("Invalid token payload");
|
||||||
|
}
|
||||||
|
|
||||||
super({ accessToken: token });
|
super({ accessToken: token });
|
||||||
|
|
||||||
|
this.botId = payload.bot_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -37,4 +55,12 @@ export class TribufuBot extends TribufuApi {
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the bot id.
|
||||||
|
* @returns string
|
||||||
|
*/
|
||||||
|
public getBotId(): string {
|
||||||
|
return this.botId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -79,20 +79,37 @@ export class TribufuClient extends TribufuApi {
|
|||||||
return client;
|
return client;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the tokens.
|
||||||
|
* @param accessToken
|
||||||
|
* @param refreshToken
|
||||||
|
* @param expiresIn
|
||||||
|
*/
|
||||||
private setTokens(accessToken: string | null, refreshToken?: string | null, expiresIn?: number | null): void {
|
private setTokens(accessToken: string | null, refreshToken?: string | null, expiresIn?: number | null): void {
|
||||||
this.options.accessToken = accessToken;
|
this.options.accessToken = accessToken;
|
||||||
this.options.refreshToken = refreshToken || null;
|
this.options.refreshToken = refreshToken || null;
|
||||||
this.options.expiresIn = expiresIn || null;
|
this.options.expiresIn = expiresIn || null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear the tokens.
|
||||||
|
*/
|
||||||
private clearTokens(): void {
|
private clearTokens(): void {
|
||||||
this.setTokens(null, null, null);
|
this.setTokens(null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the tokens from a oauth2 response.
|
||||||
|
* @param tokens
|
||||||
|
*/
|
||||||
private setTokensFromResponse(tokens: OAuth2TokenResponse): void {
|
private setTokensFromResponse(tokens: OAuth2TokenResponse): void {
|
||||||
this.setTokens(tokens.access_token, tokens.refresh_token || null, tokens.expires_in || null);
|
this.setTokens(tokens.access_token, tokens.refresh_token || null, tokens.expires_in || null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the headers for a oauth2 request.
|
||||||
|
* @returns HeaderMap
|
||||||
|
*/
|
||||||
private getOAuthHeaders(): HeaderMap {
|
private getOAuthHeaders(): HeaderMap {
|
||||||
let headers = this.getHeaders();
|
let headers = this.getHeaders();
|
||||||
headers["Authorization"] = `Basic ${Buffer.from(`${this.clientId}:${this.clientSecret}`, "binary").toString("base64")}`;
|
headers["Authorization"] = `Basic ${Buffer.from(`${this.clientId}:${this.clientSecret}`, "binary").toString("base64")}`;
|
||||||
@ -100,10 +117,18 @@ export class TribufuClient extends TribufuApi {
|
|||||||
return headers;
|
return headers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the client id.
|
||||||
|
* @returns string
|
||||||
|
*/
|
||||||
|
public getClientId(): string {
|
||||||
|
return this.clientId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Login using an authorization code.
|
* Login using an authorization code.
|
||||||
* @param authorizationCode
|
* @param authorizationCode
|
||||||
* @returns
|
* @returns boolean
|
||||||
*/
|
*/
|
||||||
public async authorizationLogin(authorizationCode: string): Promise<boolean> {
|
public async authorizationLogin(authorizationCode: string): Promise<boolean> {
|
||||||
const response = await this.getToken("authorization_code", authorizationCode, null, null);
|
const response = await this.getToken("authorization_code", authorizationCode, null, null);
|
||||||
@ -120,7 +145,7 @@ export class TribufuClient extends TribufuApi {
|
|||||||
/**
|
/**
|
||||||
* Login using a device code.
|
* Login using a device code.
|
||||||
* @param deviceCode
|
* @param deviceCode
|
||||||
* @returns
|
* @returns boolean
|
||||||
*/
|
*/
|
||||||
public async deviceLogin(deviceCode: string): Promise<boolean> {
|
public async deviceLogin(deviceCode: string): Promise<boolean> {
|
||||||
const response = await this.getToken("device_code", deviceCode, null, null);
|
const response = await this.getToken("device_code", deviceCode, null, null);
|
||||||
@ -138,7 +163,7 @@ export class TribufuClient extends TribufuApi {
|
|||||||
* Login using a username and password.
|
* Login using a username and password.
|
||||||
* @param username
|
* @param username
|
||||||
* @param password
|
* @param password
|
||||||
* @returns
|
* @returns boolean
|
||||||
*/
|
*/
|
||||||
public async passwordLogin(username: string, password: string): Promise<boolean> {
|
public async passwordLogin(username: string, password: string): Promise<boolean> {
|
||||||
const response = await this.getToken("password", password, null, username);
|
const response = await this.getToken("password", password, null, username);
|
||||||
@ -156,7 +181,7 @@ export class TribufuClient extends TribufuApi {
|
|||||||
* Login using a passkey.
|
* Login using a passkey.
|
||||||
* @param username
|
* @param username
|
||||||
* @param passkey
|
* @param passkey
|
||||||
* @returns
|
* @returns boolean
|
||||||
*/
|
*/
|
||||||
public async passkeyLogin(username: string, passkey: string): Promise<boolean> {
|
public async passkeyLogin(username: string, passkey: string): Promise<boolean> {
|
||||||
const response = await this.getToken("passkey", passkey, null, username);
|
const response = await this.getToken("passkey", passkey, null, username);
|
||||||
@ -174,7 +199,7 @@ export class TribufuClient extends TribufuApi {
|
|||||||
* Get a token for a client application.
|
* Get a token for a client application.
|
||||||
* @param subjectKey
|
* @param subjectKey
|
||||||
* @param subjectValue
|
* @param subjectValue
|
||||||
* @returns
|
* @returns boolean
|
||||||
*/
|
*/
|
||||||
public async clientLogin(subjectKey: string | null, subjectValue: string | null): Promise<boolean> {
|
public async clientLogin(subjectKey: string | null, subjectValue: string | null): Promise<boolean> {
|
||||||
const response = await this.getToken("client_credentials", null, subjectKey, subjectValue);
|
const response = await this.getToken("client_credentials", null, subjectKey, subjectValue);
|
||||||
@ -191,7 +216,7 @@ export class TribufuClient extends TribufuApi {
|
|||||||
/**
|
/**
|
||||||
* Get a new access token using a refresh token.
|
* Get a new access token using a refresh token.
|
||||||
* @param refreshToken
|
* @param refreshToken
|
||||||
* @returns
|
* @returns boolean
|
||||||
*/
|
*/
|
||||||
public async refreshToken(): Promise<boolean> {
|
public async refreshToken(): Promise<boolean> {
|
||||||
if (!this.options.refreshToken) {
|
if (!this.options.refreshToken) {
|
||||||
@ -211,7 +236,7 @@ export class TribufuClient extends TribufuApi {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get information about a access token.
|
* Get information about a access token.
|
||||||
* @returns
|
* @returns boolean
|
||||||
*/
|
*/
|
||||||
public async instrospectToken(): Promise<OAuth2IntrospectionResponse | null> {
|
public async instrospectToken(): Promise<OAuth2IntrospectionResponse | null> {
|
||||||
if (!this.options.accessToken) {
|
if (!this.options.accessToken) {
|
||||||
@ -236,7 +261,7 @@ export class TribufuClient extends TribufuApi {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Revoke a refresh token.
|
* Revoke a refresh token.
|
||||||
* @returns
|
* @returns boolean
|
||||||
*/
|
*/
|
||||||
public async revokeToken(): Promise<boolean> {
|
public async revokeToken(): Promise<boolean> {
|
||||||
if (!this.options.refreshToken) {
|
if (!this.options.refreshToken) {
|
||||||
@ -261,6 +286,10 @@ export class TribufuClient extends TribufuApi {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the current access token is valid.
|
||||||
|
* @returns boolean
|
||||||
|
*/
|
||||||
public async isTokenValid(): Promise<boolean> {
|
public async isTokenValid(): Promise<boolean> {
|
||||||
const response = await this.instrospectToken();
|
const response = await this.instrospectToken();
|
||||||
|
|
||||||
@ -277,7 +306,7 @@ export class TribufuClient extends TribufuApi {
|
|||||||
* @param grantValue
|
* @param grantValue
|
||||||
* @param subjectKey
|
* @param subjectKey
|
||||||
* @param subjectValue
|
* @param subjectValue
|
||||||
* @returns
|
* @returns OAuth2TokenResponse | null
|
||||||
*/
|
*/
|
||||||
protected async getToken(grantType: OAuth2GrantType, grantValue: string | null, subjectKey: string | null, subjectValue: string | null): Promise<OAuth2TokenResponse | null> {
|
protected async getToken(grantType: OAuth2GrantType, grantValue: string | null, subjectKey: string | null, subjectValue: string | null): Promise<OAuth2TokenResponse | null> {
|
||||||
const requestBody: OAuth2TokenRequest = {
|
const requestBody: OAuth2TokenRequest = {
|
||||||
@ -305,7 +334,7 @@ export class TribufuClient extends TribufuApi {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get information about the current user.
|
* Get information about the current user.
|
||||||
* @returns
|
* @returns User | null
|
||||||
*/
|
*/
|
||||||
public async getUserInfo(): Promise<User | null> {
|
public async getUserInfo(): Promise<User | null> {
|
||||||
if (!this.options.refreshToken) {
|
if (!this.options.refreshToken) {
|
||||||
|
@ -47,6 +47,14 @@ export class TribufuServer extends TribufuClient {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the server id.
|
||||||
|
* @returns string
|
||||||
|
*/
|
||||||
|
public getServerId(): string {
|
||||||
|
return this.serverId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a list of connected users.
|
* Get a list of connected users.
|
||||||
* @returns
|
* @returns
|
||||||
|
19
src/token.ts
Normal file
19
src/token.ts
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
// Copyright (c) Tribufu. All Rights Reserved.
|
||||||
|
|
||||||
|
export type TokenType = "user" | "bot" | "client" | "server";
|
||||||
|
|
||||||
|
export interface TokenPayload {
|
||||||
|
jti: string;
|
||||||
|
type: TokenType;
|
||||||
|
iss: string;
|
||||||
|
aud: string;
|
||||||
|
client_id: string;
|
||||||
|
scope: string;
|
||||||
|
user_id?: string;
|
||||||
|
bot_id?: string;
|
||||||
|
private_flags?: string;
|
||||||
|
public_flags?: string;
|
||||||
|
server_id?: string;
|
||||||
|
iat: number;
|
||||||
|
exp: number;
|
||||||
|
}
|
@ -22,7 +22,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"include": [
|
"include": [
|
||||||
"**/*.ts",
|
"src/**/*.ts",
|
||||||
],
|
],
|
||||||
"exclude": [
|
"exclude": [
|
||||||
"build",
|
"build",
|
||||||
|
223
yarn.lock
223
yarn.lock
@ -134,95 +134,32 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
|
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
|
||||||
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
|
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
|
||||||
|
|
||||||
"@types/body-parser@*":
|
"@types/dotenv@^8.2.0":
|
||||||
version "1.19.5"
|
version "8.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4"
|
resolved "https://registry.yarnpkg.com/@types/dotenv/-/dotenv-8.2.0.tgz#5cd64710c3c98e82d9d15844375a33bf1b45d053"
|
||||||
integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==
|
integrity sha512-ylSC9GhfRH7m1EUXBXofhgx4lUWmFeQDINW5oLuS+gxWdfUeW4zJdeVTYVkexEW+e2VUvlZR2kGnGGipAWR7kw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/connect" "*"
|
dotenv "*"
|
||||||
"@types/node" "*"
|
|
||||||
|
|
||||||
"@types/connect@*":
|
|
||||||
version "3.4.38"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858"
|
|
||||||
integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==
|
|
||||||
dependencies:
|
|
||||||
"@types/node" "*"
|
|
||||||
|
|
||||||
"@types/express-serve-static-core@^4.17.33":
|
|
||||||
version "4.17.41"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz#5077defa630c2e8d28aa9ffc2c01c157c305bef6"
|
|
||||||
integrity sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==
|
|
||||||
dependencies:
|
|
||||||
"@types/node" "*"
|
|
||||||
"@types/qs" "*"
|
|
||||||
"@types/range-parser" "*"
|
|
||||||
"@types/send" "*"
|
|
||||||
|
|
||||||
"@types/express@^4.17.21":
|
|
||||||
version "4.17.21"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d"
|
|
||||||
integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==
|
|
||||||
dependencies:
|
|
||||||
"@types/body-parser" "*"
|
|
||||||
"@types/express-serve-static-core" "^4.17.33"
|
|
||||||
"@types/qs" "*"
|
|
||||||
"@types/serve-static" "*"
|
|
||||||
|
|
||||||
"@types/http-errors@*":
|
|
||||||
version "2.0.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f"
|
|
||||||
integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==
|
|
||||||
|
|
||||||
"@types/json-bigint@^1.0.4":
|
"@types/json-bigint@^1.0.4":
|
||||||
version "1.0.4"
|
version "1.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/@types/json-bigint/-/json-bigint-1.0.4.tgz#250d29e593375499d8ba6efaab22d094c3199ef3"
|
resolved "https://registry.yarnpkg.com/@types/json-bigint/-/json-bigint-1.0.4.tgz#250d29e593375499d8ba6efaab22d094c3199ef3"
|
||||||
integrity sha512-ydHooXLbOmxBbubnA7Eh+RpBzuaIiQjh8WGJYQB50JFGFrdxW7JzVlyEV7fAXw0T2sqJ1ysTneJbiyNLqZRAag==
|
integrity sha512-ydHooXLbOmxBbubnA7Eh+RpBzuaIiQjh8WGJYQB50JFGFrdxW7JzVlyEV7fAXw0T2sqJ1ysTneJbiyNLqZRAag==
|
||||||
|
|
||||||
"@types/mime@*":
|
"@types/jsonwebtoken@^9.0.5":
|
||||||
version "3.0.4"
|
version "9.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45"
|
resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.5.tgz#0bd9b841c9e6c5a937c17656e2368f65da025588"
|
||||||
integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==
|
integrity sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "*"
|
||||||
|
|
||||||
"@types/mime@^1":
|
"@types/node@*", "@types/node@^20.10.6":
|
||||||
version "1.3.5"
|
version "20.10.6"
|
||||||
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.6.tgz#a3ec84c22965802bf763da55b2394424f22bfbb5"
|
||||||
integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==
|
integrity sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==
|
||||||
|
|
||||||
"@types/node@*":
|
|
||||||
version "20.10.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.5.tgz#47ad460b514096b7ed63a1dae26fad0914ed3ab2"
|
|
||||||
integrity sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types "~5.26.4"
|
undici-types "~5.26.4"
|
||||||
|
|
||||||
"@types/qs@*":
|
|
||||||
version "6.9.11"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.11.tgz#208d8a30bc507bd82e03ada29e4732ea46a6bbda"
|
|
||||||
integrity sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==
|
|
||||||
|
|
||||||
"@types/range-parser@*":
|
|
||||||
version "1.2.7"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb"
|
|
||||||
integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==
|
|
||||||
|
|
||||||
"@types/send@*":
|
|
||||||
version "0.17.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a"
|
|
||||||
integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==
|
|
||||||
dependencies:
|
|
||||||
"@types/mime" "^1"
|
|
||||||
"@types/node" "*"
|
|
||||||
|
|
||||||
"@types/serve-static@*":
|
|
||||||
version "1.15.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.5.tgz#15e67500ec40789a1e8c9defc2d32a896f05b033"
|
|
||||||
integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==
|
|
||||||
dependencies:
|
|
||||||
"@types/http-errors" "*"
|
|
||||||
"@types/mime" "*"
|
|
||||||
"@types/node" "*"
|
|
||||||
|
|
||||||
"@types/uuid@^9.0.7":
|
"@types/uuid@^9.0.7":
|
||||||
version "9.0.7"
|
version "9.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.7.tgz#b14cebc75455eeeb160d5fe23c2fcc0c64f724d8"
|
resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.7.tgz#b14cebc75455eeeb160d5fe23c2fcc0c64f724d8"
|
||||||
@ -281,6 +218,11 @@ brace-expansion@^2.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
balanced-match "^1.0.0"
|
balanced-match "^1.0.0"
|
||||||
|
|
||||||
|
buffer-equal-constant-time@1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
|
||||||
|
integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==
|
||||||
|
|
||||||
camelcase-keys@^9.1.2:
|
camelcase-keys@^9.1.2:
|
||||||
version "9.1.2"
|
version "9.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-9.1.2.tgz#d287a4451245325984fe5148359a54397655e264"
|
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-9.1.2.tgz#d287a4451245325984fe5148359a54397655e264"
|
||||||
@ -315,11 +257,6 @@ combined-stream@^1.0.8:
|
|||||||
dependencies:
|
dependencies:
|
||||||
delayed-stream "~1.0.0"
|
delayed-stream "~1.0.0"
|
||||||
|
|
||||||
cookie@^0.4.1:
|
|
||||||
version "0.4.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
|
|
||||||
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
|
|
||||||
|
|
||||||
cross-env@^7.0.3:
|
cross-env@^7.0.3:
|
||||||
version "7.0.3"
|
version "7.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
|
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
|
||||||
@ -349,11 +286,23 @@ dot-case@^3.0.4:
|
|||||||
no-case "^3.0.4"
|
no-case "^3.0.4"
|
||||||
tslib "^2.0.3"
|
tslib "^2.0.3"
|
||||||
|
|
||||||
|
dotenv@*, dotenv@^16.3.1:
|
||||||
|
version "16.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e"
|
||||||
|
integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==
|
||||||
|
|
||||||
eastasianwidth@^0.2.0:
|
eastasianwidth@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
|
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
|
||||||
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
|
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
|
||||||
|
|
||||||
|
ecdsa-sig-formatter@1.0.11:
|
||||||
|
version "1.0.11"
|
||||||
|
resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf"
|
||||||
|
integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==
|
||||||
|
dependencies:
|
||||||
|
safe-buffer "^5.0.1"
|
||||||
|
|
||||||
emoji-regex@^8.0.0:
|
emoji-regex@^8.0.0:
|
||||||
version "8.0.0"
|
version "8.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
|
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
|
||||||
@ -473,6 +422,39 @@ json-bigint@^1.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
bignumber.js "^9.0.0"
|
bignumber.js "^9.0.0"
|
||||||
|
|
||||||
|
jsonwebtoken@^9.0.2:
|
||||||
|
version "9.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3"
|
||||||
|
integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==
|
||||||
|
dependencies:
|
||||||
|
jws "^3.2.2"
|
||||||
|
lodash.includes "^4.3.0"
|
||||||
|
lodash.isboolean "^3.0.3"
|
||||||
|
lodash.isinteger "^4.0.4"
|
||||||
|
lodash.isnumber "^3.0.3"
|
||||||
|
lodash.isplainobject "^4.0.6"
|
||||||
|
lodash.isstring "^4.0.1"
|
||||||
|
lodash.once "^4.0.0"
|
||||||
|
ms "^2.1.1"
|
||||||
|
semver "^7.5.4"
|
||||||
|
|
||||||
|
jwa@^1.4.1:
|
||||||
|
version "1.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a"
|
||||||
|
integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==
|
||||||
|
dependencies:
|
||||||
|
buffer-equal-constant-time "1.0.1"
|
||||||
|
ecdsa-sig-formatter "1.0.11"
|
||||||
|
safe-buffer "^5.0.1"
|
||||||
|
|
||||||
|
jws@^3.2.2:
|
||||||
|
version "3.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304"
|
||||||
|
integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==
|
||||||
|
dependencies:
|
||||||
|
jwa "^1.4.1"
|
||||||
|
safe-buffer "^5.0.1"
|
||||||
|
|
||||||
locate-path@^6.0.0:
|
locate-path@^6.0.0:
|
||||||
version "6.0.0"
|
version "6.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
|
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
|
||||||
@ -480,6 +462,41 @@ locate-path@^6.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
p-locate "^5.0.0"
|
p-locate "^5.0.0"
|
||||||
|
|
||||||
|
lodash.includes@^4.3.0:
|
||||||
|
version "4.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
|
||||||
|
integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==
|
||||||
|
|
||||||
|
lodash.isboolean@^3.0.3:
|
||||||
|
version "3.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
|
||||||
|
integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==
|
||||||
|
|
||||||
|
lodash.isinteger@^4.0.4:
|
||||||
|
version "4.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
|
||||||
|
integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==
|
||||||
|
|
||||||
|
lodash.isnumber@^3.0.3:
|
||||||
|
version "3.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
|
||||||
|
integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==
|
||||||
|
|
||||||
|
lodash.isplainobject@^4.0.6:
|
||||||
|
version "4.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
|
||||||
|
integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==
|
||||||
|
|
||||||
|
lodash.isstring@^4.0.1:
|
||||||
|
version "4.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
|
||||||
|
integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==
|
||||||
|
|
||||||
|
lodash.once@^4.0.0:
|
||||||
|
version "4.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
|
||||||
|
integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
|
||||||
|
|
||||||
lower-case@^2.0.2:
|
lower-case@^2.0.2:
|
||||||
version "2.0.2"
|
version "2.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
|
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
|
||||||
@ -487,6 +504,13 @@ lower-case@^2.0.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
tslib "^2.0.3"
|
tslib "^2.0.3"
|
||||||
|
|
||||||
|
lru-cache@^6.0.0:
|
||||||
|
version "6.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
|
||||||
|
integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
|
||||||
|
dependencies:
|
||||||
|
yallist "^4.0.0"
|
||||||
|
|
||||||
"lru-cache@^9.1.1 || ^10.0.0":
|
"lru-cache@^9.1.1 || ^10.0.0":
|
||||||
version "10.1.0"
|
version "10.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484"
|
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484"
|
||||||
@ -526,6 +550,11 @@ minimatch@^9.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c"
|
resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c"
|
||||||
integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==
|
integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==
|
||||||
|
|
||||||
|
ms@^2.1.1:
|
||||||
|
version "2.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
||||||
|
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
||||||
|
|
||||||
no-case@^3.0.4:
|
no-case@^3.0.4:
|
||||||
version "3.0.4"
|
version "3.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
|
resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
|
||||||
@ -534,14 +563,6 @@ no-case@^3.0.4:
|
|||||||
lower-case "^2.0.2"
|
lower-case "^2.0.2"
|
||||||
tslib "^2.0.3"
|
tslib "^2.0.3"
|
||||||
|
|
||||||
nookies@^2.5.2:
|
|
||||||
version "2.5.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/nookies/-/nookies-2.5.2.tgz#cc55547efa982d013a21475bd0db0c02c1b35b27"
|
|
||||||
integrity sha512-x0TRSaosAEonNKyCrShoUaJ5rrT5KHRNZ5DwPCuizjgrnkpE5DRf3VL7AyyQin4htict92X1EQ7ejDbaHDVdYA==
|
|
||||||
dependencies:
|
|
||||||
cookie "^0.4.1"
|
|
||||||
set-cookie-parser "^2.4.6"
|
|
||||||
|
|
||||||
p-limit@^3.0.2:
|
p-limit@^3.0.2:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
|
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
|
||||||
@ -591,10 +612,17 @@ rimraf@^5.0.5:
|
|||||||
dependencies:
|
dependencies:
|
||||||
glob "^10.3.7"
|
glob "^10.3.7"
|
||||||
|
|
||||||
set-cookie-parser@^2.4.6:
|
safe-buffer@^5.0.1:
|
||||||
version "2.6.0"
|
version "5.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51"
|
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
||||||
integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==
|
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
||||||
|
|
||||||
|
semver@^7.5.4:
|
||||||
|
version "7.5.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
|
||||||
|
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
|
||||||
|
dependencies:
|
||||||
|
lru-cache "^6.0.0"
|
||||||
|
|
||||||
shebang-command@^2.0.0:
|
shebang-command@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
@ -719,6 +747,11 @@ wrap-ansi@^8.1.0:
|
|||||||
string-width "^5.0.1"
|
string-width "^5.0.1"
|
||||||
strip-ansi "^7.0.1"
|
strip-ansi "^7.0.1"
|
||||||
|
|
||||||
|
yallist@^4.0.0:
|
||||||
|
version "4.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
|
||||||
|
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
|
||||||
|
|
||||||
yocto-queue@^0.1.0:
|
yocto-queue@^0.1.0:
|
||||||
version "0.1.0"
|
version "0.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
|
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
|
||||||
|
Reference in New Issue
Block a user