diff --git a/app/components/CardList.tsx b/app/components/CardList.tsx
index 8287842b8d..c81773dfe6 100644
--- a/app/components/CardList.tsx
+++ b/app/components/CardList.tsx
@@ -49,7 +49,7 @@ export const PLATFORM_CATEGORIES: PLATFORM_CATEGORY[] = [
{
name: "Social & Professional Platforms",
description: "Link your profiles from established social media and professional networking sites for verification.",
- platforms: ["Github", "Linkedin", "Google", "Discord"],
+ platforms: ["Github", "Linkedin", "Google", "Discord", "Uber"],
},
{
name: "Biometric Verification",
diff --git a/app/context/ceramicContext.tsx b/app/context/ceramicContext.tsx
index 21fde896c5..ab7e59a177 100644
--- a/app/context/ceramicContext.tsx
+++ b/app/context/ceramicContext.tsx
@@ -44,6 +44,7 @@ const {
Outdid,
AllowList,
Binance,
+ Uber,
} = stampPlatforms;
import { PlatformProps } from "../components/GenericPlatform";
@@ -228,6 +229,13 @@ if (process.env.NEXT_PUBLIC_FF_BINANCE_STAMPS === "on") {
});
}
+if (process.env.NEXT_PUBLIC_FF_UBER_STAMPS === "on") {
+ platforms.set("Uber", {
+ platform: new Uber.UberPlatform(),
+ platFormGroupSpec: Uber.ProviderConfig,
+ });
+}
+
export enum IsLoadingPassportState {
Idle,
Loading,
diff --git a/app/public/assets/uber-icon.svg b/app/public/assets/uber-icon.svg
new file mode 100644
index 0000000000..a9499827e9
--- /dev/null
+++ b/app/public/assets/uber-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/platforms/package.json b/platforms/package.json
index ff7e4cec9e..2b928e64c0 100644
--- a/platforms/package.json
+++ b/platforms/package.json
@@ -33,6 +33,7 @@
"@ethersproject/providers": "^5.6.2",
"@gitcoin/passport-types": "^1.0.0",
"@guildxyz/sdk": "^2.5.0",
+ "@reclaimprotocol/js-sdk": "^1.3.10",
"@spruceid/didkit-wasm": "^0.3.0-alpha0",
"axios": "^0.26.1",
"bignumber.js": "4.0.4",
diff --git a/platforms/src/Uber/App-Bindings.ts b/platforms/src/Uber/App-Bindings.ts
new file mode 100644
index 0000000000..1a7c88ee78
--- /dev/null
+++ b/platforms/src/Uber/App-Bindings.ts
@@ -0,0 +1,34 @@
+import { Platform } from "../utils/platform";
+import { AppContext, ProviderPayload } from "../types";
+
+export class UberPlatform extends Platform {
+ platformId = "Uber";
+ path = "uber";
+
+ getRequestUrl(state: string, callbackUrl?: string): string {
+ return `https://publish-credentials.reclaimprotocol.org/integration?state=${state}&redirect_uri=${callbackUrl}`;
+ }
+
+ async getProviderPayload(appContext: AppContext): Promise {
+ const reqUrl: string = this.getRequestUrl(appContext.state, appContext.callbackUrl);
+ const width = 600;
+ const height = 800;
+ const left = appContext.screen.width / 2 - width / 2;
+ const top = appContext.screen.height / 2 - height / 2;
+
+ // Pass data to the page via props
+ appContext.window.open(
+ reqUrl,
+ "_blank",
+ `toolbar=no, location=no, directories=no, status=no, menubar=no, resizable=no, copyhistory=no, width=${width}, height=${height}, top=${top}, left=${left}`
+ );
+
+ return appContext.waitForRedirect(this).then((data) => {
+ return {
+ code: data.code,
+ sessionKey: data.state,
+ signature: data.signature,
+ };
+ });
+ }
+}
\ No newline at end of file
diff --git a/platforms/src/Uber/Providers-config.ts b/platforms/src/Uber/Providers-config.ts
new file mode 100644
index 0000000000..c985665047
--- /dev/null
+++ b/platforms/src/Uber/Providers-config.ts
@@ -0,0 +1,28 @@
+import { PlatformSpec, PlatformGroupSpec, Provider } from "../types";
+import { UberRidesProvider } from "./Providers/uberRides";
+
+export const PlatformDetails: PlatformSpec = {
+ icon: "./assets/uber-icon.svg",
+ platform: "Uber",
+ name: "Uber",
+ description:
+ "Using Reclaim's zk technology, you can connect your Uber account without sharing any of the account information with Reclaim or Passport",
+ connectMessage: "Connect Account",
+ website: "https://uber.com/",
+};
+
+export const ProviderConfig: PlatformGroupSpec[] = [
+ {
+ platformGroup: "Account has one ride",
+ providers: [
+ {
+ title: "at least 1 ride",
+ name: "UberRides",
+ }
+ ],
+ },
+];
+
+export const providers: Provider[] = [
+ new UberRidesProvider(),
+];
\ No newline at end of file
diff --git a/platforms/src/Uber/Providers/uberRides.ts b/platforms/src/Uber/Providers/uberRides.ts
new file mode 100644
index 0000000000..3c97a3b4f8
--- /dev/null
+++ b/platforms/src/Uber/Providers/uberRides.ts
@@ -0,0 +1,61 @@
+import axios from "axios";
+import { ProviderContext, RequestPayload, VerifiedPayload } from "@gitcoin/passport-types";
+import { Proof, Reclaim } from "@reclaimprotocol/js-sdk";
+import { ProviderExternalVerificationError, type Provider } from "../../types";
+
+type StatusResponse = {
+ session: {
+ proofs: Proof[];
+ };
+};
+async function verifyUberRides(code: string): Promise<{ hasRide: boolean }> {
+ const reclaimClient = new Reclaim.ProofRequest(process.env.NEXT_PUBLIC_RECLAIM_APP_ID, { sessionId: code });
+ const res = await axios.get(reclaimClient.getStatusUrl());
+ const data = res.data as StatusResponse;
+ if (data.session) {
+ const proof = data.session.proofs[0];
+ if (!Reclaim.verifySignedProof(proof)) {
+ throw new Error("Proof signature invalid");
+ }
+
+ return {
+ hasRide: true,
+ };
+ } else {
+ throw new Error("No session in response");
+ }
+}
+
+const checkUberRides = (hasRide: boolean): { valid: boolean; errors: string[] } => {
+ if (hasRide) {
+ return {
+ valid: true,
+ errors: undefined,
+ };
+ } else {
+ return {
+ valid: false,
+ errors: [`Uber account doesn't have any rides.`],
+ };
+ }
+};
+
+export class UberRidesProvider implements Provider {
+ type = "uberRides";
+
+ async verify(payload: RequestPayload, context: ProviderContext): Promise {
+ try {
+ const { hasRide } = await verifyUberRides(payload.proofs.code);
+
+ const { valid, errors } = checkUberRides(hasRide);
+
+ return {
+ valid,
+ errors,
+ record: { address: payload.address },
+ };
+ } catch (e: unknown) {
+ throw new ProviderExternalVerificationError(`Error verifying Reclaim Proof: ${String(e)}`);
+ }
+ }
+}
\ No newline at end of file
diff --git a/platforms/src/Uber/index.ts b/platforms/src/Uber/index.ts
new file mode 100644
index 0000000000..750ac652f1
--- /dev/null
+++ b/platforms/src/Uber/index.ts
@@ -0,0 +1,4 @@
+// Uber Platform
+export { UberPlatform } from "./App-Bindings";
+export { PlatformDetails, ProviderConfig, providers } from "./Providers-config";
+export { UberRidesProvider } from "./Providers/uberRides";
\ No newline at end of file
diff --git a/platforms/src/platforms.ts b/platforms/src/platforms.ts
index fadb034c92..aa1376f3e8 100644
--- a/platforms/src/platforms.ts
+++ b/platforms/src/platforms.ts
@@ -22,6 +22,7 @@ import * as TrustaLabs from "./TrustaLabs";
import * as Outdid from "./Outdid";
import * as AllowList from "./AllowList";
import * as Binance from "./Binance";
+import * as Uber from "./Uber";
import { PlatformSpec, PlatformGroupSpec, Provider } from "./types";
type PlatformConfig = {
@@ -56,6 +57,7 @@ const platforms: Record = {
Outdid,
AllowList,
Binance,
+ Uber,
};
if (process.env.NEXT_PUBLIC_FF_NEW_POAP_STAMPS === "on") {
diff --git a/types/src/index.d.ts b/types/src/index.d.ts
index f85cb422c0..39f861293c 100644
--- a/types/src/index.d.ts
+++ b/types/src/index.d.ts
@@ -360,7 +360,8 @@ export type PLATFORM_ID =
| "TrustaLabs"
| "Outdid"
| "AllowList"
- | "Binance";
+ | "Binance"
+ | "Uber";
export type PLATFORM_CATEGORY = {
name: string;
@@ -443,7 +444,8 @@ export type PROVIDER_ID =
| "Outdid"
| "AllowList"
| `AllowList#${string}`
- | "BinanceBABT";
+ | "BinanceBABT"
+ | "UberRides";
export type StampBit = {
bit: number;
diff --git a/yarn.lock b/yarn.lock
index fe594945dc..683ccdfc2e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7905,6 +7905,18 @@
resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==
+"@reclaimprotocol/js-sdk@^1.3.10":
+ version "1.3.10"
+ resolved "https://registry.yarnpkg.com/@reclaimprotocol/js-sdk/-/js-sdk-1.3.10.tgz#1595c6d0027e4dfa521efecfe4dd7364d5c7dd35"
+ integrity sha512-YYGXpBELdY5COxDHcirFLLXD8LwErBG3VHAAWkqwLVTv+kjy80lHXTFVJMlJcq9GouPGcTCdCbm4wH4qDYUVZA==
+ dependencies:
+ canonicalize "^2.0.0"
+ ethers "^6.9.1"
+ pino "^8.19.0"
+ qs "^6.11.2"
+ url-parse "^1.5.10"
+ uuid "^9.0.1"
+
"@redis/bloom@1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@redis/bloom/-/bloom-1.2.0.tgz#d3fd6d3c0af3ef92f26767b56414a370c7b63b71"
@@ -11407,6 +11419,17 @@ call-bind@^1.0.4, call-bind@^1.0.5:
get-intrinsic "^1.2.1"
set-function-length "^1.1.1"
+call-bind@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9"
+ integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
+ dependencies:
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.4"
+ set-function-length "^1.2.1"
+
callback-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/callback-stream/-/callback-stream-1.1.0.tgz#4701a51266f06e06eaa71fc17233822d875f4908"
@@ -12707,6 +12730,15 @@ define-data-property@^1.0.1, define-data-property@^1.1.1:
gopd "^1.0.1"
has-property-descriptors "^1.0.0"
+define-data-property@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
+ integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
+ dependencies:
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
+ gopd "^1.0.1"
+
define-properties@^1.1.3, define-properties@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1"
@@ -13537,6 +13569,18 @@ es-array-method-boxes-properly@^1.0.0:
resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e"
integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==
+es-define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845"
+ integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==
+ dependencies:
+ get-intrinsic "^1.2.4"
+
+es-errors@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
+ integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
+
es-get-iterator@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6"
@@ -14131,6 +14175,19 @@ ethers@^6.7.1:
tslib "2.4.0"
ws "8.5.0"
+ethers@^6.9.1:
+ version "6.13.1"
+ resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.1.tgz#2b9f9c7455cde9d38b30fe6589972eb083652961"
+ integrity sha512-hdJ2HOxg/xx97Lm9HdCWk949BfYqYWpyw4//78SiwOLgASyfrNszfMUNB2joKjvGUdwhHfaiMMFFwacVVoLR9A==
+ dependencies:
+ "@adraffy/ens-normalize" "1.10.1"
+ "@noble/curves" "1.2.0"
+ "@noble/hashes" "1.3.2"
+ "@types/node" "18.15.13"
+ aes-js "4.0.0-beta.5"
+ tslib "2.4.0"
+ ws "8.17.1"
+
ethjs-unit@0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699"
@@ -14397,6 +14454,11 @@ fast-redact@^3.0.0:
resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.3.0.tgz#7c83ce3a7be4898241a46560d51de10f653f7634"
integrity sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==
+fast-redact@^3.1.1:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.5.0.tgz#e9ea02f7e57d0cd8438180083e93077e496285e4"
+ integrity sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==
+
fast-safe-stringify@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884"
@@ -14933,6 +14995,17 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@
has-symbols "^1.0.3"
hasown "^2.0.0"
+get-intrinsic@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd"
+ integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
+ dependencies:
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ has-proto "^1.0.1"
+ has-symbols "^1.0.3"
+ hasown "^2.0.0"
+
get-iterator@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-1.0.2.tgz#cd747c02b4c084461fac14f48f6b45a80ed25c82"
@@ -15470,6 +15543,13 @@ has-property-descriptors@^1.0.0:
dependencies:
get-intrinsic "^1.1.1"
+has-property-descriptors@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
+ integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
+ dependencies:
+ es-define-property "^1.0.0"
+
has-proto@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0"
@@ -21014,6 +21094,11 @@ on-exit-leak-free@^0.2.0:
resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209"
integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==
+on-exit-leak-free@^2.1.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz#fed195c9ebddb7d9e4c3842f93f281ac8dadd3b8"
+ integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==
+
on-finished@2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
@@ -21710,6 +21795,14 @@ pify@^5.0.0:
resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f"
integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==
+pino-abstract-transport@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz#97f9f2631931e242da531b5c66d3079c12c9d1b5"
+ integrity sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==
+ dependencies:
+ readable-stream "^4.0.0"
+ split2 "^4.0.0"
+
pino-abstract-transport@v0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0"
@@ -21723,6 +21816,11 @@ pino-std-serializers@^4.0.0:
resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2"
integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==
+pino-std-serializers@^6.0.0:
+ version "6.2.2"
+ resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz#d9a9b5f2b9a402486a5fc4db0a737570a860aab3"
+ integrity sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==
+
pino@7.11.0:
version "7.11.0"
resolved "https://registry.yarnpkg.com/pino/-/pino-7.11.0.tgz#0f0ea5c4683dc91388081d44bff10c83125066f6"
@@ -21740,6 +21838,23 @@ pino@7.11.0:
sonic-boom "^2.2.1"
thread-stream "^0.15.1"
+pino@^8.19.0:
+ version "8.21.0"
+ resolved "https://registry.yarnpkg.com/pino/-/pino-8.21.0.tgz#e1207f3675a2722940d62da79a7a55a98409f00d"
+ integrity sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==
+ dependencies:
+ atomic-sleep "^1.0.0"
+ fast-redact "^3.1.1"
+ on-exit-leak-free "^2.1.0"
+ pino-abstract-transport "^1.2.0"
+ pino-std-serializers "^6.0.0"
+ process-warning "^3.0.0"
+ quick-format-unescaped "^4.0.3"
+ real-require "^0.2.0"
+ safe-stable-stringify "^2.3.1"
+ sonic-boom "^3.7.0"
+ thread-stream "^2.6.0"
+
pirates@^4.0.4:
version "4.0.5"
resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
@@ -21962,6 +22077,16 @@ process-warning@^1.0.0:
resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616"
integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==
+process-warning@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-3.0.0.tgz#96e5b88884187a1dce6f5c3166d611132058710b"
+ integrity sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==
+
+process@^0.11.10:
+ version "0.11.10"
+ resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+ integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
+
progress-events@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/progress-events/-/progress-events-1.0.0.tgz#34f5e8fdb5dae3561837b22672d1e02277bb2109"
@@ -22193,6 +22318,13 @@ qs@^6.10.3, qs@^6.9.4:
dependencies:
side-channel "^1.0.4"
+qs@^6.11.2:
+ version "6.12.3"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.3.tgz#e43ce03c8521b9c7fd7f1f13e514e5ca37727754"
+ integrity sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==
+ dependencies:
+ side-channel "^1.0.6"
+
qs@^6.7.0:
version "6.11.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f"
@@ -22614,6 +22746,17 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stre
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
+readable-stream@^4.0.0:
+ version "4.5.2"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09"
+ integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==
+ dependencies:
+ abort-controller "^3.0.0"
+ buffer "^6.0.3"
+ events "^3.3.0"
+ process "^0.11.10"
+ string_decoder "^1.3.0"
+
readdir-scoped-modules@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309"
@@ -22636,6 +22779,11 @@ real-require@^0.1.0:
resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381"
integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==
+real-require@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78"
+ integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==
+
receptacle@^1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2"
@@ -23099,7 +23247,7 @@ safe-regex-test@^1.0.0:
get-intrinsic "^1.2.2"
is-regex "^1.1.4"
-safe-stable-stringify@^2.1.0:
+safe-stable-stringify@^2.1.0, safe-stable-stringify@^2.3.1:
version "2.4.3"
resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886"
integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==
@@ -23269,6 +23417,18 @@ set-function-length@^1.1.1:
gopd "^1.0.1"
has-property-descriptors "^1.0.0"
+set-function-length@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
+ integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
+ dependencies:
+ define-data-property "^1.1.4"
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.4"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.2"
+
set-function-name@^2.0.0, set-function-name@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a"
@@ -23334,6 +23494,16 @@ side-channel@^1.0.4:
get-intrinsic "^1.0.2"
object-inspect "^1.9.0"
+side-channel@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2"
+ integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==
+ dependencies:
+ call-bind "^1.0.7"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.4"
+ object-inspect "^1.13.1"
+
signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
version "3.0.7"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
@@ -23468,6 +23638,13 @@ sonic-boom@^2.2.1:
dependencies:
atomic-sleep "^1.0.0"
+sonic-boom@^3.7.0:
+ version "3.8.1"
+ resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.8.1.tgz#d5ba8c4e26d6176c9a1d14d549d9ff579a163422"
+ integrity sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==
+ dependencies:
+ atomic-sleep "^1.0.0"
+
sort-keys@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128"
@@ -23850,7 +24027,7 @@ string.prototype.trimstart@^1.0.7:
define-properties "^1.2.0"
es-abstract "^1.22.1"
-string_decoder@^1.1.1:
+string_decoder@^1.1.1, string_decoder@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
@@ -24217,6 +24394,13 @@ thread-stream@^0.15.1:
dependencies:
real-require "^0.1.0"
+thread-stream@^2.6.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.7.0.tgz#d8a8e1b3fd538a6cca8ce69dbe5d3d097b601e11"
+ integrity sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==
+ dependencies:
+ real-require "^0.2.0"
+
throat@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375"
@@ -25058,7 +25242,7 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"
-url-parse@^1.5.3:
+url-parse@^1.5.10, url-parse@^1.5.3:
version "1.5.10"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
@@ -25165,7 +25349,7 @@ uuid@^8.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
-uuid@^9.0.0:
+uuid@^9.0.0, uuid@^9.0.1:
version "9.0.1"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
@@ -25647,6 +25831,11 @@ ws@8.13.0:
resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0"
integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==
+ws@8.17.1:
+ version "8.17.1"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b"
+ integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==
+
ws@8.5.0:
version "8.5.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f"