Final Unified Sync: All Web and Android source files now tracked in root
Jay committed
Aug 15, 2026 at 18:25 UTC
905f4259a276735d355dd9440e88e8ae2e1b11b0
34 files changed
+8968
-1
android
deleted
-1
@@ -1 +0,0 @@
1
-Subproject commit 581daea8c7dab8ead28c3a94219c53c63590ba9b
android/.gitignore
new
+24
@@ -0,0 +1,24 @@
1
+*.iml
2
+.gradle
3
+/local.properties
4
+/.idea/
5
+.DS_Store
6
+/build
7
+**/build/
8
+/captures
9
+.externalNativeBuild
10
+.cxx
11
+local.properties
12
+*.keystore
13
+*.jks
14
+release.properties
15
+google-services.json
16
+
17
+# Web asset sync artifacts
18
+app/src/main/assets/www/
19
+app/src/main/assets/assets/
20
+app/src/main/assets/index.html
21
+app/src/main/assets/manifest.json
22
+app/src/main/assets/sw.js
23
+app/src/main/assets/version.json
24
+app/src/main/assets/icon-*.svg
android/HOW_TO_BUILD.txt
new
+88
@@ -0,0 +1,88 @@
1
+====================================================
2
+ JCR Guide Pro — Android APK Build Instructions
3
+====================================================
4
+
5
+STEP 1: Deploy your app first
6
+-------------------------------
7
+Your app must be live at a public HTTPS URL before building the APK.
8
+Deploy it using the "Deploy" button in Replit.
9
+Your URL will look like: https://your-app-name.replit.app
10
+
11
+------------------------------------------------------
12
+OPTION A: EASIEST — Use PWABuilder (no coding needed)
13
+------------------------------------------------------
14
+1. Deploy your app (Step 1 above)
15
+2. Go to https://www.pwabuilder.com
16
+3. Enter your deployed URL (e.g. https://your-app.replit.app)
17
+4. Click "Start" → select "Android" → click "Generate"
18
+5. Download the APK package
19
+6. Install on your phone or submit to Google Play
20
+
21
+That's it — no Android Studio needed!
22
+
23
+------------------------------------------------------
24
+OPTION B: Build with Android Studio (full control)
25
+------------------------------------------------------
26
+Requirements: Android Studio + Java JDK 17+
27
+
28
+1. Open Android Studio → "Open an Existing Project"
29
+2. Select this "android-apk" folder
30
+3. Find every "YOUR_DOMAIN" in these files and replace with your deployed URL:
31
+ - app/src/main/AndroidManifest.xml
32
+ - app/src/main/java/com/jcrguidepro/app/MainActivity.java
33
+ - twa-manifest.json
34
+ Example: replace "YOUR_DOMAIN" with "your-app.replit.app"
35
+
36
+4. Build the APK:
37
+ - In Android Studio: Build → Build Bundle(s)/APK(s) → Build APK(s)
38
+ - Or in terminal: ./gradlew assembleDebug
39
+ - APK will be at: app/build/outputs/apk/debug/app-debug.apk
40
+
41
+5. Install on your Android phone:
42
+ - Enable "Install from Unknown Sources" in phone Settings
43
+ - Transfer the APK to your phone and open it
44
+
45
+------------------------------------------------------
46
+OPTION C: Use Bubblewrap CLI (Google's official tool)
47
+------------------------------------------------------
48
+Requirements: Node.js 14+, Java JDK 8+
49
+
50
+1. Install Bubblewrap:
51
+ npm install -g @bubblewrap/cli
52
+
53
+2. Initialize (in this folder):
54
+ bubblewrap init --manifest=https://YOUR_DOMAIN/manifest.json
55
+
56
+3. Build the APK:
57
+ bubblewrap build
58
+
59
+------------------------------------------------------
60
+STEP 2: Set up Digital Asset Links (for TWA to work properly)
61
+------------------------------------------------------
62
+After building your APK, you need to link it to your domain:
63
+
64
+1. Get your APK's SHA-256 fingerprint:
65
+ keytool -list -v -keystore android.keystore -alias jcr-guide-pro
66
+
67
+2. Open your Replit project → server/routes.ts
68
+3. Find the /.well-known/assetlinks.json route
69
+4. Replace 'YOUR_SHA256_FINGERPRINT_HERE' with your actual fingerprint
70
+
71
+Without this step the app will still work but will show a browser toolbar instead of being truly fullscreen.
72
+
73
+------------------------------------------------------
74
+Google Play Store Submission
75
+------------------------------------------------------
76
+1. Create a Google Play Developer account ($25 one-time fee)
77
+2. Build a signed release APK or AAB:
78
+ ./gradlew bundleRelease
79
+3. Follow Google Play Console instructions to publish
80
+
81
+======================================================
82
+App Details
83
+======================================================
84
+Package ID: com.jcrguidepro.app
85
+App Name: JCR Guide Pro
86
+Min Android: 5.0 (API 21)
87
+Target: Android 14 (API 34)
88
+======================================================
android/app/build.gradle
new
+91
@@ -0,0 +1,91 @@
1
+plugins {
2
+ id 'com.android.application'
3
+}
4
+
5
+def keystorePropertiesFile = rootProject.file('local.properties')
6
+def keystoreProperties = new Properties()
7
+if (keystorePropertiesFile.exists()) {
8
+ keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
9
+}
10
+
11
+android {
12
+ compileSdk 34
13
+ namespace "com.jcrguidepro.app"
14
+
15
+ defaultConfig {
16
+ applicationId "com.jcrguidepro.app"
17
+ minSdk 23
18
+ targetSdk 34
19
+ versionCode 4
20
+ versionName "1.3.0"
21
+ }
22
+
23
+ signingConfigs {
24
+ release {
25
+ if (keystoreProperties.containsKey('release.keystore')) {
26
+ storeFile file(keystoreProperties['release.keystore'])
27
+ storePassword keystoreProperties['release.keystore.password']
28
+ keyAlias keystoreProperties['release.key.alias']
29
+ keyPassword keystoreProperties['release.key.password']
30
+ }
31
+ }
32
+ }
33
+
34
+ buildTypes {
35
+ debug {
36
+ debuggable true
37
+ }
38
+ release {
39
+ minifyEnabled true
40
+ shrinkResources true
41
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
42
+ if (keystoreProperties.containsKey('release.keystore')) {
43
+ signingConfig signingConfigs.release
44
+ }
45
+ }
46
+ }
47
+
48
+ compileOptions {
49
+ sourceCompatibility JavaVersion.VERSION_11
50
+ targetCompatibility JavaVersion.VERSION_11
51
+ }
52
+
53
+ lint {
54
+ disable "BidiSpoofing"
55
+ }
56
+}
57
+
58
+// Comprehensive task to copy web assets and clean up HTML for Hybrid mode
59
+tasks.register('copyWebAssets', Copy) {
60
+ from "../../dist/public"
61
+ into "src/main/assets"
62
+ duplicatesStrategy = DuplicatesStrategy.INCLUDE
63
+
64
+ // Use an aggressive regex filter to fix paths and remove problematic code
65
+ filter { line ->
66
+ // 1. Fix absolute paths to relative
67
+ String result = line.replaceAll('src="/assets/', 'src="./assets/')
68
+ .replaceAll('href="/assets/', 'href="./assets/')
69
+ .replaceAll('src="/manifest.json"', 'src="./manifest.json"')
70
+ .replaceAll('href="/manifest.json"', 'href="./manifest.json"')
71
+ .replaceAll('href="/icon-', 'href="./icon-')
72
+ .replaceAll('src="/icon-', 'src="./icon-')
73
+
74
+ // 2. Remove 'crossorigin' attribute (often causes load failures in local WebViews)
75
+ result = result.replaceAll(/\bcrossorigin\b/, "")
76
+
77
+ // 3. Remove Replit development scripts entirely
78
+ result = result.replaceAll(/<script.*replit-dev-banner.js.*<\/script>/, "")
79
+
80
+ return result
81
+ }
82
+}
83
+
84
+// Ensure assets are synchronized before every build
85
+preBuild.dependsOn copyWebAssets
86
+
87
+dependencies {
88
+ implementation 'androidx.appcompat:appcompat:1.6.1'
89
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
90
+ implementation 'androidx.webkit:webkit:1.11.0'
91
+}
android/app/proguard-rules.pro
new
+3
@@ -0,0 +1,3 @@
1
+-keep class com.google.androidbrowserhelper.** { *; }
2
+-keep class androidx.browser.** { *; }
3
+-dontwarn com.google.androidbrowserhelper.**
android/app/src/main/AndroidManifest.xml
new
+29
@@ -0,0 +1,29 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
+ package="com.jcrguidepro.app">
4
+
5
+ <uses-permission android:name="android.permission.INTERNET" />
6
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
7
+
8
+ <application
9
+ android:allowBackup="true"
10
+ android:icon="@mipmap/ic_launcher"
11
+ android:label="@string/app_name"
12
+ android:roundIcon="@mipmap/ic_launcher_round"
13
+ android:supportsRtl="true"
14
+ android:usesCleartextTraffic="true"
15
+ android:theme="@style/AppTheme">
16
+
17
+ <activity
18
+ android:name=".MainActivity"
19
+ android:exported="true"
20
+ android:label="@string/app_name"
21
+ android:configChanges="orientation|screenSize|keyboardHidden">
22
+ <intent-filter>
23
+ <action android:name="android.intent.action.MAIN" />
24
+ <category android:name="android.intent.category.LAUNCHER" />
25
+ </intent-filter>
26
+ </activity>
27
+
28
+ </application>
29
+</manifest>
android/app/src/main/java/com/jcrguidepro/app/MainActivity.java
new
+133
@@ -0,0 +1,133 @@
1
+package com.jcrguidepro.app;
2
+
3
+import android.annotation.SuppressLint;
4
+import android.graphics.Bitmap;
5
+import android.os.Bundle;
6
+import android.util.Log;
7
+import android.view.View;
8
+import android.webkit.ConsoleMessage;
9
+import android.webkit.WebChromeClient;
10
+import android.webkit.WebResourceError;
11
+import android.webkit.WebResourceRequest;
12
+import android.webkit.WebResourceResponse;
13
+import android.webkit.WebSettings;
14
+import android.webkit.WebView;
15
+import android.webkit.WebViewClient;
16
+import android.widget.ProgressBar;
17
+import android.widget.Toast;
18
+import androidx.annotation.Nullable;
19
+import androidx.appcompat.app.AppCompatActivity;
20
+import androidx.webkit.WebViewAssetLoader;
21
+
22
+/**
23
+ * Robust Hybrid MainActivity that loads local HTML files using WebViewAssetLoader.
24
+ * This fixes "White Screen" issues by allowing ES modules and correct origin policies.
25
+ */
26
+public class MainActivity extends AppCompatActivity {
27
+
28
+ private static final String TAG = "JCR_WebView";
29
+ private WebView mWebView;
30
+ private ProgressBar mProgressBar;
31
+ private WebViewAssetLoader mAssetLoader;
32
+
33
+ @SuppressLint("SetJavaScriptEnabled")
34
+ @Override
35
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
36
+ super.onCreate(savedInstanceState);
37
+ setContentView(R.layout.activity_webview);
38
+
39
+ mWebView = findViewById(R.id.webview);
40
+ mProgressBar = findViewById(R.id.progressBar);
41
+
42
+ // Use the standard internal domain for local assets
43
+ mAssetLoader = new WebViewAssetLoader.Builder()
44
+ .addPathHandler("/assets/", new WebViewAssetLoader.AssetsPathHandler(this))
45
+ .build();
46
+
47
+ // Enable Chrome DevTools remote debugging
48
+ WebView.setWebContentsDebuggingEnabled(true);
49
+
50
+ setupWebSettings();
51
+ setupWebViewClients();
52
+
53
+ // Load index.html via the asset loader.
54
+ // Mapping: /assets/ maps to the app's 'assets' folder.
55
+ // Files are currently in assets/index.html
56
+ mWebView.loadUrl("https://appassets.androidplatform.net/assets/index.html");
57
+ }
58
+
59
+ private void setupWebSettings() {
60
+ WebSettings settings = mWebView.getSettings();
61
+ settings.setJavaScriptEnabled(true);
62
+ settings.setDomStorageEnabled(true);
63
+ settings.setDatabaseEnabled(true);
64
+
65
+ // Essential for modern web frameworks
66
+ settings.setAllowFileAccess(true);
67
+ settings.setAllowContentAccess(true);
68
+
69
+ // Viewport settings
70
+ settings.setUseWideViewPort(true);
71
+ settings.setLoadWithOverviewMode(true);
72
+ settings.setSupportZoom(true);
73
+ settings.setBuiltInZoomControls(true);
74
+ settings.setDisplayZoomControls(false);
75
+
76
+ settings.setCacheMode(WebSettings.LOAD_DEFAULT);
77
+ settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
78
+ }
79
+
80
+ private void setupWebViewClients() {
81
+ mWebView.setWebViewClient(new WebViewClient() {
82
+ @Override
83
+ public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
84
+ return mAssetLoader.shouldInterceptRequest(request.getUrl());
85
+ }
86
+
87
+ @Override
88
+ public void onPageStarted(WebView view, String url, Bitmap favicon) {
89
+ mProgressBar.setVisibility(View.VISIBLE);
90
+ Log.d(TAG, "Loading URL: " + url);
91
+ }
92
+
93
+ @Override
94
+ public void onPageFinished(WebView view, String url) {
95
+ mProgressBar.setVisibility(View.GONE);
96
+ Log.d(TAG, "Finished loading: " + url);
97
+ }
98
+
99
+ @Override
100
+ public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
101
+ Log.e(TAG, "WebView Error: " + error.getDescription() + " (URL: " + request.getUrl() + ")");
102
+ if (request.isForMainFrame()) {
103
+ mProgressBar.setVisibility(View.GONE);
104
+ }
105
+ }
106
+ });
107
+
108
+ mWebView.setWebChromeClient(new WebChromeClient() {
109
+ @Override
110
+ public void onProgressChanged(WebView view, int newProgress) {
111
+ mProgressBar.setProgress(newProgress);
112
+ if (newProgress == 100) {
113
+ mProgressBar.setVisibility(View.GONE);
114
+ }
115
+ }
116
+
117
+ @Override
118
+ public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
119
+ Log.d(TAG, "JS Console: [" + consoleMessage.messageLevel() + "] " + consoleMessage.message());
120
+ return true;
121
+ }
122
+ });
123
+ }
124
+
125
+ @Override
126
+ public void onBackPressed() {
127
+ if (mWebView.canGoBack()) {
128
+ mWebView.goBack();
129
+ } else {
130
+ super.onBackPressed();
131
+ }
132
+ }
133
+}
android/app/src/main/res/drawable/app_logo.jpg
Binary files /dev/null and b/android/app/src/main/res/drawable/app_logo.jpg differ
android/app/src/main/res/drawable/ic_launcher_background.xml
new
+10
@@ -0,0 +1,10 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:width="108dp"
4
+ android:height="108dp"
5
+ android:viewportWidth="108"
6
+ android:viewportHeight="108">
7
+ <path
8
+ android:fillColor="#000000"
9
+ android:pathData="M0,0h108v108h-108z" />
10
+</vector>
android/app/src/main/res/drawable/ic_launcher_foreground.xml
new
+8
@@ -0,0 +1,8 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
3
+ <item
4
+ android:drawable="@drawable/app_logo"
5
+ android:gravity="center"
6
+ android:width="108dp"
7
+ android:height="108dp" />
8
+</layer-list>
android/app/src/main/res/drawable/progress_bar_blue.xml
new
+25
@@ -0,0 +1,25 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
3
+ <item android:id="@android:id/background">
4
+ <shape>
5
+ <corners android:radius="0dp" />
6
+ <gradient
7
+ android:angle="270"
8
+ android:centerColor="#111827"
9
+ android:centerY="0.75"
10
+ android:endColor="#111827"
11
+ android:startColor="#111827" />
12
+ </shape>
13
+ </item>
14
+ <item android:id="@android:id/progress">
15
+ <clip>
16
+ <shape>
17
+ <corners android:radius="0dp" />
18
+ <gradient
19
+ android:angle="0"
20
+ android:endColor="#3b82f6"
21
+ android:startColor="#2563eb" />
22
+ </shape>
23
+ </clip>
24
+ </item>
25
+</layer-list>
android/app/src/main/res/layout/activity_main.xml
new
+13
@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:layout_width="match_parent"
4
+ android:layout_height="match_parent"
5
+ android:background="@color/windowBackground">
6
+
7
+ <ImageView
8
+ android:layout_width="128dp"
9
+ android:layout_height="128dp"
10
+ android:layout_gravity="center"
11
+ android:src="@mipmap/ic_launcher" />
12
+
13
+</FrameLayout>
android/app/src/main/res/layout/activity_webview.xml
new
+28
@@ -0,0 +1,28 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
+ xmlns:app="http://schemas.android.com/apk/res-auto"
4
+ android:layout_width="match_parent"
5
+ android:layout_height="match_parent"
6
+ android:background="@color/windowBackground">
7
+
8
+ <WebView
9
+ android:id="@+id/webview"
10
+ android:layout_width="0dp"
11
+ android:layout_height="0dp"
12
+ app:layout_constraintBottom_toBottomOf="parent"
13
+ app:layout_constraintEnd_toEndOf="parent"
14
+ app:layout_constraintStart_toStartOf="parent"
15
+ app:layout_constraintTop_toTopOf="parent" />
16
+
17
+ <ProgressBar
18
+ android:id="@+id/progressBar"
19
+ style="?android:attr/progressBarStyleHorizontal"
20
+ android:layout_width="0dp"
21
+ android:layout_height="wrap_content"
22
+ android:progressDrawable="@drawable/progress_bar_blue"
23
+ android:visibility="gone"
24
+ app:layout_constraintEnd_toEndOf="parent"
25
+ app:layout_constraintStart_toStartOf="parent"
26
+ app:layout_constraintTop_toTopOf="parent" />
27
+
28
+</androidx.constraintlayout.widget.ConstraintLayout>
android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new
+5
@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3
+ <background android:drawable="@drawable/ic_launcher_background" />
4
+ <foreground android:drawable="@drawable/ic_launcher_foreground" />
5
+</adaptive-icon>
android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new
+5
@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3
+ <background android:drawable="@drawable/ic_launcher_background" />
4
+ <foreground android:drawable="@drawable/ic_launcher_foreground" />
5
+</adaptive-icon>
android/app/src/main/res/mipmap/ic_launcher.xml
new
+5
@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
3
+ <item android:drawable="@drawable/ic_launcher_background" />
4
+ <item android:drawable="@drawable/ic_launcher_foreground" />
5
+</layer-list>
android/app/src/main/res/mipmap/ic_launcher_round.xml
new
+5
@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
3
+ <item android:drawable="@drawable/ic_launcher_background" />
4
+ <item android:drawable="@drawable/ic_launcher_foreground" />
5
+</layer-list>
android/app/src/main/res/values/colors.xml
new
+7
@@ -0,0 +1,7 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<resources>
3
+ <color name="colorPrimary">#6366F1</color> <!-- Indigo 500 -->
4
+ <color name="colorPrimaryDark">#4F46E5</color> <!-- Indigo 600 -->
5
+ <color name="colorAccent">#6366F1</color>
6
+ <color name="windowBackground">#020617</color> <!-- Elegant Dark Background -->
7
+</resources>
android/app/src/main/res/values/strings.xml
new
+4
@@ -0,0 +1,4 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<resources>
3
+ <string name="app_name">JCRguru</string>
4
+</resources>
android/app/src/main/res/values/styles.xml
new
+11
@@ -0,0 +1,11 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<resources>
3
+ <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
4
+ <item name="android:windowBackground">@color/windowBackground</item>
5
+ <item name="android:statusBarColor">@color/windowBackground</item>
6
+ <item name="android:navigationBarColor">@color/windowBackground</item>
7
+ <item name="colorPrimary">@color/colorPrimary</item>
8
+ <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
9
+ <item name="colorAccent">@color/colorAccent</item>
10
+ </style>
11
+</resources>
android/app/src/main/res/xml/file_paths.xml
new
+6
@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<paths>
3
+ <external-path name="external_files" path="." />
4
+ <cache-path name="cache" path="." />
5
+ <files-path name="files" path="." />
6
+</paths>
android/build.gradle
new
+20
@@ -0,0 +1,20 @@
1
+buildscript {
2
+ repositories {
3
+ google()
4
+ mavenCentral()
5
+ }
6
+ dependencies {
7
+ classpath 'com.android.tools.build:gradle:9.3.1'
8
+ }
9
+}
10
+
11
+allprojects {
12
+ repositories {
13
+ google()
14
+ mavenCentral()
15
+ }
16
+}
17
+
18
+tasks.register('clean', Delete) {
19
+ delete rootProject.layout.buildDirectory
20
+}
android/dataconnect/dataconnect.yaml
new
+13
@@ -0,0 +1,13 @@
1
+specVersion: "v1"
2
+serviceId: "jcr-guide-pro-source"
3
+location: "us-south1"
4
+schemas:
5
+ - source: "./schema"
6
+ datasource:
7
+ postgresql:
8
+ database: "fdcdb"
9
+ cloudSql:
10
+ instanceId: "jcr-guide-pro-source-fdc"
11
+ # schemaValidation: "STRICT" # STRICT mode makes Postgres schema match Data Connect exactly.
12
+ # schemaValidation: "COMPATIBLE" # COMPATIBLE mode makes Postgres schema compatible with Data Connect.
13
+connectorDirs: ["./example"]
android/dataconnect/example/connector.yaml
new
+6
@@ -0,0 +1,6 @@
1
+connectorId: example
2
+generate:
3
+ kotlinSdk:
4
+ - outputDir: ..\..\app\src\main\kotlin
5
+ package: com.google.firebase.dataconnect.generated
6
+ clientCache: {}
android/dataconnect/schema/schema.gql
new
+40
@@ -0,0 +1,40 @@
1
+type Device @table {
2
+ manufacturer: String!
3
+ modelName: String!
4
+ releaseYear: Int
5
+ imageUrl: String
6
+}
7
+
8
+type Guide @table {
9
+ title: String!
10
+ difficultyLevel: String!
11
+ estimatedTimeMinutes: Int!
12
+ description: String
13
+ videoUrl: String
14
+ device: Device
15
+ category: Category
16
+}
17
+
18
+type Step @table {
19
+ sequenceOrder: Int!
20
+ instructionText: String!
21
+ imageUrl: String
22
+ guide: Guide!
23
+}
24
+
25
+type Category @table {
26
+ name: String!
27
+ iconUrl: String
28
+}
29
+
30
+type UserBookmark @table {
31
+ userId: String!
32
+ guide: Guide!
33
+}
34
+
35
+type Part @table {
36
+ partName: String!
37
+ partType: String!
38
+ compatibilityNotes: String
39
+ device: Device!
40
+}
\ No newline at end of file
android/functions/.eslintrc.js
new
+28
@@ -0,0 +1,28 @@
1
+module.exports = {
2
+ env: {
3
+ es6: true,
4
+ node: true,
5
+ },
6
+ parserOptions: {
7
+ "ecmaVersion": 2018,
8
+ },
9
+ extends: [
10
+ "eslint:recommended",
11
+ "google",
12
+ ],
13
+ rules: {
14
+ "no-restricted-globals": ["error", "name", "length"],
15
+ "prefer-arrow-callback": "error",
16
+ "quotes": ["error", "double", {"allowTemplateLiterals": true}],
17
+ },
18
+ overrides: [
19
+ {
20
+ files: ["**/*.spec.*"],
21
+ env: {
22
+ mocha: true,
23
+ },
24
+ rules: {},
25
+ },
26
+ ],
27
+ globals: {},
28
+};
android/functions/.gitignore
new
+2
@@ -0,0 +1,2 @@
1
+node_modules/
2
+*.local
\ No newline at end of file
android/functions/index.js
new
+32
@@ -0,0 +1,32 @@
1
+/**
2
+ * Import function triggers from their respective submodules:
3
+ *
4
+ * const {onCall} = require("firebase-functions/v2/https");
5
+ * const {onDocumentWritten} = require("firebase-functions/v2/firestore");
6
+ *
7
+ * See a full list of supported triggers at https://firebase.google.com/docs/functions
8
+ */
9
+
10
+const {setGlobalOptions} = require("firebase-functions");
11
+const {onRequest} = require("firebase-functions/https");
12
+const logger = require("firebase-functions/logger");
13
+
14
+// For cost control, you can set the maximum number of containers that can be
15
+// running at the same time. This helps mitigate the impact of unexpected
16
+// traffic spikes by instead downgrading performance. This limit is a
17
+// per-function limit. You can override the limit for each function using the
18
+// `maxInstances` option in the function's options, e.g.
19
+// `onRequest({ maxInstances: 5 }, (req, res) => { ... })`.
20
+// NOTE: setGlobalOptions does not apply to functions using the v1 API. V1
21
+// functions should each use functions.runWith({ maxInstances: 10 }) instead.
22
+// In the v1 API, each function can only serve one request per container, so
23
+// this will be the maximum concurrent request count.
24
+setGlobalOptions({ maxInstances: 10 });
25
+
26
+// Create and deploy your first functions
27
+// https://firebase.google.com/docs/functions/get-started
28
+
29
+// exports.helloWorld = onRequest((request, response) => {
30
+// logger.info("Hello logs!", {structuredData: true});
31
+// response.send("Hello from Firebase!");
32
+// });
android/functions/package-lock.json
new
+8254
@@ -0,0 +1,8254 @@
1
+{
2
+ "name": "functions",
3
+ "lockfileVersion": 3,
4
+ "requires": true,
5
+ "packages": {
6
+ "": {
7
+ "name": "functions",
8
+ "dependencies": {
9
+ "firebase-admin": "^13.6.0",
10
+ "firebase-functions": "^7.0.0"
11
+ },
12
+ "devDependencies": {
13
+ "eslint": "^8.15.0",
14
+ "eslint-config-google": "^0.14.0",
15
+ "firebase-functions-test": "^3.4.1"
16
+ },
17
+ "engines": {
18
+ "node": "24"
19
+ }
20
+ },
21
+ "node_modules/@babel/code-frame": {
22
+ "version": "7.29.7",
23
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz",
24
+ "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==",
25
+ "dev": true,
26
+ "license": "MIT",
27
+ "peer": true,
28
+ "dependencies": {
29
+ "@babel/helper-validator-identifier": "^7.29.7",
30
+ "js-tokens": "^4.0.0",
31
+ "picocolors": "^1.1.1"
32
+ },
33
+ "engines": {
34
+ "node": ">=6.9.0"
35
+ }
36
+ },
37
+ "node_modules/@babel/compat-data": {
38
+ "version": "7.29.7",
39
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz",
40
+ "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==",
41
+ "dev": true,
42
+ "license": "MIT",
43
+ "peer": true,
44
+ "engines": {
45
+ "node": ">=6.9.0"
46
+ }
47
+ },
48
+ "node_modules/@babel/core": {
49
+ "version": "7.29.7",
50
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz",
51
+ "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==",
52
+ "dev": true,
53
+ "license": "MIT",
54
+ "peer": true,
55
+ "dependencies": {
56
+ "@babel/code-frame": "^7.29.7",
57
+ "@babel/generator": "^7.29.7",
58
+ "@babel/helper-compilation-targets": "^7.29.7",
59
+ "@babel/helper-module-transforms": "^7.29.7",
60
+ "@babel/helpers": "^7.29.7",
61
+ "@babel/parser": "^7.29.7",
62
+ "@babel/template": "^7.29.7",
63
+ "@babel/traverse": "^7.29.7",
64
+ "@babel/types": "^7.29.7",
65
+ "@jridgewell/remapping": "^2.3.5",
66
+ "convert-source-map": "^2.0.0",
67
+ "debug": "^4.1.0",
68
+ "gensync": "^1.0.0-beta.2",
69
+ "json5": "^2.2.3",
70
+ "semver": "^6.3.1"
71
+ },
72
+ "engines": {
73
+ "node": ">=6.9.0"
74
+ },
75
+ "funding": {
76
+ "type": "opencollective",
77
+ "url": "https://opencollective.com/babel"
78
+ }
79
+ },
80
+ "node_modules/@babel/generator": {
81
+ "version": "7.29.8",
82
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz",
83
+ "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==",
84
+ "dev": true,
85
+ "license": "MIT",
86
+ "peer": true,
87
+ "dependencies": {
88
+ "@babel/parser": "^7.29.8",
89
+ "@babel/types": "^7.29.8",
90
+ "@jridgewell/gen-mapping": "^0.3.12",
91
+ "@jridgewell/trace-mapping": "^0.3.28",
92
+ "jsesc": "^3.0.2"
93
+ },
94
+ "engines": {
95
+ "node": ">=6.9.0"
96
+ }
97
+ },
98
+ "node_modules/@babel/helper-compilation-targets": {
99
+ "version": "7.29.7",
100
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz",
101
+ "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==",
102
+ "dev": true,
103
+ "license": "MIT",
104
+ "peer": true,
105
+ "dependencies": {
106
+ "@babel/compat-data": "^7.29.7",
107
+ "@babel/helper-validator-option": "^7.29.7",
108
+ "browserslist": "^4.24.0",
109
+ "lru-cache": "^5.1.1",
110
+ "semver": "^6.3.1"
111
+ },
112
+ "engines": {
113
+ "node": ">=6.9.0"
114
+ }
115
+ },
116
+ "node_modules/@babel/helper-globals": {
117
+ "version": "7.29.7",
118
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz",
119
+ "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==",
120
+ "dev": true,
121
+ "license": "MIT",
122
+ "peer": true,
123
+ "engines": {
124
+ "node": ">=6.9.0"
125
+ }
126
+ },
127
+ "node_modules/@babel/helper-module-imports": {
128
+ "version": "7.29.7",
129
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz",
130
+ "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==",
131
+ "dev": true,
132
+ "license": "MIT",
133
+ "peer": true,
134
+ "dependencies": {
135
+ "@babel/traverse": "^7.29.7",
136
+ "@babel/types": "^7.29.7"
137
+ },
138
+ "engines": {
139
+ "node": ">=6.9.0"
140
+ }
141
+ },
142
+ "node_modules/@babel/helper-module-transforms": {
143
+ "version": "7.29.7",
144
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz",
145
+ "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==",
146
+ "dev": true,
147
+ "license": "MIT",
148
+ "peer": true,
149
+ "dependencies": {
150
+ "@babel/helper-module-imports": "^7.29.7",
151
+ "@babel/helper-validator-identifier": "^7.29.7",
152
+ "@babel/traverse": "^7.29.7"
153
+ },
154
+ "engines": {
155
+ "node": ">=6.9.0"
156
+ },
157
+ "peerDependencies": {
158
+ "@babel/core": "^7.0.0"
159
+ }
160
+ },
161
+ "node_modules/@babel/helper-plugin-utils": {
162
+ "version": "7.29.7",
163
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz",
164
+ "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==",
165
+ "dev": true,
166
+ "license": "MIT",
167
+ "peer": true,
168
+ "engines": {
169
+ "node": ">=6.9.0"
170
+ }
171
+ },
172
+ "node_modules/@babel/helper-string-parser": {
173
+ "version": "7.29.7",
174
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz",
175
+ "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==",
176
+ "dev": true,
177
+ "license": "MIT",
178
+ "peer": true,
179
+ "engines": {
180
+ "node": ">=6.9.0"
181
+ }
182
+ },
183
+ "node_modules/@babel/helper-validator-identifier": {
184
+ "version": "7.29.7",
185
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz",
186
+ "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
187
+ "dev": true,
188
+ "license": "MIT",
189
+ "peer": true,
190
+ "engines": {
191
+ "node": ">=6.9.0"
192
+ }
193
+ },
194
+ "node_modules/@babel/helper-validator-option": {
195
+ "version": "7.29.7",
196
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz",
197
+ "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==",
198
+ "dev": true,
199
+ "license": "MIT",
200
+ "peer": true,
201
+ "engines": {
202
+ "node": ">=6.9.0"
203
+ }
204
+ },
205
+ "node_modules/@babel/helpers": {
206
+ "version": "7.29.7",
207
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz",
208
+ "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==",
209
+ "dev": true,
210
+ "license": "MIT",
211
+ "peer": true,
212
+ "dependencies": {
213
+ "@babel/template": "^7.29.7",
214
+ "@babel/types": "^7.29.7"
215
+ },
216
+ "engines": {
217
+ "node": ">=6.9.0"
218
+ }
219
+ },
220
+ "node_modules/@babel/parser": {
221
+ "version": "7.29.8",
222
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz",
223
+ "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==",
224
+ "dev": true,
225
+ "license": "MIT",
226
+ "peer": true,
227
+ "dependencies": {
228
+ "@babel/types": "^7.29.8"
229
+ },
230
+ "bin": {
231
+ "parser": "bin/babel-parser.js"
232
+ },
233
+ "engines": {
234
+ "node": ">=6.0.0"
235
+ }
236
+ },
237
+ "node_modules/@babel/plugin-syntax-async-generators": {
238
+ "version": "7.8.4",
239
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
240
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
241
+ "dev": true,
242
+ "license": "MIT",
243
+ "peer": true,
244
+ "dependencies": {
245
+ "@babel/helper-plugin-utils": "^7.8.0"
246
+ },
247
+ "peerDependencies": {
248
+ "@babel/core": "^7.0.0-0"
249
+ }
250
+ },
251
+ "node_modules/@babel/plugin-syntax-bigint": {
252
+ "version": "7.8.3",
253
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
254
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
255
+ "dev": true,
256
+ "license": "MIT",
257
+ "peer": true,
258
+ "dependencies": {
259
+ "@babel/helper-plugin-utils": "^7.8.0"
260
+ },
261
+ "peerDependencies": {
262
+ "@babel/core": "^7.0.0-0"
263
+ }
264
+ },
265
+ "node_modules/@babel/plugin-syntax-class-properties": {
266
+ "version": "7.12.13",
267
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
268
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
269
+ "dev": true,
270
+ "license": "MIT",
271
+ "peer": true,
272
+ "dependencies": {
273
+ "@babel/helper-plugin-utils": "^7.12.13"
274
+ },
275
+ "peerDependencies": {
276
+ "@babel/core": "^7.0.0-0"
277
+ }
278
+ },
279
+ "node_modules/@babel/plugin-syntax-class-static-block": {
280
+ "version": "7.14.5",
281
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
282
+ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
283
+ "dev": true,
284
+ "license": "MIT",
285
+ "peer": true,
286
+ "dependencies": {
287
+ "@babel/helper-plugin-utils": "^7.14.5"
288
+ },
289
+ "engines": {
290
+ "node": ">=6.9.0"
291
+ },
292
+ "peerDependencies": {
293
+ "@babel/core": "^7.0.0-0"
294
+ }
295
+ },
296
+ "node_modules/@babel/plugin-syntax-import-attributes": {
297
+ "version": "7.29.7",
298
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz",
299
+ "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==",
300
+ "dev": true,
301
+ "license": "MIT",
302
+ "peer": true,
303
+ "dependencies": {
304
+ "@babel/helper-plugin-utils": "^7.29.7"
305
+ },
306
+ "engines": {
307
+ "node": ">=6.9.0"
308
+ },
309
+ "peerDependencies": {
310
+ "@babel/core": "^7.0.0-0"
311
+ }
312
+ },
313
+ "node_modules/@babel/plugin-syntax-import-meta": {
314
+ "version": "7.10.4",
315
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
316
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
317
+ "dev": true,
318
+ "license": "MIT",
319
+ "peer": true,
320
+ "dependencies": {
321
+ "@babel/helper-plugin-utils": "^7.10.4"
322
+ },
323
+ "peerDependencies": {
324
+ "@babel/core": "^7.0.0-0"
325
+ }
326
+ },
327
+ "node_modules/@babel/plugin-syntax-json-strings": {
328
+ "version": "7.8.3",
329
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
330
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
331
+ "dev": true,
332
+ "license": "MIT",
333
+ "peer": true,
334
+ "dependencies": {
335
+ "@babel/helper-plugin-utils": "^7.8.0"
336
+ },
337
+ "peerDependencies": {
338
+ "@babel/core": "^7.0.0-0"
339
+ }
340
+ },
341
+ "node_modules/@babel/plugin-syntax-jsx": {
342
+ "version": "7.29.7",
343
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz",
344
+ "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==",
345
+ "dev": true,
346
+ "license": "MIT",
347
+ "peer": true,
348
+ "dependencies": {
349
+ "@babel/helper-plugin-utils": "^7.29.7"
350
+ },
351
+ "engines": {
352
+ "node": ">=6.9.0"
353
+ },
354
+ "peerDependencies": {
355
+ "@babel/core": "^7.0.0-0"
356
+ }
357
+ },
358
+ "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
359
+ "version": "7.10.4",
360
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
361
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
362
+ "dev": true,
363
+ "license": "MIT",
364
+ "peer": true,
365
+ "dependencies": {
366
+ "@babel/helper-plugin-utils": "^7.10.4"
367
+ },
368
+ "peerDependencies": {
369
+ "@babel/core": "^7.0.0-0"
370
+ }
371
+ },
372
+ "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
373
+ "version": "7.8.3",
374
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
375
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
376
+ "dev": true,
377
+ "license": "MIT",
378
+ "peer": true,
379
+ "dependencies": {
380
+ "@babel/helper-plugin-utils": "^7.8.0"
381
+ },
382
+ "peerDependencies": {
383
+ "@babel/core": "^7.0.0-0"
384
+ }
385
+ },
386
+ "node_modules/@babel/plugin-syntax-numeric-separator": {
387
+ "version": "7.10.4",
388
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
389
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
390
+ "dev": true,
391
+ "license": "MIT",
392
+ "peer": true,
393
+ "dependencies": {
394
+ "@babel/helper-plugin-utils": "^7.10.4"
395
+ },
396
+ "peerDependencies": {
397
+ "@babel/core": "^7.0.0-0"
398
+ }
399
+ },
400
+ "node_modules/@babel/plugin-syntax-object-rest-spread": {
401
+ "version": "7.8.3",
402
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
403
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
404
+ "dev": true,
405
+ "license": "MIT",
406
+ "peer": true,
407
+ "dependencies": {
408
+ "@babel/helper-plugin-utils": "^7.8.0"
409
+ },
410
+ "peerDependencies": {
411
+ "@babel/core": "^7.0.0-0"
412
+ }
413
+ },
414
+ "node_modules/@babel/plugin-syntax-optional-catch-binding": {
415
+ "version": "7.8.3",
416
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
417
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
418
+ "dev": true,
419
+ "license": "MIT",
420
+ "peer": true,
421
+ "dependencies": {
422
+ "@babel/helper-plugin-utils": "^7.8.0"
423
+ },
424
+ "peerDependencies": {
425
+ "@babel/core": "^7.0.0-0"
426
+ }
427
+ },
428
+ "node_modules/@babel/plugin-syntax-optional-chaining": {
429
+ "version": "7.8.3",
430
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
431
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
432
+ "dev": true,
433
+ "license": "MIT",
434
+ "peer": true,
435
+ "dependencies": {
436
+ "@babel/helper-plugin-utils": "^7.8.0"
437
+ },
438
+ "peerDependencies": {
439
+ "@babel/core": "^7.0.0-0"
440
+ }
441
+ },
442
+ "node_modules/@babel/plugin-syntax-private-property-in-object": {
443
+ "version": "7.14.5",
444
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
445
+ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
446
+ "dev": true,
447
+ "license": "MIT",
448
+ "peer": true,
449
+ "dependencies": {
450
+ "@babel/helper-plugin-utils": "^7.14.5"
451
+ },
452
+ "engines": {
453
+ "node": ">=6.9.0"
454
+ },
455
+ "peerDependencies": {
456
+ "@babel/core": "^7.0.0-0"
457
+ }
458
+ },
459
+ "node_modules/@babel/plugin-syntax-top-level-await": {
460
+ "version": "7.14.5",
461
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
462
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
463
+ "dev": true,
464
+ "license": "MIT",
465
+ "peer": true,
466
+ "dependencies": {
467
+ "@babel/helper-plugin-utils": "^7.14.5"
468
+ },
469
+ "engines": {
470
+ "node": ">=6.9.0"
471
+ },
472
+ "peerDependencies": {
473
+ "@babel/core": "^7.0.0-0"
474
+ }
475
+ },
476
+ "node_modules/@babel/plugin-syntax-typescript": {
477
+ "version": "7.29.7",
478
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz",
479
+ "integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==",
480
+ "dev": true,
481
+ "license": "MIT",
482
+ "peer": true,
483
+ "dependencies": {
484
+ "@babel/helper-plugin-utils": "^7.29.7"
485
+ },
486
+ "engines": {
487
+ "node": ">=6.9.0"
488
+ },
489
+ "peerDependencies": {
490
+ "@babel/core": "^7.0.0-0"
491
+ }
492
+ },
493
+ "node_modules/@babel/template": {
494
+ "version": "7.29.7",
495
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz",
496
+ "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==",
497
+ "dev": true,
498
+ "license": "MIT",
499
+ "peer": true,
500
+ "dependencies": {
501
+ "@babel/code-frame": "^7.29.7",
502
+ "@babel/parser": "^7.29.7",
503
+ "@babel/types": "^7.29.7"
504
+ },
505
+ "engines": {
506
+ "node": ">=6.9.0"
507
+ }
508
+ },
509
+ "node_modules/@babel/traverse": {
510
+ "version": "7.29.8",
511
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz",
512
+ "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==",
513
+ "dev": true,
514
+ "license": "MIT",
515
+ "peer": true,
516
+ "dependencies": {
517
+ "@babel/code-frame": "^7.29.7",
518
+ "@babel/generator": "^7.29.8",
519
+ "@babel/helper-globals": "^7.29.7",
520
+ "@babel/parser": "^7.29.8",
521
+ "@babel/template": "^7.29.7",
522
+ "@babel/types": "^7.29.8",
523
+ "debug": "^4.3.1"
524
+ },
525
+ "engines": {
526
+ "node": ">=6.9.0"
527
+ }
528
+ },
529
+ "node_modules/@babel/types": {
530
+ "version": "7.29.8",
531
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz",
532
+ "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==",
533
+ "dev": true,
534
+ "license": "MIT",
535
+ "peer": true,
536
+ "dependencies": {
537
+ "@babel/helper-string-parser": "^7.29.7",
538
+ "@babel/helper-validator-identifier": "^7.29.7"
539
+ },
540
+ "engines": {
541
+ "node": ">=6.9.0"
542
+ }
543
+ },
544
+ "node_modules/@bcoe/v8-coverage": {
545
+ "version": "0.2.3",
546
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
547
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
548
+ "dev": true,
549
+ "license": "MIT",
550
+ "peer": true
551
+ },
552
+ "node_modules/@emnapi/core": {
553
+ "version": "1.10.0",
554
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
555
+ "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
556
+ "dev": true,
557
+ "license": "MIT",
558
+ "optional": true,
559
+ "peer": true,
560
+ "dependencies": {
561
+ "@emnapi/wasi-threads": "1.2.1",
562
+ "tslib": "^2.4.0"
563
+ }
564
+ },
565
+ "node_modules/@emnapi/runtime": {
566
+ "version": "1.10.0",
567
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
568
+ "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
569
+ "dev": true,
570
+ "license": "MIT",
571
+ "optional": true,
572
+ "peer": true,
573
+ "dependencies": {
574
+ "tslib": "^2.4.0"
575
+ }
576
+ },
577
+ "node_modules/@emnapi/wasi-threads": {
578
+ "version": "1.2.1",
579
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
580
+ "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
581
+ "dev": true,
582
+ "license": "MIT",
583
+ "optional": true,
584
+ "peer": true,
585
+ "dependencies": {
586
+ "tslib": "^2.4.0"
587
+ }
588
+ },
589
+ "node_modules/@eslint-community/eslint-utils": {
590
+ "version": "4.10.1",
591
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz",
592
+ "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==",
593
+ "dev": true,
594
+ "license": "MIT",
595
+ "dependencies": {
596
+ "eslint-visitor-keys": "^3.4.3"
597
+ },
598
+ "engines": {
599
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
600
+ },
601
+ "funding": {
602
+ "url": "https://opencollective.com/eslint"
603
+ },
604
+ "peerDependencies": {
605
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
606
+ }
607
+ },
608
+ "node_modules/@eslint-community/regexpp": {
609
+ "version": "4.12.2",
610
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
611
+ "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",
612
+ "dev": true,
613
+ "license": "MIT",
614
+ "engines": {
615
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
616
+ }
617
+ },
618
+ "node_modules/@eslint/eslintrc": {
619
+ "version": "2.1.4",
620
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
621
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
622
+ "dev": true,
623
+ "license": "MIT",
624
+ "dependencies": {
625
+ "ajv": "^6.12.4",
626
+ "debug": "^4.3.2",
627
+ "espree": "^9.6.0",
628
+ "globals": "^13.19.0",
629
+ "ignore": "^5.2.0",
630
+ "import-fresh": "^3.2.1",
631
+ "js-yaml": "^4.1.0",
632
+ "minimatch": "^3.1.2",
633
+ "strip-json-comments": "^3.1.1"
634
+ },
635
+ "engines": {
636
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
637
+ },
638
+ "funding": {
639
+ "url": "https://opencollective.com/eslint"
640
+ }
641
+ },
642
+ "node_modules/@eslint/js": {
643
+ "version": "8.57.1",
644
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
645
+ "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
646
+ "dev": true,
647
+ "license": "MIT",
648
+ "engines": {
649
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
650
+ }
651
+ },
652
+ "node_modules/@fastify/busboy": {
653
+ "version": "3.2.1",
654
+ "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.2.1.tgz",
655
+ "integrity": "sha512-tgK4O+57iz5ycYNGXE5ZWj1ES03lD2XnnBYWSbU/3wYZRMQzCUq7Ycds/RdyBZQeL5MU4fxBt6lzbIWf/Bickw==",
656
+ "license": "MIT"
657
+ },
658
+ "node_modules/@firebase/app-check-interop-types": {
659
+ "version": "0.3.4",
660
+ "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.4.tgz",
661
+ "integrity": "sha512-zz3i6e13B8BfWiLy8MABtTh8aGIACgKbf9UVnyHcWs+yQzJXgQcl8A46b0zfaiJHdQ+niF0ouAfcpuf+3LMPQg==",
662
+ "license": "Apache-2.0"
663
+ },
664
+ "node_modules/@firebase/app-types": {
665
+ "version": "0.9.5",
666
+ "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.5.tgz",
667
+ "integrity": "sha512-YevqTjvo7Iujsa9Dwowmd6dSoElhzmD63ZSrq6bzjvQ6POjYgNjOFHLmNIgJs48eNO093NCERibuFnxbfOvU7A==",
668
+ "license": "Apache-2.0",
669
+ "dependencies": {
670
+ "@firebase/logger": "0.5.1"
671
+ }
672
+ },
673
+ "node_modules/@firebase/auth-interop-types": {
674
+ "version": "0.2.5",
675
+ "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.5.tgz",
676
+ "integrity": "sha512-1Li/YuBDBAXcKv7BzY4U28gontUmAaw53sYiqbaVOMCFb2lFKK/c3CGMUWqtwe7+TXrl3poWnTCL5umYBg85Eg==",
677
+ "license": "Apache-2.0"
678
+ },
679
+ "node_modules/@firebase/component": {
680
+ "version": "0.7.4",
681
+ "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.7.4.tgz",
682
+ "integrity": "sha512-tLpOaaCol9ugUIYp2R3CbWPPA8Ajg/papX/XHEy8U52b/QXH3BbX8tTJX9aShDCjp+9sMAxMLD94i7lresdugQ==",
683
+ "license": "Apache-2.0",
684
+ "dependencies": {
685
+ "@firebase/util": "1.15.2",
686
+ "tslib": "^2.1.0"
687
+ },
688
+ "engines": {
689
+ "node": ">=20.0.0"
690
+ }
691
+ },
692
+ "node_modules/@firebase/database": {
693
+ "version": "1.1.4",
694
+ "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.1.4.tgz",
695
+ "integrity": "sha512-D+j4+8uhGtNd1tVD+X+c8JrC4ppStGJKyujSQt2NPwdN26QcCk0BeIxue+UqspHkHiFHyQOimwlzjLewGq6S+A==",
696
+ "license": "Apache-2.0",
697
+ "dependencies": {
698
+ "@firebase/app-check-interop-types": "0.3.4",
699
+ "@firebase/auth-interop-types": "0.2.5",
700
+ "@firebase/component": "0.7.4",
701
+ "@firebase/logger": "0.5.1",
702
+ "@firebase/util": "1.15.2",
703
+ "faye-websocket": "0.11.4",
704
+ "tslib": "^2.1.0"
705
+ },
706
+ "engines": {
707
+ "node": ">=20.0.0"
708
+ }
709
+ },
710
+ "node_modules/@firebase/database-compat": {
711
+ "version": "2.1.6",
712
+ "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.1.6.tgz",
713
+ "integrity": "sha512-mu7S/75UIajB1A5M9Vfojk69LttW55uABp9nHEtWrV/mIaSEwvoaIe9GySsEzS2EKFK5/3f5okcAuUbihhYeJg==",
714
+ "license": "Apache-2.0",
715
+ "dependencies": {
716
+ "@firebase/component": "0.7.4",
717
+ "@firebase/database": "1.1.4",
718
+ "@firebase/database-types": "1.0.21",
719
+ "@firebase/logger": "0.5.1",
720
+ "@firebase/util": "1.15.2",
721
+ "tslib": "^2.1.0"
722
+ },
723
+ "engines": {
724
+ "node": ">=20.0.0"
725
+ },
726
+ "peerDependencies": {
727
+ "@firebase/app": "0.x",
728
+ "@firebase/app-compat": "0.x"
729
+ },
730
+ "peerDependenciesMeta": {
731
+ "@firebase/app": {
732
+ "optional": true
733
+ },
734
+ "@firebase/app-compat": {
735
+ "optional": true
736
+ }
737
+ }
738
+ },
739
+ "node_modules/@firebase/database-types": {
740
+ "version": "1.0.21",
741
+ "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.21.tgz",
742
+ "integrity": "sha512-SX1jUqhttKgg/m9dYRTvqU9QvucBooziWfA986r4cpsbi4zlsvewe424j3Vpduwd6DG1MSAMfBVT2VqA61FnkA==",
743
+ "license": "Apache-2.0",
744
+ "dependencies": {
745
+ "@firebase/app-types": "0.9.5",
746
+ "@firebase/util": "1.15.2"
747
+ }
748
+ },
749
+ "node_modules/@firebase/logger": {
750
+ "version": "0.5.1",
751
+ "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.5.1.tgz",
752
+ "integrity": "sha512-vZKLsqE1ABOy8OjQiE7cUTFn4gvaqlk88yp8N94Pk/sDpq61YqZGqmVFZTvOyflTwuYFcWirBdYGoJgbDaXKYQ==",
753
+ "license": "Apache-2.0",
754
+ "dependencies": {
755
+ "tslib": "^2.1.0"
756
+ },
757
+ "engines": {
758
+ "node": ">=20.0.0"
759
+ }
760
+ },
761
+ "node_modules/@firebase/util": {
762
+ "version": "1.15.2",
763
+ "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.15.2.tgz",
764
+ "integrity": "sha512-974pWIZVLDMc5GW5YAsj8y0XxULxIy/sPUy7tsxmWbF93KRIyh9xpuHlh0zDL+shUcf5nHDjFOg9YLiQ763eiA==",
765
+ "hasInstallScript": true,
766
+ "license": "Apache-2.0",
767
+ "dependencies": {
768
+ "tslib": "^2.1.0"
769
+ },
770
+ "engines": {
771
+ "node": ">=20.0.0"
772
+ }
773
+ },
774
+ "node_modules/@google-cloud/firestore": {
775
+ "version": "7.11.6",
776
+ "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.11.6.tgz",
777
+ "integrity": "sha512-EW/O8ktzwLfyWBOsNuhRoMi8lrC3clHM5LVFhGvO1HCsLozCOOXRAlHrYBoE6HL42Sc8yYMuCb2XqcnJ4OOEpw==",
778
+ "license": "Apache-2.0",
779
+ "optional": true,
780
+ "dependencies": {
781
+ "@opentelemetry/api": "^1.3.0",
782
+ "fast-deep-equal": "^3.1.1",
783
+ "functional-red-black-tree": "^1.0.1",
784
+ "google-gax": "^4.3.3",
785
+ "protobufjs": "^7.2.6"
786
+ },
787
+ "engines": {
788
+ "node": ">=14.0.0"
789
+ }
790
+ },
791
+ "node_modules/@google-cloud/paginator": {
792
+ "version": "5.0.2",
793
+ "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz",
794
+ "integrity": "sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==",
795
+ "license": "Apache-2.0",
796
+ "optional": true,
797
+ "dependencies": {
798
+ "arrify": "^2.0.0",
799
+ "extend": "^3.0.2"
800
+ },
801
+ "engines": {
802
+ "node": ">=14.0.0"
803
+ }
804
+ },
805
+ "node_modules/@google-cloud/projectify": {
806
+ "version": "4.0.0",
807
+ "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz",
808
+ "integrity": "sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==",
809
+ "license": "Apache-2.0",
810
+ "optional": true,
811
+ "engines": {
812
+ "node": ">=14.0.0"
813
+ }
814
+ },
815
+ "node_modules/@google-cloud/promisify": {
816
+ "version": "4.0.0",
817
+ "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz",
818
+ "integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==",
819
+ "license": "Apache-2.0",
820
+ "optional": true,
821
+ "engines": {
822
+ "node": ">=14"
823
+ }
824
+ },
825
+ "node_modules/@google-cloud/storage": {
826
+ "version": "7.22.0",
827
+ "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.22.0.tgz",
828
+ "integrity": "sha512-W98gTQOAntEeEQ7/pZxSQXxfUO5CiQcXJRsxBpUa6UU25n8YN/VtogPBi0H+MAmUrn/6bY/sBhFansoWEsr2/g==",
829
+ "license": "Apache-2.0",
830
+ "optional": true,
831
+ "dependencies": {
832
+ "@google-cloud/paginator": "^5.0.0",
833
+ "@google-cloud/projectify": "^4.0.0",
834
+ "@google-cloud/promisify": "<4.1.0",
835
+ "abort-controller": "^3.0.0",
836
+ "async-retry": "^1.3.3",
837
+ "duplexify": "^4.1.3",
838
+ "fast-xml-parser": "^5.3.4",
839
+ "gaxios": "^6.0.2",
840
+ "google-auth-library": "^9.6.3",
841
+ "html-entities": "^2.5.2",
842
+ "mime": "^3.0.0",
843
+ "p-limit": "^3.0.1",
844
+ "retry-request": "^7.0.0",
845
+ "teeny-request": "^9.0.0"
846
+ },
847
+ "engines": {
848
+ "node": ">=18"
849
+ }
850
+ },
851
+ "node_modules/@google-cloud/storage/node_modules/gcp-metadata": {
852
+ "version": "6.1.1",
853
+ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz",
854
+ "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==",
855
+ "license": "Apache-2.0",
856
+ "optional": true,
857
+ "dependencies": {
858
+ "gaxios": "^6.1.1",
859
+ "google-logging-utils": "^0.0.2",
860
+ "json-bigint": "^1.0.0"
861
+ },
862
+ "engines": {
863
+ "node": ">=14"
864
+ }
865
+ },
866
+ "node_modules/@google-cloud/storage/node_modules/google-auth-library": {
867
+ "version": "9.15.1",
868
+ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz",
869
+ "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==",
870
+ "license": "Apache-2.0",
871
+ "optional": true,
872
+ "dependencies": {
873
+ "base64-js": "^1.3.0",
874
+ "ecdsa-sig-formatter": "^1.0.11",
875
+ "gaxios": "^6.1.1",
876
+ "gcp-metadata": "^6.1.0",
877
+ "gtoken": "^7.0.0",
878
+ "jws": "^4.0.0"
879
+ },
880
+ "engines": {
881
+ "node": ">=14"
882
+ }
883
+ },
884
+ "node_modules/@google-cloud/storage/node_modules/google-logging-utils": {
885
+ "version": "0.0.2",
886
+ "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz",
887
+ "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==",
888
+ "license": "Apache-2.0",
889
+ "optional": true,
890
+ "engines": {
891
+ "node": ">=14"
892
+ }
893
+ },
894
+ "node_modules/@grpc/grpc-js": {
895
+ "version": "1.14.4",
896
+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.14.4.tgz",
897
+ "integrity": "sha512-k9Dj3DV/itK9D06Y8f190Qgop7/Ui+D0njFV3LHMPwPT75DpXLQohE9Wmz0QElrJnzsjB7KPWiKJbOl7IPDArQ==",
898
+ "license": "Apache-2.0",
899
+ "optional": true,
900
+ "dependencies": {
901
+ "@grpc/proto-loader": "^0.8.0",
902
+ "@js-sdsl/ordered-map": "^4.4.2"
903
+ },
904
+ "engines": {
905
+ "node": ">=12.10.0"
906
+ }
907
+ },
908
+ "node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader": {
909
+ "version": "0.8.1",
910
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.8.1.tgz",
911
+ "integrity": "sha512-wtF6h+DY6M3YaDBPAmvuuA6jV8Sif9MjtOI5euKFWRgCDl5PeDpPsHR9u2l6St5ceY8AZgoNDww5+HvEsXFsGg==",
912
+ "license": "Apache-2.0",
913
+ "optional": true,
914
+ "dependencies": {
915
+ "lodash.camelcase": "^4.3.0",
916
+ "long": "^5.0.0",
917
+ "protobufjs": "^7.5.5",
918
+ "yargs": "^17.7.2"
919
+ },
920
+ "bin": {
921
+ "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
922
+ },
923
+ "engines": {
924
+ "node": ">=6"
925
+ }
926
+ },
927
+ "node_modules/@grpc/proto-loader": {
928
+ "version": "0.7.15",
929
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz",
930
+ "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==",
931
+ "license": "Apache-2.0",
932
+ "optional": true,
933
+ "dependencies": {
934
+ "lodash.camelcase": "^4.3.0",
935
+ "long": "^5.0.0",
936
+ "protobufjs": "^7.2.5",
937
+ "yargs": "^17.7.2"
938
+ },
939
+ "bin": {
940
+ "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
941
+ },
942
+ "engines": {
943
+ "node": ">=6"
944
+ }
945
+ },
946
+ "node_modules/@humanwhocodes/config-array": {
947
+ "version": "0.13.0",
948
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
949
+ "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
950
+ "deprecated": "Use @eslint/config-array instead",
951
+ "dev": true,
952
+ "license": "Apache-2.0",
953
+ "dependencies": {
954
+ "@humanwhocodes/object-schema": "^2.0.3",
955
+ "debug": "^4.3.1",
956
+ "minimatch": "^3.0.5"
957
+ },
958
+ "engines": {
959
+ "node": ">=10.10.0"
960
+ }
961
+ },
962
+ "node_modules/@humanwhocodes/module-importer": {
963
+ "version": "1.0.1",
964
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
965
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
966
+ "dev": true,
967
+ "license": "Apache-2.0",
968
+ "engines": {
969
+ "node": ">=12.22"
970
+ },
971
+ "funding": {
972
+ "type": "github",
973
+ "url": "https://github.com/sponsors/nzakas"
974
+ }
975
+ },
976
+ "node_modules/@humanwhocodes/object-schema": {
977
+ "version": "2.0.3",
978
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
979
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
980
+ "deprecated": "Use @eslint/object-schema instead",
981
+ "dev": true,
982
+ "license": "BSD-3-Clause"
983
+ },
984
+ "node_modules/@isaacs/cliui": {
985
+ "version": "8.0.2",
986
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
987
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
988
+ "dev": true,
989
+ "license": "ISC",
990
+ "peer": true,
991
+ "dependencies": {
992
+ "string-width": "^5.1.2",
993
+ "string-width-cjs": "npm:string-width@^4.2.0",
994
+ "strip-ansi": "^7.0.1",
995
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
996
+ "wrap-ansi": "^8.1.0",
997
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
998
+ },
999
+ "engines": {
1000
+ "node": ">=12"
1001
+ }
1002
+ },
1003
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
1004
+ "version": "6.3.0",
1005
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz",
1006
+ "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==",
1007
+ "dev": true,
1008
+ "license": "MIT",
1009
+ "peer": true,
1010
+ "engines": {
1011
+ "node": ">=12"
1012
+ },
1013
+ "funding": {
1014
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
1015
+ }
1016
+ },
1017
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
1018
+ "version": "7.2.0",
1019
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
1020
+ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
1021
+ "dev": true,
1022
+ "license": "MIT",
1023
+ "peer": true,
1024
+ "dependencies": {
1025
+ "ansi-regex": "^6.2.2"
1026
+ },
1027
+ "engines": {
1028
+ "node": ">=12"
1029
+ },
1030
+ "funding": {
1031
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
1032
+ }
1033
+ },
1034
+ "node_modules/@istanbuljs/load-nyc-config": {
1035
+ "version": "1.1.0",
1036
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
1037
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
1038
+ "dev": true,
1039
+ "license": "ISC",
1040
+ "peer": true,
1041
+ "dependencies": {
1042
+ "camelcase": "^5.3.1",
1043
+ "find-up": "^4.1.0",
1044
+ "get-package-type": "^0.1.0",
1045
+ "js-yaml": "^3.13.1",
1046
+ "resolve-from": "^5.0.0"
1047
+ },
1048
+ "engines": {
1049
+ "node": ">=8"
1050
+ }
1051
+ },
1052
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
1053
+ "version": "1.0.10",
1054
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
1055
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
1056
+ "dev": true,
1057
+ "license": "MIT",
1058
+ "peer": true,
1059
+ "dependencies": {
1060
+ "sprintf-js": "~1.0.2"
1061
+ }
1062
+ },
1063
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
1064
+ "version": "4.1.0",
1065
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
1066
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
1067
+ "dev": true,
1068
+ "license": "MIT",
1069
+ "peer": true,
1070
+ "dependencies": {
1071
+ "locate-path": "^5.0.0",
1072
+ "path-exists": "^4.0.0"
1073
+ },
1074
+ "engines": {
1075
+ "node": ">=8"
1076
+ }
1077
+ },
1078
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
1079
+ "version": "3.15.1",
1080
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.1.tgz",
1081
+ "integrity": "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==",
1082
+ "dev": true,
1083
+ "license": "MIT",
1084
+ "peer": true,
1085
+ "dependencies": {
1086
+ "argparse": "^1.0.7",
1087
+ "esprima": "^4.0.0"
1088
+ },
1089
+ "bin": {
1090
+ "js-yaml": "bin/js-yaml.js"
1091
+ }
1092
+ },
1093
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
1094
+ "version": "5.0.0",
1095
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
1096
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
1097
+ "dev": true,
1098
+ "license": "MIT",
1099
+ "peer": true,
1100
+ "dependencies": {
1101
+ "p-locate": "^4.1.0"
1102
+ },
1103
+ "engines": {
1104
+ "node": ">=8"
1105
+ }
1106
+ },
1107
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
1108
+ "version": "2.3.0",
1109
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
1110
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
1111
+ "dev": true,
1112
+ "license": "MIT",
1113
+ "peer": true,
1114
+ "dependencies": {
1115
+ "p-try": "^2.0.0"
1116
+ },
1117
+ "engines": {
1118
+ "node": ">=6"
1119
+ },
1120
+ "funding": {
1121
+ "url": "https://github.com/sponsors/sindresorhus"
1122
+ }
1123
+ },
1124
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
1125
+ "version": "4.1.0",
1126
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
1127
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
1128
+ "dev": true,
1129
+ "license": "MIT",
1130
+ "peer": true,
1131
+ "dependencies": {
1132
+ "p-limit": "^2.2.0"
1133
+ },
1134
+ "engines": {
1135
+ "node": ">=8"
1136
+ }
1137
+ },
1138
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
1139
+ "version": "5.0.0",
1140
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
1141
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
1142
+ "dev": true,
1143
+ "license": "MIT",
1144
+ "peer": true,
1145
+ "engines": {
1146
+ "node": ">=8"
1147
+ }
1148
+ },
1149
+ "node_modules/@istanbuljs/schema": {
1150
+ "version": "0.1.6",
1151
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz",
1152
+ "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==",
1153
+ "dev": true,
1154
+ "license": "MIT",
1155
+ "peer": true,
1156
+ "engines": {
1157
+ "node": ">=8"
1158
+ }
1159
+ },
1160
+ "node_modules/@jest/console": {
1161
+ "version": "30.4.1",
1162
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.4.1.tgz",
1163
+ "integrity": "sha512-v3bhyxUh9Hgmo5p6hAOXe14/R3ZxZDOsvHleh4B07z3m/x4/ngPUXEm9XwK4sF4u+f+P2ORb0Ge+MgpaqRMVDA==",
1164
+ "dev": true,
1165
+ "license": "MIT",
1166
+ "peer": true,
1167
+ "dependencies": {
1168
+ "@jest/types": "30.4.1",
1169
+ "@types/node": "*",
1170
+ "chalk": "^4.1.2",
1171
+ "jest-message-util": "30.4.1",
1172
+ "jest-util": "30.4.1",
1173
+ "slash": "^3.0.0"
1174
+ },
1175
+ "engines": {
1176
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1177
+ }
1178
+ },
1179
+ "node_modules/@jest/core": {
1180
+ "version": "30.4.2",
1181
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.4.2.tgz",
1182
+ "integrity": "sha512-TZJA6cPJUFxoWhxaLo8t0VX/MZX2wPWr0uIDvLSHIvN4gu9h02vSzqI2kBADG1ExqQlC+cY09xKMSreivvrChQ==",
1183
+ "dev": true,
1184
+ "license": "MIT",
1185
+ "peer": true,
1186
+ "dependencies": {
1187
+ "@jest/console": "30.4.1",
1188
+ "@jest/pattern": "30.4.0",
1189
+ "@jest/reporters": "30.4.1",
1190
+ "@jest/test-result": "30.4.1",
1191
+ "@jest/transform": "30.4.1",
1192
+ "@jest/types": "30.4.1",
1193
+ "@types/node": "*",
1194
+ "ansi-escapes": "^4.3.2",
1195
+ "chalk": "^4.1.2",
1196
+ "ci-info": "^4.2.0",
1197
+ "exit-x": "^0.2.2",
1198
+ "fast-json-stable-stringify": "^2.1.0",
1199
+ "graceful-fs": "^4.2.11",
1200
+ "jest-changed-files": "30.4.1",
1201
+ "jest-config": "30.4.2",
1202
+ "jest-haste-map": "30.4.1",
1203
+ "jest-message-util": "30.4.1",
1204
+ "jest-regex-util": "30.4.0",
1205
+ "jest-resolve": "30.4.1",
1206
+ "jest-resolve-dependencies": "30.4.2",
1207
+ "jest-runner": "30.4.2",
1208
+ "jest-runtime": "30.4.2",
1209
+ "jest-snapshot": "30.4.1",
1210
+ "jest-util": "30.4.1",
1211
+ "jest-validate": "30.4.1",
1212
+ "jest-watcher": "30.4.1",
1213
+ "pretty-format": "30.4.1",
1214
+ "slash": "^3.0.0"
1215
+ },
1216
+ "engines": {
1217
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1218
+ },
1219
+ "peerDependencies": {
1220
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
1221
+ },
1222
+ "peerDependenciesMeta": {
1223
+ "node-notifier": {
1224
+ "optional": true
1225
+ }
1226
+ }
1227
+ },
1228
+ "node_modules/@jest/diff-sequences": {
1229
+ "version": "30.4.0",
1230
+ "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.4.0.tgz",
1231
+ "integrity": "sha512-zOpzlfUs45l6u7jm39qr87JCHUDsaeCtvL+kQe/Vn9jSnRB4/5IPXISm0h9I1vZW/o00Kn4UTJ2MOlhnUGwv3g==",
1232
+ "dev": true,
1233
+ "license": "MIT",
1234
+ "peer": true,
1235
+ "engines": {
1236
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1237
+ }
1238
+ },
1239
+ "node_modules/@jest/environment": {
1240
+ "version": "30.4.1",
1241
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.4.1.tgz",
1242
+ "integrity": "sha512-AK9yNRqgKxiabqMoe4oW+3/TSSeV8vkdC7BGaxZdU0AFXfOpofTLqdru2GXKZghP3sdgwE9XXpnVwfZ8JnFV4w==",
1243
+ "dev": true,
1244
+ "license": "MIT",
1245
+ "peer": true,
1246
+ "dependencies": {
1247
+ "@jest/fake-timers": "30.4.1",
1248
+ "@jest/types": "30.4.1",
1249
+ "@types/node": "*",
1250
+ "jest-mock": "30.4.1"
1251
+ },
1252
+ "engines": {
1253
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1254
+ }
1255
+ },
1256
+ "node_modules/@jest/expect": {
1257
+ "version": "30.4.1",
1258
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.4.1.tgz",
1259
+ "integrity": "sha512-ginrj6TMgh2GshLUGCjO94Ptx9HhdZA/I6A9iUfyeLKFtdAjnKzHDgzgP9HYQgbxM1lbXScQ2eUBz2lGeVDPWA==",
1260
+ "dev": true,
1261
+ "license": "MIT",
1262
+ "peer": true,
1263
+ "dependencies": {
1264
+ "expect": "30.4.1",
1265
+ "jest-snapshot": "30.4.1"
1266
+ },
1267
+ "engines": {
1268
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1269
+ }
1270
+ },
1271
+ "node_modules/@jest/expect-utils": {
1272
+ "version": "30.4.1",
1273
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.4.1.tgz",
1274
+ "integrity": "sha512-ZBn5CglH8fBsQsvs4VWNzD4aWfUYks+IdOOQU3MEK71ol/BcVm+P+rtb1KpiFBpSWSCE27uOahyyf1vfqOVbcQ==",
1275
+ "dev": true,
1276
+ "license": "MIT",
1277
+ "peer": true,
1278
+ "dependencies": {
1279
+ "@jest/get-type": "30.1.0"
1280
+ },
1281
+ "engines": {
1282
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1283
+ }
1284
+ },
1285
+ "node_modules/@jest/fake-timers": {
1286
+ "version": "30.4.1",
1287
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.4.1.tgz",
1288
+ "integrity": "sha512-iW5umdmfPeWzehrVhugFQZqCchSCud5S1l2YT0O9ZhjRR0ExclANDZkiSBwzqtnlOn0J1JXvO+HZ6rkuyOVOgQ==",
1289
+ "dev": true,
1290
+ "license": "MIT",
1291
+ "peer": true,
1292
+ "dependencies": {
1293
+ "@jest/types": "30.4.1",
1294
+ "@sinonjs/fake-timers": "^15.4.0",
1295
+ "@types/node": "*",
1296
+ "jest-message-util": "30.4.1",
1297
+ "jest-mock": "30.4.1",
1298
+ "jest-util": "30.4.1"
1299
+ },
1300
+ "engines": {
1301
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1302
+ }
1303
+ },
1304
+ "node_modules/@jest/get-type": {
1305
+ "version": "30.1.0",
1306
+ "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz",
1307
+ "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==",
1308
+ "dev": true,
1309
+ "license": "MIT",
1310
+ "peer": true,
1311
+ "engines": {
1312
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1313
+ }
1314
+ },
1315
+ "node_modules/@jest/globals": {
1316
+ "version": "30.4.1",
1317
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.4.1.tgz",
1318
+ "integrity": "sha512-ZbuY4cmXC8DkxYjfvT2DbcHWL2T6vmsMhXCDcmTB2T0y0gaezBI77ufq5ZAIdcRkYZ7NEQEDg1xFeKbxUJ5v5Q==",
1319
+ "dev": true,
1320
+ "license": "MIT",
1321
+ "peer": true,
1322
+ "dependencies": {
1323
+ "@jest/environment": "30.4.1",
1324
+ "@jest/expect": "30.4.1",
1325
+ "@jest/types": "30.4.1",
1326
+ "jest-mock": "30.4.1"
1327
+ },
1328
+ "engines": {
1329
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1330
+ }
1331
+ },
1332
+ "node_modules/@jest/pattern": {
1333
+ "version": "30.4.0",
1334
+ "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.4.0.tgz",
1335
+ "integrity": "sha512-RAWn3+f9u8BsHijKJ71uHcFp6vmyEt6VvoWXkl6hKF3qVIuWNmudVjg12DlBPGup/frIl5UcUlH5HfEuvHpEXg==",
1336
+ "dev": true,
1337
+ "license": "MIT",
1338
+ "peer": true,
1339
+ "dependencies": {
1340
+ "@types/node": "*",
1341
+ "jest-regex-util": "30.4.0"
1342
+ },
1343
+ "engines": {
1344
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1345
+ }
1346
+ },
1347
+ "node_modules/@jest/reporters": {
1348
+ "version": "30.4.1",
1349
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.4.1.tgz",
1350
+ "integrity": "sha512-/SnkPCzEQpUaBH81kjdEdDdo2WZl5hxw+BmLDGWjRkm8o7XlhjwsU36cqwe5PGBE5WYpBvDzRSdXx9rbGuJtNA==",
1351
+ "dev": true,
1352
+ "license": "MIT",
1353
+ "peer": true,
1354
+ "dependencies": {
1355
+ "@bcoe/v8-coverage": "^0.2.3",
1356
+ "@jest/console": "30.4.1",
1357
+ "@jest/test-result": "30.4.1",
1358
+ "@jest/transform": "30.4.1",
1359
+ "@jest/types": "30.4.1",
1360
+ "@jridgewell/trace-mapping": "^0.3.25",
1361
+ "@types/node": "*",
1362
+ "chalk": "^4.1.2",
1363
+ "collect-v8-coverage": "^1.0.2",
1364
+ "exit-x": "^0.2.2",
1365
+ "glob": "^10.5.0",
1366
+ "graceful-fs": "^4.2.11",
1367
+ "istanbul-lib-coverage": "^3.0.0",
1368
+ "istanbul-lib-instrument": "^6.0.0",
1369
+ "istanbul-lib-report": "^3.0.0",
1370
+ "istanbul-lib-source-maps": "^5.0.0",
1371
+ "istanbul-reports": "^3.1.3",
1372
+ "jest-message-util": "30.4.1",
1373
+ "jest-util": "30.4.1",
1374
+ "jest-worker": "30.4.1",
1375
+ "slash": "^3.0.0",
1376
+ "string-length": "^4.0.2",
1377
+ "v8-to-istanbul": "^9.0.1"
1378
+ },
1379
+ "engines": {
1380
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1381
+ },
1382
+ "peerDependencies": {
1383
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
1384
+ },
1385
+ "peerDependenciesMeta": {
1386
+ "node-notifier": {
1387
+ "optional": true
1388
+ }
1389
+ }
1390
+ },
1391
+ "node_modules/@jest/schemas": {
1392
+ "version": "30.4.1",
1393
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.4.1.tgz",
1394
+ "integrity": "sha512-i6b4qw5qnP8c5FEeBJg/uZQ4ddrkN6Ca8qISJh0pr7a5hfn3h3v5x60BEbOC7OYAGZNMs1LfFLwnW2CuK8F57Q==",
1395
+ "dev": true,
1396
+ "license": "MIT",
1397
+ "peer": true,
1398
+ "dependencies": {
1399
+ "@sinclair/typebox": "^0.34.0"
1400
+ },
1401
+ "engines": {
1402
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1403
+ }
1404
+ },
1405
+ "node_modules/@jest/snapshot-utils": {
1406
+ "version": "30.4.1",
1407
+ "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.4.1.tgz",
1408
+ "integrity": "sha512-ObY4ljvQ95mt6iwKtVLetR/4yXiAgl3H4nJxhztr0MTjrN97TwDYrnCp/kF60Ec9HdhkWTHSu+Hg05aXfngpOA==",
1409
+ "dev": true,
1410
+ "license": "MIT",
1411
+ "peer": true,
1412
+ "dependencies": {
1413
+ "@jest/types": "30.4.1",
1414
+ "chalk": "^4.1.2",
1415
+ "graceful-fs": "^4.2.11",
1416
+ "natural-compare": "^1.4.0"
1417
+ },
1418
+ "engines": {
1419
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1420
+ }
1421
+ },
1422
+ "node_modules/@jest/source-map": {
1423
+ "version": "30.0.1",
1424
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz",
1425
+ "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==",
1426
+ "dev": true,
1427
+ "license": "MIT",
1428
+ "peer": true,
1429
+ "dependencies": {
1430
+ "@jridgewell/trace-mapping": "^0.3.25",
1431
+ "callsites": "^3.1.0",
1432
+ "graceful-fs": "^4.2.11"
1433
+ },
1434
+ "engines": {
1435
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1436
+ }
1437
+ },
1438
+ "node_modules/@jest/test-result": {
1439
+ "version": "30.4.1",
1440
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.4.1.tgz",
1441
+ "integrity": "sha512-/ZG7pgEiOmmWkN9TplKbOu4id2N5lh7FHwRwlkgBVAzGdRH+OkkQ8wX/kIxg4zmd3ZQvAL1RwL2yWsvNYYECTw==",
1442
+ "dev": true,
1443
+ "license": "MIT",
1444
+ "peer": true,
1445
+ "dependencies": {
1446
+ "@jest/console": "30.4.1",
1447
+ "@jest/types": "30.4.1",
1448
+ "@types/istanbul-lib-coverage": "^2.0.6",
1449
+ "collect-v8-coverage": "^1.0.2"
1450
+ },
1451
+ "engines": {
1452
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1453
+ }
1454
+ },
1455
+ "node_modules/@jest/test-sequencer": {
1456
+ "version": "30.4.1",
1457
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.4.1.tgz",
1458
+ "integrity": "sha512-PeYE+4td5rKjoRPxztObrXU+H8hsjZfxKMXOcmrr34JerSyB/ROOxbbicz8B7A5j9R9VayDnVPvBmedqCsFCdw==",
1459
+ "dev": true,
1460
+ "license": "MIT",
1461
+ "peer": true,
1462
+ "dependencies": {
1463
+ "@jest/test-result": "30.4.1",
1464
+ "graceful-fs": "^4.2.11",
1465
+ "jest-haste-map": "30.4.1",
1466
+ "slash": "^3.0.0"
1467
+ },
1468
+ "engines": {
1469
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1470
+ }
1471
+ },
1472
+ "node_modules/@jest/transform": {
1473
+ "version": "30.4.1",
1474
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.4.1.tgz",
1475
+ "integrity": "sha512-Wz0LyktlTvRefoymh+n64hQ84KNXsRGcwdoZ8CSa0Ea+fgYcHZlnk+hDP7v2MS7il2bQ5uTEIxf4/NNfhMN4KQ==",
1476
+ "dev": true,
1477
+ "license": "MIT",
1478
+ "peer": true,
1479
+ "dependencies": {
1480
+ "@babel/core": "^7.27.4",
1481
+ "@jest/types": "30.4.1",
1482
+ "@jridgewell/trace-mapping": "^0.3.25",
1483
+ "babel-plugin-istanbul": "^7.0.1",
1484
+ "chalk": "^4.1.2",
1485
+ "convert-source-map": "^2.0.0",
1486
+ "fast-json-stable-stringify": "^2.1.0",
1487
+ "graceful-fs": "^4.2.11",
1488
+ "jest-haste-map": "30.4.1",
1489
+ "jest-regex-util": "30.4.0",
1490
+ "jest-util": "30.4.1",
1491
+ "pirates": "^4.0.7",
1492
+ "slash": "^3.0.0",
1493
+ "write-file-atomic": "^5.0.1"
1494
+ },
1495
+ "engines": {
1496
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1497
+ }
1498
+ },
1499
+ "node_modules/@jest/types": {
1500
+ "version": "30.4.1",
1501
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.4.1.tgz",
1502
+ "integrity": "sha512-f1x/vJXIfjOlEmejYpbkbgw1gOqpPECwMvMEtBqe47j7H2Hg8h8w3o3ikhSXq3MI15kg+oQ0exWO0uCtTNJLoQ==",
1503
+ "dev": true,
1504
+ "license": "MIT",
1505
+ "peer": true,
1506
+ "dependencies": {
1507
+ "@jest/pattern": "30.4.0",
1508
+ "@jest/schemas": "30.4.1",
1509
+ "@types/istanbul-lib-coverage": "^2.0.6",
1510
+ "@types/istanbul-reports": "^3.0.4",
1511
+ "@types/node": "*",
1512
+ "@types/yargs": "^17.0.33",
1513
+ "chalk": "^4.1.2"
1514
+ },
1515
+ "engines": {
1516
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
1517
+ }
1518
+ },
1519
+ "node_modules/@jridgewell/gen-mapping": {
1520
+ "version": "0.3.13",
1521
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
1522
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
1523
+ "dev": true,
1524
+ "license": "MIT",
1525
+ "peer": true,
1526
+ "dependencies": {
1527
+ "@jridgewell/sourcemap-codec": "^1.5.0",
1528
+ "@jridgewell/trace-mapping": "^0.3.24"
1529
+ }
1530
+ },
1531
+ "node_modules/@jridgewell/remapping": {
1532
+ "version": "2.3.5",
1533
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
1534
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
1535
+ "dev": true,
1536
+ "license": "MIT",
1537
+ "peer": true,
1538
+ "dependencies": {
1539
+ "@jridgewell/gen-mapping": "^0.3.5",
1540
+ "@jridgewell/trace-mapping": "^0.3.24"
1541
+ }
1542
+ },
1543
+ "node_modules/@jridgewell/resolve-uri": {
1544
+ "version": "3.1.2",
1545
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
1546
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
1547
+ "dev": true,
1548
+ "license": "MIT",
1549
+ "peer": true,
1550
+ "engines": {
1551
+ "node": ">=6.0.0"
1552
+ }
1553
+ },
1554
+ "node_modules/@jridgewell/sourcemap-codec": {
1555
+ "version": "1.5.5",
1556
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
1557
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
1558
+ "dev": true,
1559
+ "license": "MIT",
1560
+ "peer": true
1561
+ },
1562
+ "node_modules/@jridgewell/trace-mapping": {
1563
+ "version": "0.3.31",
1564
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
1565
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
1566
+ "dev": true,
1567
+ "license": "MIT",
1568
+ "peer": true,
1569
+ "dependencies": {
1570
+ "@jridgewell/resolve-uri": "^3.1.0",
1571
+ "@jridgewell/sourcemap-codec": "^1.4.14"
1572
+ }
1573
+ },
1574
+ "node_modules/@js-sdsl/ordered-map": {
1575
+ "version": "4.4.2",
1576
+ "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz",
1577
+ "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==",
1578
+ "license": "MIT",
1579
+ "optional": true,
1580
+ "funding": {
1581
+ "type": "opencollective",
1582
+ "url": "https://opencollective.com/js-sdsl"
1583
+ }
1584
+ },
1585
+ "node_modules/@napi-rs/wasm-runtime": {
1586
+ "version": "1.2.3",
1587
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.3.tgz",
1588
+ "integrity": "sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q==",
1589
+ "dev": true,
1590
+ "license": "MIT",
1591
+ "optional": true,
1592
+ "peer": true,
1593
+ "dependencies": {
1594
+ "@tybys/wasm-util": "^0.10.3"
1595
+ },
1596
+ "engines": {
1597
+ "node": "^20.19.0 || ^22.13.0 || >=23.5.0"
1598
+ },
1599
+ "funding": {
1600
+ "type": "github",
1601
+ "url": "https://github.com/sponsors/Brooooooklyn"
1602
+ },
1603
+ "peerDependencies": {
1604
+ "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4",
1605
+ "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4"
1606
+ }
1607
+ },
1608
+ "node_modules/@nodable/entities": {
1609
+ "version": "3.0.0",
1610
+ "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-3.0.0.tgz",
1611
+ "integrity": "sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==",
1612
+ "funding": [
1613
+ {
1614
+ "type": "github",
1615
+ "url": "https://github.com/sponsors/nodable"
1616
+ }
1617
+ ],
1618
+ "license": "MIT",
1619
+ "optional": true
1620
+ },
1621
+ "node_modules/@nodelib/fs.scandir": {
1622
+ "version": "2.1.5",
1623
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
1624
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
1625
+ "dev": true,
1626
+ "license": "MIT",
1627
+ "dependencies": {
1628
+ "@nodelib/fs.stat": "2.0.5",
1629
+ "run-parallel": "^1.1.9"
1630
+ },
1631
+ "engines": {
1632
+ "node": ">= 8"
1633
+ }
1634
+ },
1635
+ "node_modules/@nodelib/fs.stat": {
1636
+ "version": "2.0.5",
1637
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
1638
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
1639
+ "dev": true,
1640
+ "license": "MIT",
1641
+ "engines": {
1642
+ "node": ">= 8"
1643
+ }
1644
+ },
1645
+ "node_modules/@nodelib/fs.walk": {
1646
+ "version": "1.2.8",
1647
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
1648
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
1649
+ "dev": true,
1650
+ "license": "MIT",
1651
+ "dependencies": {
1652
+ "@nodelib/fs.scandir": "2.1.5",
1653
+ "fastq": "^1.6.0"
1654
+ },
1655
+ "engines": {
1656
+ "node": ">= 8"
1657
+ }
1658
+ },
1659
+ "node_modules/@opentelemetry/api": {
1660
+ "version": "1.9.1",
1661
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz",
1662
+ "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==",
1663
+ "license": "Apache-2.0",
1664
+ "optional": true,
1665
+ "engines": {
1666
+ "node": ">=8.0.0"
1667
+ }
1668
+ },
1669
+ "node_modules/@pkgjs/parseargs": {
1670
+ "version": "0.11.0",
1671
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
1672
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
1673
+ "dev": true,
1674
+ "license": "MIT",
1675
+ "optional": true,
1676
+ "peer": true,
1677
+ "engines": {
1678
+ "node": ">=14"
1679
+ }
1680
+ },
1681
+ "node_modules/@pkgr/core": {
1682
+ "version": "0.3.6",
1683
+ "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.3.6.tgz",
1684
+ "integrity": "sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==",
1685
+ "dev": true,
1686
+ "license": "MIT",
1687
+ "peer": true,
1688
+ "engines": {
1689
+ "node": "^14.18.0 || >=16.0.0"
1690
+ },
1691
+ "funding": {
1692
+ "url": "https://opencollective.com/pkgr"
1693
+ }
1694
+ },
1695
+ "node_modules/@protobufjs/aspromise": {
1696
+ "version": "1.1.2",
1697
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
1698
+ "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
1699
+ "license": "BSD-3-Clause"
1700
+ },
1701
+ "node_modules/@protobufjs/base64": {
1702
+ "version": "1.1.2",
1703
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
1704
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
1705
+ "license": "BSD-3-Clause"
1706
+ },
1707
+ "node_modules/@protobufjs/codegen": {
1708
+ "version": "2.0.5",
1709
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.5.tgz",
1710
+ "integrity": "sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==",
1711
+ "license": "BSD-3-Clause"
1712
+ },
1713
+ "node_modules/@protobufjs/eventemitter": {
1714
+ "version": "1.1.1",
1715
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.1.tgz",
1716
+ "integrity": "sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==",
1717
+ "license": "BSD-3-Clause"
1718
+ },
1719
+ "node_modules/@protobufjs/fetch": {
1720
+ "version": "1.1.1",
1721
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.1.tgz",
1722
+ "integrity": "sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==",
1723
+ "license": "BSD-3-Clause",
1724
+ "dependencies": {
1725
+ "@protobufjs/aspromise": "^1.1.1"
1726
+ }
1727
+ },
1728
+ "node_modules/@protobufjs/float": {
1729
+ "version": "1.0.2",
1730
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
1731
+ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
1732
+ "license": "BSD-3-Clause"
1733
+ },
1734
+ "node_modules/@protobufjs/path": {
1735
+ "version": "1.1.2",
1736
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
1737
+ "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
1738
+ "license": "BSD-3-Clause"
1739
+ },
1740
+ "node_modules/@protobufjs/pool": {
1741
+ "version": "1.1.0",
1742
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
1743
+ "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
1744
+ "license": "BSD-3-Clause"
1745
+ },
1746
+ "node_modules/@protobufjs/utf8": {
1747
+ "version": "1.1.2",
1748
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.2.tgz",
1749
+ "integrity": "sha512-b1UQwcEZ4yCnMCD8DAL1VlbvBJE9/IX4FTIp7BG1xYpf29SLazLSrqUkj4w7Y5y7cCVP6E5tcqqcI0xemPkHug==",
1750
+ "license": "BSD-3-Clause"
1751
+ },
1752
+ "node_modules/@sinclair/typebox": {
1753
+ "version": "0.34.52",
1754
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.52.tgz",
1755
+ "integrity": "sha512-XiMQh7qqVlxZzcVD+kkGMNGMzcTrDMLWI7S4x7z1MkCkbDPrekpZXEUK0eZqZFMuHQg2a2DZOcDIh9o5v3Gonw==",
1756
+ "dev": true,
1757
+ "license": "MIT",
1758
+ "peer": true
1759
+ },
1760
+ "node_modules/@sinonjs/commons": {
1761
+ "version": "3.0.1",
1762
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
1763
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
1764
+ "dev": true,
1765
+ "license": "BSD-3-Clause",
1766
+ "peer": true,
1767
+ "dependencies": {
1768
+ "type-detect": "4.0.8"
1769
+ }
1770
+ },
1771
+ "node_modules/@sinonjs/fake-timers": {
1772
+ "version": "15.4.0",
1773
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.4.0.tgz",
1774
+ "integrity": "sha512-DsG+8/LscQIQg68J6Ef3dv10u6nVyetYn923s3/sus5eaGfTo1of5WMZSLf0UJc9KDuKPilPH0UDJCjvNbDNCA==",
1775
+ "dev": true,
1776
+ "license": "BSD-3-Clause",
1777
+ "peer": true,
1778
+ "dependencies": {
1779
+ "@sinonjs/commons": "^3.0.1"
1780
+ }
1781
+ },
1782
+ "node_modules/@tootallnate/once": {
1783
+ "version": "2.0.1",
1784
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.1.tgz",
1785
+ "integrity": "sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==",
1786
+ "license": "MIT",
1787
+ "optional": true,
1788
+ "engines": {
1789
+ "node": ">= 10"
1790
+ }
1791
+ },
1792
+ "node_modules/@tybys/wasm-util": {
1793
+ "version": "0.10.3",
1794
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz",
1795
+ "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==",
1796
+ "dev": true,
1797
+ "license": "MIT",
1798
+ "optional": true,
1799
+ "peer": true,
1800
+ "dependencies": {
1801
+ "tslib": "^2.4.0"
1802
+ }
1803
+ },
1804
+ "node_modules/@types/babel__core": {
1805
+ "version": "7.20.5",
1806
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
1807
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
1808
+ "dev": true,
1809
+ "license": "MIT",
1810
+ "peer": true,
1811
+ "dependencies": {
1812
+ "@babel/parser": "^7.20.7",
1813
+ "@babel/types": "^7.20.7",
1814
+ "@types/babel__generator": "*",
1815
+ "@types/babel__template": "*",
1816
+ "@types/babel__traverse": "*"
1817
+ }
1818
+ },
1819
+ "node_modules/@types/babel__generator": {
1820
+ "version": "7.27.0",
1821
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
1822
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
1823
+ "dev": true,
1824
+ "license": "MIT",
1825
+ "peer": true,
1826
+ "dependencies": {
1827
+ "@babel/types": "^7.0.0"
1828
+ }
1829
+ },
1830
+ "node_modules/@types/babel__template": {
1831
+ "version": "7.4.4",
1832
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
1833
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
1834
+ "dev": true,
1835
+ "license": "MIT",
1836
+ "peer": true,
1837
+ "dependencies": {
1838
+ "@babel/parser": "^7.1.0",
1839
+ "@babel/types": "^7.0.0"
1840
+ }
1841
+ },
1842
+ "node_modules/@types/babel__traverse": {
1843
+ "version": "7.28.0",
1844
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
1845
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
1846
+ "dev": true,
1847
+ "license": "MIT",
1848
+ "peer": true,
1849
+ "dependencies": {
1850
+ "@babel/types": "^7.28.2"
1851
+ }
1852
+ },
1853
+ "node_modules/@types/body-parser": {
1854
+ "version": "1.19.6",
1855
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz",
1856
+ "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==",
1857
+ "license": "MIT",
1858
+ "dependencies": {
1859
+ "@types/connect": "*",
1860
+ "@types/node": "*"
1861
+ }
1862
+ },
1863
+ "node_modules/@types/caseless": {
1864
+ "version": "0.12.5",
1865
+ "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz",
1866
+ "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==",
1867
+ "license": "MIT",
1868
+ "optional": true
1869
+ },
1870
+ "node_modules/@types/connect": {
1871
+ "version": "3.4.38",
1872
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
1873
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
1874
+ "license": "MIT",
1875
+ "dependencies": {
1876
+ "@types/node": "*"
1877
+ }
1878
+ },
1879
+ "node_modules/@types/cors": {
1880
+ "version": "2.8.19",
1881
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz",
1882
+ "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==",
1883
+ "license": "MIT",
1884
+ "dependencies": {
1885
+ "@types/node": "*"
1886
+ }
1887
+ },
1888
+ "node_modules/@types/express": {
1889
+ "version": "5.0.6",
1890
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz",
1891
+ "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==",
1892
+ "license": "MIT",
1893
+ "dependencies": {
1894
+ "@types/body-parser": "*",
1895
+ "@types/express-serve-static-core": "^5.0.0",
1896
+ "@types/serve-static": "^2"
1897
+ }
1898
+ },
1899
+ "node_modules/@types/express-serve-static-core": {
1900
+ "version": "5.1.3",
1901
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.3.tgz",
1902
+ "integrity": "sha512-dPfW8NFiOF4wOHc7+N/QSxlY9cfSsenewGbAz8C8U/MULPd/YZ27LvJUIlzaXie7e6Ove9YunJGgC9tbHD2cKw==",
1903
+ "license": "MIT",
1904
+ "dependencies": {
1905
+ "@types/node": "*",
1906
+ "@types/qs": "*",
1907
+ "@types/range-parser": "*",
1908
+ "@types/send": "*"
1909
+ }
1910
+ },
1911
+ "node_modules/@types/http-errors": {
1912
+ "version": "2.0.5",
1913
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz",
1914
+ "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==",
1915
+ "license": "MIT"
1916
+ },
1917
+ "node_modules/@types/istanbul-lib-coverage": {
1918
+ "version": "2.0.6",
1919
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
1920
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
1921
+ "dev": true,
1922
+ "license": "MIT",
1923
+ "peer": true
1924
+ },
1925
+ "node_modules/@types/istanbul-lib-report": {
1926
+ "version": "3.0.3",
1927
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
1928
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
1929
+ "dev": true,
1930
+ "license": "MIT",
1931
+ "peer": true,
1932
+ "dependencies": {
1933
+ "@types/istanbul-lib-coverage": "*"
1934
+ }
1935
+ },
1936
+ "node_modules/@types/istanbul-reports": {
1937
+ "version": "3.0.4",
1938
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
1939
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
1940
+ "dev": true,
1941
+ "license": "MIT",
1942
+ "peer": true,
1943
+ "dependencies": {
1944
+ "@types/istanbul-lib-report": "*"
1945
+ }
1946
+ },
1947
+ "node_modules/@types/jsonwebtoken": {
1948
+ "version": "9.0.10",
1949
+ "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz",
1950
+ "integrity": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==",
1951
+ "license": "MIT",
1952
+ "dependencies": {
1953
+ "@types/ms": "*",
1954
+ "@types/node": "*"
1955
+ }
1956
+ },
1957
+ "node_modules/@types/lodash": {
1958
+ "version": "4.17.25",
1959
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.25.tgz",
1960
+ "integrity": "sha512-+K1NIO8I+F9/wNulfVvu23QYd0Pe9/OCqRrim4NoYIf1VoEDL90Ve4ClzpyqBLc7NpGGWRvYNCKZ1BE/Jpf8dQ==",
1961
+ "dev": true,
1962
+ "license": "MIT"
1963
+ },
1964
+ "node_modules/@types/long": {
1965
+ "version": "4.0.2",
1966
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
1967
+ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==",
1968
+ "license": "MIT",
1969
+ "optional": true
1970
+ },
1971
+ "node_modules/@types/ms": {
1972
+ "version": "2.1.0",
1973
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
1974
+ "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
1975
+ "license": "MIT"
1976
+ },
1977
+ "node_modules/@types/node": {
1978
+ "version": "26.2.0",
1979
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-26.2.0.tgz",
1980
+ "integrity": "sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==",
1981
+ "license": "MIT",
1982
+ "dependencies": {
1983
+ "undici-types": "~8.3.0"
1984
+ }
1985
+ },
1986
+ "node_modules/@types/qs": {
1987
+ "version": "6.15.1",
1988
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz",
1989
+ "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==",
1990
+ "license": "MIT"
1991
+ },
1992
+ "node_modules/@types/range-parser": {
1993
+ "version": "1.2.7",
1994
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
1995
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
1996
+ "license": "MIT"
1997
+ },
1998
+ "node_modules/@types/request": {
1999
+ "version": "2.48.13",
2000
+ "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.13.tgz",
2001
+ "integrity": "sha512-FGJ6udDNUCjd19pp0Q3iTiDkwhYup7J8hpMW9c4k53NrccQFFWKRho6hvtPPEhnXWKvukfwAlB6DbDz4yhH5Gg==",
2002
+ "license": "MIT",
2003
+ "optional": true,
2004
+ "dependencies": {
2005
+ "@types/caseless": "*",
2006
+ "@types/node": "*",
2007
+ "@types/tough-cookie": "*",
2008
+ "form-data": "^2.5.5"
2009
+ }
2010
+ },
2011
+ "node_modules/@types/send": {
2012
+ "version": "1.2.1",
2013
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz",
2014
+ "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==",
2015
+ "license": "MIT",
2016
+ "dependencies": {
2017
+ "@types/node": "*"
2018
+ }
2019
+ },
2020
+ "node_modules/@types/serve-static": {
2021
+ "version": "2.2.0",
2022
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz",
2023
+ "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==",
2024
+ "license": "MIT",
2025
+ "dependencies": {
2026
+ "@types/http-errors": "*",
2027
+ "@types/node": "*"
2028
+ }
2029
+ },
2030
+ "node_modules/@types/stack-utils": {
2031
+ "version": "2.0.3",
2032
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
2033
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
2034
+ "dev": true,
2035
+ "license": "MIT",
2036
+ "peer": true
2037
+ },
2038
+ "node_modules/@types/tough-cookie": {
2039
+ "version": "4.0.5",
2040
+ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
2041
+ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
2042
+ "license": "MIT",
2043
+ "optional": true
2044
+ },
2045
+ "node_modules/@types/yargs": {
2046
+ "version": "17.0.35",
2047
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz",
2048
+ "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==",
2049
+ "dev": true,
2050
+ "license": "MIT",
2051
+ "peer": true,
2052
+ "dependencies": {
2053
+ "@types/yargs-parser": "*"
2054
+ }
2055
+ },
2056
+ "node_modules/@types/yargs-parser": {
2057
+ "version": "21.0.3",
2058
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
2059
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
2060
+ "dev": true,
2061
+ "license": "MIT",
2062
+ "peer": true
2063
+ },
2064
+ "node_modules/@ungap/structured-clone": {
2065
+ "version": "1.3.3",
2066
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.3.tgz",
2067
+ "integrity": "sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==",
2068
+ "dev": true,
2069
+ "license": "ISC"
2070
+ },
2071
+ "node_modules/@unrs/resolver-binding-android-arm-eabi": {
2072
+ "version": "1.12.2",
2073
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.2.tgz",
2074
+ "integrity": "sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==",
2075
+ "cpu": [
2076
+ "arm"
2077
+ ],
2078
+ "dev": true,
2079
+ "license": "MIT",
2080
+ "optional": true,
2081
+ "os": [
2082
+ "android"
2083
+ ],
2084
+ "peer": true
2085
+ },
2086
+ "node_modules/@unrs/resolver-binding-android-arm64": {
2087
+ "version": "1.12.2",
2088
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.2.tgz",
2089
+ "integrity": "sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==",
2090
+ "cpu": [
2091
+ "arm64"
2092
+ ],
2093
+ "dev": true,
2094
+ "license": "MIT",
2095
+ "optional": true,
2096
+ "os": [
2097
+ "android"
2098
+ ],
2099
+ "peer": true
2100
+ },
2101
+ "node_modules/@unrs/resolver-binding-darwin-arm64": {
2102
+ "version": "1.12.2",
2103
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.2.tgz",
2104
+ "integrity": "sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==",
2105
+ "cpu": [
2106
+ "arm64"
2107
+ ],
2108
+ "dev": true,
2109
+ "license": "MIT",
2110
+ "optional": true,
2111
+ "os": [
2112
+ "darwin"
2113
+ ],
2114
+ "peer": true
2115
+ },
2116
+ "node_modules/@unrs/resolver-binding-darwin-x64": {
2117
+ "version": "1.12.2",
2118
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.2.tgz",
2119
+ "integrity": "sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==",
2120
+ "cpu": [
2121
+ "x64"
2122
+ ],
2123
+ "dev": true,
2124
+ "license": "MIT",
2125
+ "optional": true,
2126
+ "os": [
2127
+ "darwin"
2128
+ ],
2129
+ "peer": true
2130
+ },
2131
+ "node_modules/@unrs/resolver-binding-freebsd-x64": {
2132
+ "version": "1.12.2",
2133
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.2.tgz",
2134
+ "integrity": "sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==",
2135
+ "cpu": [
2136
+ "x64"
2137
+ ],
2138
+ "dev": true,
2139
+ "license": "MIT",
2140
+ "optional": true,
2141
+ "os": [
2142
+ "freebsd"
2143
+ ],
2144
+ "peer": true
2145
+ },
2146
+ "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": {
2147
+ "version": "1.12.2",
2148
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.2.tgz",
2149
+ "integrity": "sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==",
2150
+ "cpu": [
2151
+ "arm"
2152
+ ],
2153
+ "dev": true,
2154
+ "license": "MIT",
2155
+ "optional": true,
2156
+ "os": [
2157
+ "linux"
2158
+ ],
2159
+ "peer": true
2160
+ },
2161
+ "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": {
2162
+ "version": "1.12.2",
2163
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.2.tgz",
2164
+ "integrity": "sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==",
2165
+ "cpu": [
2166
+ "arm"
2167
+ ],
2168
+ "dev": true,
2169
+ "license": "MIT",
2170
+ "optional": true,
2171
+ "os": [
2172
+ "linux"
2173
+ ],
2174
+ "peer": true
2175
+ },
2176
+ "node_modules/@unrs/resolver-binding-linux-arm64-gnu": {
2177
+ "version": "1.12.2",
2178
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.2.tgz",
2179
+ "integrity": "sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==",
2180
+ "cpu": [
2181
+ "arm64"
2182
+ ],
2183
+ "dev": true,
2184
+ "libc": [
2185
+ "glibc"
2186
+ ],
2187
+ "license": "MIT",
2188
+ "optional": true,
2189
+ "os": [
2190
+ "linux"
2191
+ ],
2192
+ "peer": true
2193
+ },
2194
+ "node_modules/@unrs/resolver-binding-linux-arm64-musl": {
2195
+ "version": "1.12.2",
2196
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.2.tgz",
2197
+ "integrity": "sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==",
2198
+ "cpu": [
2199
+ "arm64"
2200
+ ],
2201
+ "dev": true,
2202
+ "libc": [
2203
+ "musl"
2204
+ ],
2205
+ "license": "MIT",
2206
+ "optional": true,
2207
+ "os": [
2208
+ "linux"
2209
+ ],
2210
+ "peer": true
2211
+ },
2212
+ "node_modules/@unrs/resolver-binding-linux-loong64-gnu": {
2213
+ "version": "1.12.2",
2214
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-1.12.2.tgz",
2215
+ "integrity": "sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==",
2216
+ "cpu": [
2217
+ "loong64"
2218
+ ],
2219
+ "dev": true,
2220
+ "libc": [
2221
+ "glibc"
2222
+ ],
2223
+ "license": "MIT",
2224
+ "optional": true,
2225
+ "os": [
2226
+ "linux"
2227
+ ],
2228
+ "peer": true
2229
+ },
2230
+ "node_modules/@unrs/resolver-binding-linux-loong64-musl": {
2231
+ "version": "1.12.2",
2232
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-1.12.2.tgz",
2233
+ "integrity": "sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==",
2234
+ "cpu": [
2235
+ "loong64"
2236
+ ],
2237
+ "dev": true,
2238
+ "libc": [
2239
+ "musl"
2240
+ ],
2241
+ "license": "MIT",
2242
+ "optional": true,
2243
+ "os": [
2244
+ "linux"
2245
+ ],
2246
+ "peer": true
2247
+ },
2248
+ "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": {
2249
+ "version": "1.12.2",
2250
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.2.tgz",
2251
+ "integrity": "sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==",
2252
+ "cpu": [
2253
+ "ppc64"
2254
+ ],
2255
+ "dev": true,
2256
+ "libc": [
2257
+ "glibc"
2258
+ ],
2259
+ "license": "MIT",
2260
+ "optional": true,
2261
+ "os": [
2262
+ "linux"
2263
+ ],
2264
+ "peer": true
2265
+ },
2266
+ "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": {
2267
+ "version": "1.12.2",
2268
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.2.tgz",
2269
+ "integrity": "sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==",
2270
+ "cpu": [
2271
+ "riscv64"
2272
+ ],
2273
+ "dev": true,
2274
+ "libc": [
2275
+ "glibc"
2276
+ ],
2277
+ "license": "MIT",
2278
+ "optional": true,
2279
+ "os": [
2280
+ "linux"
2281
+ ],
2282
+ "peer": true
2283
+ },
2284
+ "node_modules/@unrs/resolver-binding-linux-riscv64-musl": {
2285
+ "version": "1.12.2",
2286
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.2.tgz",
2287
+ "integrity": "sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==",
2288
+ "cpu": [
2289
+ "riscv64"
2290
+ ],
2291
+ "dev": true,
2292
+ "libc": [
2293
+ "musl"
2294
+ ],
2295
+ "license": "MIT",
2296
+ "optional": true,
2297
+ "os": [
2298
+ "linux"
2299
+ ],
2300
+ "peer": true
2301
+ },
2302
+ "node_modules/@unrs/resolver-binding-linux-s390x-gnu": {
2303
+ "version": "1.12.2",
2304
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.2.tgz",
2305
+ "integrity": "sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==",
2306
+ "cpu": [
2307
+ "s390x"
2308
+ ],
2309
+ "dev": true,
2310
+ "libc": [
2311
+ "glibc"
2312
+ ],
2313
+ "license": "MIT",
2314
+ "optional": true,
2315
+ "os": [
2316
+ "linux"
2317
+ ],
2318
+ "peer": true
2319
+ },
2320
+ "node_modules/@unrs/resolver-binding-linux-x64-gnu": {
2321
+ "version": "1.12.2",
2322
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.2.tgz",
2323
+ "integrity": "sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==",
2324
+ "cpu": [
2325
+ "x64"
2326
+ ],
2327
+ "dev": true,
2328
+ "libc": [
2329
+ "glibc"
2330
+ ],
2331
+ "license": "MIT",
2332
+ "optional": true,
2333
+ "os": [
2334
+ "linux"
2335
+ ],
2336
+ "peer": true
2337
+ },
2338
+ "node_modules/@unrs/resolver-binding-linux-x64-musl": {
2339
+ "version": "1.12.2",
2340
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.2.tgz",
2341
+ "integrity": "sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==",
2342
+ "cpu": [
2343
+ "x64"
2344
+ ],
2345
+ "dev": true,
2346
+ "libc": [
2347
+ "musl"
2348
+ ],
2349
+ "license": "MIT",
2350
+ "optional": true,
2351
+ "os": [
2352
+ "linux"
2353
+ ],
2354
+ "peer": true
2355
+ },
2356
+ "node_modules/@unrs/resolver-binding-openharmony-arm64": {
2357
+ "version": "1.12.2",
2358
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.2.tgz",
2359
+ "integrity": "sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==",
2360
+ "cpu": [
2361
+ "arm64"
2362
+ ],
2363
+ "dev": true,
2364
+ "license": "MIT",
2365
+ "optional": true,
2366
+ "os": [
2367
+ "openharmony"
2368
+ ],
2369
+ "peer": true
2370
+ },
2371
+ "node_modules/@unrs/resolver-binding-wasm32-wasi": {
2372
+ "version": "1.12.2",
2373
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.2.tgz",
2374
+ "integrity": "sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==",
2375
+ "cpu": [
2376
+ "wasm32"
2377
+ ],
2378
+ "dev": true,
2379
+ "license": "MIT",
2380
+ "optional": true,
2381
+ "peer": true,
2382
+ "dependencies": {
2383
+ "@emnapi/core": "1.10.0",
2384
+ "@emnapi/runtime": "1.10.0",
2385
+ "@napi-rs/wasm-runtime": "^1.1.4"
2386
+ },
2387
+ "engines": {
2388
+ "node": ">=14.0.0"
2389
+ }
2390
+ },
2391
+ "node_modules/@unrs/resolver-binding-win32-arm64-msvc": {
2392
+ "version": "1.12.2",
2393
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz",
2394
+ "integrity": "sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==",
2395
+ "cpu": [
2396
+ "arm64"
2397
+ ],
2398
+ "dev": true,
2399
+ "license": "MIT",
2400
+ "optional": true,
2401
+ "os": [
2402
+ "win32"
2403
+ ],
2404
+ "peer": true
2405
+ },
2406
+ "node_modules/@unrs/resolver-binding-win32-ia32-msvc": {
2407
+ "version": "1.12.2",
2408
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.2.tgz",
2409
+ "integrity": "sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==",
2410
+ "cpu": [
2411
+ "ia32"
2412
+ ],
2413
+ "dev": true,
2414
+ "license": "MIT",
2415
+ "optional": true,
2416
+ "os": [
2417
+ "win32"
2418
+ ],
2419
+ "peer": true
2420
+ },
2421
+ "node_modules/@unrs/resolver-binding-win32-x64-msvc": {
2422
+ "version": "1.12.2",
2423
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.2.tgz",
2424
+ "integrity": "sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==",
2425
+ "cpu": [
2426
+ "x64"
2427
+ ],
2428
+ "dev": true,
2429
+ "license": "MIT",
2430
+ "optional": true,
2431
+ "os": [
2432
+ "win32"
2433
+ ],
2434
+ "peer": true
2435
+ },
2436
+ "node_modules/abort-controller": {
2437
+ "version": "3.0.0",
2438
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
2439
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
2440
+ "license": "MIT",
2441
+ "optional": true,
2442
+ "dependencies": {
2443
+ "event-target-shim": "^5.0.0"
2444
+ },
2445
+ "engines": {
2446
+ "node": ">=6.5"
2447
+ }
2448
+ },
2449
+ "node_modules/accepts": {
2450
+ "version": "2.0.0",
2451
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
2452
+ "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==",
2453
+ "license": "MIT",
2454
+ "dependencies": {
2455
+ "mime-types": "^3.0.0",
2456
+ "negotiator": "^1.0.0"
2457
+ },
2458
+ "engines": {
2459
+ "node": ">= 0.6"
2460
+ }
2461
+ },
2462
+ "node_modules/acorn": {
2463
+ "version": "8.18.0",
2464
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz",
2465
+ "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==",
2466
+ "dev": true,
2467
+ "license": "MIT",
2468
+ "bin": {
2469
+ "acorn": "bin/acorn"
2470
+ },
2471
+ "engines": {
2472
+ "node": ">=0.4.0"
2473
+ }
2474
+ },
2475
+ "node_modules/acorn-jsx": {
2476
+ "version": "5.3.2",
2477
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
2478
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
2479
+ "dev": true,
2480
+ "license": "MIT",
2481
+ "peerDependencies": {
2482
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
2483
+ }
2484
+ },
2485
+ "node_modules/agent-base": {
2486
+ "version": "7.1.4",
2487
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
2488
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
2489
+ "license": "MIT",
2490
+ "engines": {
2491
+ "node": ">= 14"
2492
+ }
2493
+ },
2494
+ "node_modules/ajv": {
2495
+ "version": "6.15.0",
2496
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz",
2497
+ "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==",
2498
+ "dev": true,
2499
+ "license": "MIT",
2500
+ "dependencies": {
2501
+ "fast-deep-equal": "^3.1.1",
2502
+ "fast-json-stable-stringify": "^2.0.0",
2503
+ "json-schema-traverse": "^0.4.1",
2504
+ "uri-js": "^4.2.2"
2505
+ },
2506
+ "funding": {
2507
+ "type": "github",
2508
+ "url": "https://github.com/sponsors/epoberezkin"
2509
+ }
2510
+ },
2511
+ "node_modules/ansi-escapes": {
2512
+ "version": "4.3.2",
2513
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
2514
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
2515
+ "dev": true,
2516
+ "license": "MIT",
2517
+ "peer": true,
2518
+ "dependencies": {
2519
+ "type-fest": "^0.21.3"
2520
+ },
2521
+ "engines": {
2522
+ "node": ">=8"
2523
+ },
2524
+ "funding": {
2525
+ "url": "https://github.com/sponsors/sindresorhus"
2526
+ }
2527
+ },
2528
+ "node_modules/ansi-escapes/node_modules/type-fest": {
2529
+ "version": "0.21.3",
2530
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
2531
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
2532
+ "dev": true,
2533
+ "license": "(MIT OR CC0-1.0)",
2534
+ "peer": true,
2535
+ "engines": {
2536
+ "node": ">=10"
2537
+ },
2538
+ "funding": {
2539
+ "url": "https://github.com/sponsors/sindresorhus"
2540
+ }
2541
+ },
2542
+ "node_modules/ansi-regex": {
2543
+ "version": "5.0.1",
2544
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
2545
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
2546
+ "devOptional": true,
2547
+ "license": "MIT",
2548
+ "engines": {
2549
+ "node": ">=8"
2550
+ }
2551
+ },
2552
+ "node_modules/ansi-styles": {
2553
+ "version": "4.3.0",
2554
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2555
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2556
+ "devOptional": true,
2557
+ "license": "MIT",
2558
+ "dependencies": {
2559
+ "color-convert": "^2.0.1"
2560
+ },
2561
+ "engines": {
2562
+ "node": ">=8"
2563
+ },
2564
+ "funding": {
2565
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2566
+ }
2567
+ },
2568
+ "node_modules/anymatch": {
2569
+ "version": "3.1.3",
2570
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
2571
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
2572
+ "dev": true,
2573
+ "license": "ISC",
2574
+ "peer": true,
2575
+ "dependencies": {
2576
+ "normalize-path": "^3.0.0",
2577
+ "picomatch": "^2.0.4"
2578
+ },
2579
+ "engines": {
2580
+ "node": ">= 8"
2581
+ }
2582
+ },
2583
+ "node_modules/anymatch/node_modules/picomatch": {
2584
+ "version": "2.3.2",
2585
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
2586
+ "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
2587
+ "dev": true,
2588
+ "license": "MIT",
2589
+ "peer": true,
2590
+ "engines": {
2591
+ "node": ">=8.6"
2592
+ },
2593
+ "funding": {
2594
+ "url": "https://github.com/sponsors/jonschlinkert"
2595
+ }
2596
+ },
2597
+ "node_modules/anynum": {
2598
+ "version": "1.0.1",
2599
+ "resolved": "https://registry.npmjs.org/anynum/-/anynum-1.0.1.tgz",
2600
+ "integrity": "sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A==",
2601
+ "funding": [
2602
+ {
2603
+ "type": "github",
2604
+ "url": "https://github.com/sponsors/NaturalIntelligence"
2605
+ }
2606
+ ],
2607
+ "license": "MIT",
2608
+ "optional": true
2609
+ },
2610
+ "node_modules/argparse": {
2611
+ "version": "2.0.1",
2612
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
2613
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
2614
+ "dev": true,
2615
+ "license": "Python-2.0"
2616
+ },
2617
+ "node_modules/arrify": {
2618
+ "version": "2.0.1",
2619
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
2620
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
2621
+ "license": "MIT",
2622
+ "optional": true,
2623
+ "engines": {
2624
+ "node": ">=8"
2625
+ }
2626
+ },
2627
+ "node_modules/async-retry": {
2628
+ "version": "1.3.3",
2629
+ "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz",
2630
+ "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==",
2631
+ "license": "MIT",
2632
+ "optional": true,
2633
+ "dependencies": {
2634
+ "retry": "0.13.1"
2635
+ }
2636
+ },
2637
+ "node_modules/asynckit": {
2638
+ "version": "0.4.0",
2639
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
2640
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
2641
+ "license": "MIT",
2642
+ "optional": true
2643
+ },
2644
+ "node_modules/babel-jest": {
2645
+ "version": "30.4.1",
2646
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.4.1.tgz",
2647
+ "integrity": "sha512-fATAbM8piYxkiXQp3RBXmZHxZVNJZAVXXfyeyCN2Tida3+qJ8ea9UxhiJ2y4fLO90ZImKt6k9FlcH2+rLkJGhw==",
2648
+ "dev": true,
2649
+ "license": "MIT",
2650
+ "peer": true,
2651
+ "dependencies": {
2652
+ "@jest/transform": "30.4.1",
2653
+ "@types/babel__core": "^7.20.5",
2654
+ "babel-plugin-istanbul": "^7.0.1",
2655
+ "babel-preset-jest": "30.4.0",
2656
+ "chalk": "^4.1.2",
2657
+ "graceful-fs": "^4.2.11",
2658
+ "slash": "^3.0.0"
2659
+ },
2660
+ "engines": {
2661
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
2662
+ },
2663
+ "peerDependencies": {
2664
+ "@babel/core": "^7.11.0 || ^8.0.0-0"
2665
+ }
2666
+ },
2667
+ "node_modules/babel-plugin-istanbul": {
2668
+ "version": "7.0.1",
2669
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz",
2670
+ "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==",
2671
+ "dev": true,
2672
+ "license": "BSD-3-Clause",
2673
+ "peer": true,
2674
+ "workspaces": [
2675
+ "test/babel-8"
2676
+ ],
2677
+ "dependencies": {
2678
+ "@babel/helper-plugin-utils": "^7.0.0",
2679
+ "@istanbuljs/load-nyc-config": "^1.0.0",
2680
+ "@istanbuljs/schema": "^0.1.3",
2681
+ "istanbul-lib-instrument": "^6.0.2",
2682
+ "test-exclude": "^6.0.0"
2683
+ },
2684
+ "engines": {
2685
+ "node": ">=12"
2686
+ }
2687
+ },
2688
+ "node_modules/babel-plugin-jest-hoist": {
2689
+ "version": "30.4.0",
2690
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.4.0.tgz",
2691
+ "integrity": "sha512-9EdtWM/sSfXLOGLwSn+GS6pIXyBnL07/8gyJlwFXjWy4DxMOyItqyUT29d4lQiS380EZwYlX7/At4PgBS+m2aA==",
2692
+ "dev": true,
2693
+ "license": "MIT",
2694
+ "peer": true,
2695
+ "dependencies": {
2696
+ "@types/babel__core": "^7.20.5"
2697
+ },
2698
+ "engines": {
2699
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
2700
+ }
2701
+ },
2702
+ "node_modules/babel-preset-current-node-syntax": {
2703
+ "version": "1.2.0",
2704
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz",
2705
+ "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==",
2706
+ "dev": true,
2707
+ "license": "MIT",
2708
+ "peer": true,
2709
+ "dependencies": {
2710
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
2711
+ "@babel/plugin-syntax-bigint": "^7.8.3",
2712
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
2713
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
2714
+ "@babel/plugin-syntax-import-attributes": "^7.24.7",
2715
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
2716
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
2717
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
2718
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
2719
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
2720
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
2721
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
2722
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
2723
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
2724
+ "@babel/plugin-syntax-top-level-await": "^7.14.5"
2725
+ },
2726
+ "peerDependencies": {
2727
+ "@babel/core": "^7.0.0 || ^8.0.0-0"
2728
+ }
2729
+ },
2730
+ "node_modules/babel-preset-jest": {
2731
+ "version": "30.4.0",
2732
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.4.0.tgz",
2733
+ "integrity": "sha512-lBY4jxsNmCnSiu7kquw8ZC9F4+XLMOKypT3RnNHPvU2Kpd4W0xaPuLr5ZkRyOsvLYAY4yaW1ZwTW4xB7NIiZzg==",
2734
+ "dev": true,
2735
+ "license": "MIT",
2736
+ "peer": true,
2737
+ "dependencies": {
2738
+ "babel-plugin-jest-hoist": "30.4.0",
2739
+ "babel-preset-current-node-syntax": "^1.2.0"
2740
+ },
2741
+ "engines": {
2742
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
2743
+ },
2744
+ "peerDependencies": {
2745
+ "@babel/core": "^7.11.0 || ^8.0.0-beta.1"
2746
+ }
2747
+ },
2748
+ "node_modules/balanced-match": {
2749
+ "version": "1.0.2",
2750
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
2751
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
2752
+ "dev": true,
2753
+ "license": "MIT"
2754
+ },
2755
+ "node_modules/base64-js": {
2756
+ "version": "1.5.1",
2757
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
2758
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
2759
+ "funding": [
2760
+ {
2761
+ "type": "github",
2762
+ "url": "https://github.com/sponsors/feross"
2763
+ },
2764
+ {
2765
+ "type": "patreon",
2766
+ "url": "https://www.patreon.com/feross"
2767
+ },
2768
+ {
2769
+ "type": "consulting",
2770
+ "url": "https://feross.org/support"
2771
+ }
2772
+ ],
2773
+ "license": "MIT"
2774
+ },
2775
+ "node_modules/baseline-browser-mapping": {
2776
+ "version": "2.11.14",
2777
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.14.tgz",
2778
+ "integrity": "sha512-JyJ954WzuIR8/FFzX0o5krdSTrBAkcCSRfWSleRsIHSWV+cZe2FI1PKggVkFke1hBldRs+LRxUczzE9iPmgZww==",
2779
+ "dev": true,
2780
+ "license": "Apache-2.0",
2781
+ "peer": true,
2782
+ "bin": {
2783
+ "baseline-browser-mapping": "dist/cli.cjs"
2784
+ },
2785
+ "engines": {
2786
+ "node": ">=6.0.0"
2787
+ }
2788
+ },
2789
+ "node_modules/bignumber.js": {
2790
+ "version": "9.3.1",
2791
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz",
2792
+ "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==",
2793
+ "license": "MIT",
2794
+ "engines": {
2795
+ "node": "*"
2796
+ }
2797
+ },
2798
+ "node_modules/body-parser": {
2799
+ "version": "2.3.0",
2800
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz",
2801
+ "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==",
2802
+ "license": "MIT",
2803
+ "dependencies": {
2804
+ "bytes": "^3.1.2",
2805
+ "content-type": "^2.0.0",
2806
+ "debug": "^4.4.3",
2807
+ "http-errors": "^2.0.1",
2808
+ "iconv-lite": "^0.7.2",
2809
+ "on-finished": "^2.4.1",
2810
+ "qs": "^6.15.2",
2811
+ "raw-body": "^3.0.2",
2812
+ "type-is": "^2.1.0"
2813
+ },
2814
+ "engines": {
2815
+ "node": ">=18"
2816
+ },
2817
+ "funding": {
2818
+ "type": "opencollective",
2819
+ "url": "https://opencollective.com/express"
2820
+ }
2821
+ },
2822
+ "node_modules/body-parser/node_modules/content-type": {
2823
+ "version": "2.1.0",
2824
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz",
2825
+ "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==",
2826
+ "license": "MIT",
2827
+ "engines": {
2828
+ "node": ">=18"
2829
+ },
2830
+ "funding": {
2831
+ "type": "opencollective",
2832
+ "url": "https://opencollective.com/express"
2833
+ }
2834
+ },
2835
+ "node_modules/brace-expansion": {
2836
+ "version": "1.1.18",
2837
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
2838
+ "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
2839
+ "dev": true,
2840
+ "license": "MIT",
2841
+ "dependencies": {
2842
+ "balanced-match": "^1.0.0",
2843
+ "concat-map": "0.0.1"
2844
+ }
2845
+ },
2846
+ "node_modules/browserslist": {
2847
+ "version": "4.28.8",
2848
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.8.tgz",
2849
+ "integrity": "sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==",
2850
+ "dev": true,
2851
+ "funding": [
2852
+ {
2853
+ "type": "opencollective",
2854
+ "url": "https://opencollective.com/browserslist"
2855
+ },
2856
+ {
2857
+ "type": "tidelift",
2858
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
2859
+ },
2860
+ {
2861
+ "type": "github",
2862
+ "url": "https://github.com/sponsors/ai"
2863
+ }
2864
+ ],
2865
+ "license": "MIT",
2866
+ "peer": true,
2867
+ "dependencies": {
2868
+ "baseline-browser-mapping": "^2.11.12",
2869
+ "caniuse-lite": "^1.0.30001809",
2870
+ "electron-to-chromium": "^1.5.402",
2871
+ "node-releases": "^2.0.53",
2872
+ "update-browserslist-db": "^1.3.0"
2873
+ },
2874
+ "bin": {
2875
+ "browserslist": "cli.js"
2876
+ },
2877
+ "engines": {
2878
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
2879
+ }
2880
+ },
2881
+ "node_modules/bser": {
2882
+ "version": "2.1.1",
2883
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
2884
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
2885
+ "dev": true,
2886
+ "license": "Apache-2.0",
2887
+ "peer": true,
2888
+ "dependencies": {
2889
+ "node-int64": "^0.4.0"
2890
+ }
2891
+ },
2892
+ "node_modules/buffer-equal-constant-time": {
2893
+ "version": "1.0.1",
2894
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
2895
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
2896
+ "license": "BSD-3-Clause"
2897
+ },
2898
+ "node_modules/buffer-from": {
2899
+ "version": "1.1.2",
2900
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
2901
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
2902
+ "dev": true,
2903
+ "license": "MIT",
2904
+ "peer": true
2905
+ },
2906
+ "node_modules/bytes": {
2907
+ "version": "3.1.2",
2908
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
2909
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
2910
+ "license": "MIT",
2911
+ "engines": {
2912
+ "node": ">= 0.8"
2913
+ }
2914
+ },
2915
+ "node_modules/call-bind-apply-helpers": {
2916
+ "version": "1.0.2",
2917
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
2918
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
2919
+ "license": "MIT",
2920
+ "dependencies": {
2921
+ "es-errors": "^1.3.0",
2922
+ "function-bind": "^1.1.2"
2923
+ },
2924
+ "engines": {
2925
+ "node": ">= 0.4"
2926
+ }
2927
+ },
2928
+ "node_modules/call-bound": {
2929
+ "version": "1.0.4",
2930
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
2931
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
2932
+ "license": "MIT",
2933
+ "dependencies": {
2934
+ "call-bind-apply-helpers": "^1.0.2",
2935
+ "get-intrinsic": "^1.3.0"
2936
+ },
2937
+ "engines": {
2938
+ "node": ">= 0.4"
2939
+ },
2940
+ "funding": {
2941
+ "url": "https://github.com/sponsors/ljharb"
2942
+ }
2943
+ },
2944
+ "node_modules/callsites": {
2945
+ "version": "3.1.0",
2946
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
2947
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
2948
+ "dev": true,
2949
+ "license": "MIT",
2950
+ "engines": {
2951
+ "node": ">=6"
2952
+ }
2953
+ },
2954
+ "node_modules/camelcase": {
2955
+ "version": "5.3.1",
2956
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
2957
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
2958
+ "dev": true,
2959
+ "license": "MIT",
2960
+ "peer": true,
2961
+ "engines": {
2962
+ "node": ">=6"
2963
+ }
2964
+ },
2965
+ "node_modules/caniuse-lite": {
2966
+ "version": "1.0.30001809",
2967
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001809.tgz",
2968
+ "integrity": "sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==",
2969
+ "dev": true,
2970
+ "funding": [
2971
+ {
2972
+ "type": "opencollective",
2973
+ "url": "https://opencollective.com/browserslist"
2974
+ },
2975
+ {
2976
+ "type": "tidelift",
2977
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
2978
+ },
2979
+ {
2980
+ "type": "github",
2981
+ "url": "https://github.com/sponsors/ai"
2982
+ }
2983
+ ],
2984
+ "license": "CC-BY-4.0",
2985
+ "peer": true
2986
+ },
2987
+ "node_modules/chalk": {
2988
+ "version": "4.1.2",
2989
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
2990
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
2991
+ "dev": true,
2992
+ "license": "MIT",
2993
+ "dependencies": {
2994
+ "ansi-styles": "^4.1.0",
2995
+ "supports-color": "^7.1.0"
2996
+ },
2997
+ "engines": {
2998
+ "node": ">=10"
2999
+ },
3000
+ "funding": {
3001
+ "url": "https://github.com/chalk/chalk?sponsor=1"
3002
+ }
3003
+ },
3004
+ "node_modules/char-regex": {
3005
+ "version": "1.0.2",
3006
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
3007
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
3008
+ "dev": true,
3009
+ "license": "MIT",
3010
+ "peer": true,
3011
+ "engines": {
3012
+ "node": ">=10"
3013
+ }
3014
+ },
3015
+ "node_modules/ci-info": {
3016
+ "version": "4.4.0",
3017
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz",
3018
+ "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==",
3019
+ "dev": true,
3020
+ "funding": [
3021
+ {
3022
+ "type": "github",
3023
+ "url": "https://github.com/sponsors/sibiraj-s"
3024
+ }
3025
+ ],
3026
+ "license": "MIT",
3027
+ "peer": true,
3028
+ "engines": {
3029
+ "node": ">=8"
3030
+ }
3031
+ },
3032
+ "node_modules/cjs-module-lexer": {
3033
+ "version": "2.2.1",
3034
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.1.tgz",
3035
+ "integrity": "sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==",
3036
+ "dev": true,
3037
+ "license": "MIT",
3038
+ "peer": true
3039
+ },
3040
+ "node_modules/cliui": {
3041
+ "version": "8.0.1",
3042
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
3043
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
3044
+ "devOptional": true,
3045
+ "license": "ISC",
3046
+ "dependencies": {
3047
+ "string-width": "^4.2.0",
3048
+ "strip-ansi": "^6.0.1",
3049
+ "wrap-ansi": "^7.0.0"
3050
+ },
3051
+ "engines": {
3052
+ "node": ">=12"
3053
+ }
3054
+ },
3055
+ "node_modules/cliui/node_modules/emoji-regex": {
3056
+ "version": "8.0.0",
3057
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
3058
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
3059
+ "devOptional": true,
3060
+ "license": "MIT"
3061
+ },
3062
+ "node_modules/cliui/node_modules/string-width": {
3063
+ "version": "4.2.3",
3064
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
3065
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
3066
+ "devOptional": true,
3067
+ "license": "MIT",
3068
+ "dependencies": {
3069
+ "emoji-regex": "^8.0.0",
3070
+ "is-fullwidth-code-point": "^3.0.0",
3071
+ "strip-ansi": "^6.0.1"
3072
+ },
3073
+ "engines": {
3074
+ "node": ">=8"
3075
+ }
3076
+ },
3077
+ "node_modules/cliui/node_modules/wrap-ansi": {
3078
+ "version": "7.0.0",
3079
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
3080
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
3081
+ "devOptional": true,
3082
+ "license": "MIT",
3083
+ "dependencies": {
3084
+ "ansi-styles": "^4.0.0",
3085
+ "string-width": "^4.1.0",
3086
+ "strip-ansi": "^6.0.0"
3087
+ },
3088
+ "engines": {
3089
+ "node": ">=10"
3090
+ },
3091
+ "funding": {
3092
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
3093
+ }
3094
+ },
3095
+ "node_modules/co": {
3096
+ "version": "4.6.0",
3097
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
3098
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
3099
+ "dev": true,
3100
+ "license": "MIT",
3101
+ "peer": true,
3102
+ "engines": {
3103
+ "iojs": ">= 1.0.0",
3104
+ "node": ">= 0.12.0"
3105
+ }
3106
+ },
3107
+ "node_modules/collect-v8-coverage": {
3108
+ "version": "1.0.3",
3109
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz",
3110
+ "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==",
3111
+ "dev": true,
3112
+ "license": "MIT",
3113
+ "peer": true
3114
+ },
3115
+ "node_modules/color-convert": {
3116
+ "version": "2.0.1",
3117
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3118
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3119
+ "devOptional": true,
3120
+ "license": "MIT",
3121
+ "dependencies": {
3122
+ "color-name": "~1.1.4"
3123
+ },
3124
+ "engines": {
3125
+ "node": ">=7.0.0"
3126
+ }
3127
+ },
3128
+ "node_modules/color-name": {
3129
+ "version": "1.1.4",
3130
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3131
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
3132
+ "devOptional": true,
3133
+ "license": "MIT"
3134
+ },
3135
+ "node_modules/combined-stream": {
3136
+ "version": "1.0.8",
3137
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
3138
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
3139
+ "license": "MIT",
3140
+ "optional": true,
3141
+ "dependencies": {
3142
+ "delayed-stream": "~1.0.0"
3143
+ },
3144
+ "engines": {
3145
+ "node": ">= 0.8"
3146
+ }
3147
+ },
3148
+ "node_modules/concat-map": {
3149
+ "version": "0.0.1",
3150
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
3151
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
3152
+ "dev": true,
3153
+ "license": "MIT"
3154
+ },
3155
+ "node_modules/content-disposition": {
3156
+ "version": "1.1.0",
3157
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz",
3158
+ "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==",
3159
+ "license": "MIT",
3160
+ "engines": {
3161
+ "node": ">=18"
3162
+ },
3163
+ "funding": {
3164
+ "type": "opencollective",
3165
+ "url": "https://opencollective.com/express"
3166
+ }
3167
+ },
3168
+ "node_modules/content-type": {
3169
+ "version": "1.0.5",
3170
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
3171
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
3172
+ "license": "MIT",
3173
+ "engines": {
3174
+ "node": ">= 0.6"
3175
+ }
3176
+ },
3177
+ "node_modules/convert-source-map": {
3178
+ "version": "2.0.0",
3179
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
3180
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
3181
+ "dev": true,
3182
+ "license": "MIT",
3183
+ "peer": true
3184
+ },
3185
+ "node_modules/cookie": {
3186
+ "version": "0.7.2",
3187
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
3188
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
3189
+ "license": "MIT",
3190
+ "engines": {
3191
+ "node": ">= 0.6"
3192
+ }
3193
+ },
3194
+ "node_modules/cookie-signature": {
3195
+ "version": "1.2.2",
3196
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz",
3197
+ "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==",
3198
+ "license": "MIT",
3199
+ "engines": {
3200
+ "node": ">=6.6.0"
3201
+ }
3202
+ },
3203
+ "node_modules/cors": {
3204
+ "version": "2.8.6",
3205
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
3206
+ "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==",
3207
+ "license": "MIT",
3208
+ "dependencies": {
3209
+ "object-assign": "^4",
3210
+ "vary": "^1"
3211
+ },
3212
+ "engines": {
3213
+ "node": ">= 0.10"
3214
+ },
3215
+ "funding": {
3216
+ "type": "opencollective",
3217
+ "url": "https://opencollective.com/express"
3218
+ }
3219
+ },
3220
+ "node_modules/cross-spawn": {
3221
+ "version": "7.0.6",
3222
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
3223
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
3224
+ "dev": true,
3225
+ "license": "MIT",
3226
+ "dependencies": {
3227
+ "path-key": "^3.1.0",
3228
+ "shebang-command": "^2.0.0",
3229
+ "which": "^2.0.1"
3230
+ },
3231
+ "engines": {
3232
+ "node": ">= 8"
3233
+ }
3234
+ },
3235
+ "node_modules/data-uri-to-buffer": {
3236
+ "version": "4.0.1",
3237
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
3238
+ "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
3239
+ "license": "MIT",
3240
+ "engines": {
3241
+ "node": ">= 12"
3242
+ }
3243
+ },
3244
+ "node_modules/debug": {
3245
+ "version": "4.4.3",
3246
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
3247
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
3248
+ "license": "MIT",
3249
+ "dependencies": {
3250
+ "ms": "^2.1.3"
3251
+ },
3252
+ "engines": {
3253
+ "node": ">=6.0"
3254
+ },
3255
+ "peerDependenciesMeta": {
3256
+ "supports-color": {
3257
+ "optional": true
3258
+ }
3259
+ }
3260
+ },
3261
+ "node_modules/dedent": {
3262
+ "version": "1.7.2",
3263
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz",
3264
+ "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==",
3265
+ "dev": true,
3266
+ "license": "MIT",
3267
+ "peer": true,
3268
+ "peerDependencies": {
3269
+ "babel-plugin-macros": "^3.1.0"
3270
+ },
3271
+ "peerDependenciesMeta": {
3272
+ "babel-plugin-macros": {
3273
+ "optional": true
3274
+ }
3275
+ }
3276
+ },
3277
+ "node_modules/deep-is": {
3278
+ "version": "0.1.4",
3279
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
3280
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
3281
+ "dev": true,
3282
+ "license": "MIT"
3283
+ },
3284
+ "node_modules/deepmerge": {
3285
+ "version": "4.3.1",
3286
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
3287
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
3288
+ "dev": true,
3289
+ "license": "MIT",
3290
+ "peer": true,
3291
+ "engines": {
3292
+ "node": ">=0.10.0"
3293
+ }
3294
+ },
3295
+ "node_modules/delayed-stream": {
3296
+ "version": "1.0.0",
3297
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
3298
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
3299
+ "license": "MIT",
3300
+ "optional": true,
3301
+ "engines": {
3302
+ "node": ">=0.4.0"
3303
+ }
3304
+ },
3305
+ "node_modules/depd": {
3306
+ "version": "2.0.0",
3307
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
3308
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
3309
+ "license": "MIT",
3310
+ "engines": {
3311
+ "node": ">= 0.8"
3312
+ }
3313
+ },
3314
+ "node_modules/detect-newline": {
3315
+ "version": "3.1.0",
3316
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
3317
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
3318
+ "dev": true,
3319
+ "license": "MIT",
3320
+ "peer": true,
3321
+ "engines": {
3322
+ "node": ">=8"
3323
+ }
3324
+ },
3325
+ "node_modules/doctrine": {
3326
+ "version": "3.0.0",
3327
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
3328
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
3329
+ "dev": true,
3330
+ "license": "Apache-2.0",
3331
+ "dependencies": {
3332
+ "esutils": "^2.0.2"
3333
+ },
3334
+ "engines": {
3335
+ "node": ">=6.0.0"
3336
+ }
3337
+ },
3338
+ "node_modules/dunder-proto": {
3339
+ "version": "1.0.1",
3340
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
3341
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
3342
+ "license": "MIT",
3343
+ "dependencies": {
3344
+ "call-bind-apply-helpers": "^1.0.1",
3345
+ "es-errors": "^1.3.0",
3346
+ "gopd": "^1.2.0"
3347
+ },
3348
+ "engines": {
3349
+ "node": ">= 0.4"
3350
+ }
3351
+ },
3352
+ "node_modules/duplexify": {
3353
+ "version": "4.1.3",
3354
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz",
3355
+ "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==",
3356
+ "license": "MIT",
3357
+ "optional": true,
3358
+ "dependencies": {
3359
+ "end-of-stream": "^1.4.1",
3360
+ "inherits": "^2.0.3",
3361
+ "readable-stream": "^3.1.1",
3362
+ "stream-shift": "^1.0.2"
3363
+ }
3364
+ },
3365
+ "node_modules/eastasianwidth": {
3366
+ "version": "0.2.0",
3367
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
3368
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
3369
+ "dev": true,
3370
+ "license": "MIT",
3371
+ "peer": true
3372
+ },
3373
+ "node_modules/ecdsa-sig-formatter": {
3374
+ "version": "1.0.11",
3375
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
3376
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
3377
+ "license": "Apache-2.0",
3378
+ "dependencies": {
3379
+ "safe-buffer": "^5.0.1"
3380
+ }
3381
+ },
3382
+ "node_modules/ee-first": {
3383
+ "version": "1.1.1",
3384
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
3385
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
3386
+ "license": "MIT"
3387
+ },
3388
+ "node_modules/electron-to-chromium": {
3389
+ "version": "1.5.407",
3390
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.407.tgz",
3391
+ "integrity": "sha512-4R8XgQOdfxexCd/u63lRm6wCHjECwI45MV9wxAs2ggtfWe2hwlo1ql97jKsju2IcJ+jFSTwBssyYoiWhh7mauQ==",
3392
+ "dev": true,
3393
+ "license": "ISC",
3394
+ "peer": true
3395
+ },
3396
+ "node_modules/emittery": {
3397
+ "version": "0.13.1",
3398
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
3399
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
3400
+ "dev": true,
3401
+ "license": "MIT",
3402
+ "peer": true,
3403
+ "engines": {
3404
+ "node": ">=12"
3405
+ },
3406
+ "funding": {
3407
+ "url": "https://github.com/sindresorhus/emittery?sponsor=1"
3408
+ }
3409
+ },
3410
+ "node_modules/emoji-regex": {
3411
+ "version": "9.2.2",
3412
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
3413
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
3414
+ "dev": true,
3415
+ "license": "MIT",
3416
+ "peer": true
3417
+ },
3418
+ "node_modules/encodeurl": {
3419
+ "version": "2.0.0",
3420
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
3421
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
3422
+ "license": "MIT",
3423
+ "engines": {
3424
+ "node": ">= 0.8"
3425
+ }
3426
+ },
3427
+ "node_modules/end-of-stream": {
3428
+ "version": "1.4.5",
3429
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
3430
+ "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
3431
+ "license": "MIT",
3432
+ "optional": true,
3433
+ "dependencies": {
3434
+ "once": "^1.4.0"
3435
+ }
3436
+ },
3437
+ "node_modules/error-ex": {
3438
+ "version": "1.3.4",
3439
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
3440
+ "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==",
3441
+ "dev": true,
3442
+ "license": "MIT",
3443
+ "peer": true,
3444
+ "dependencies": {
3445
+ "is-arrayish": "^0.2.1"
3446
+ }
3447
+ },
3448
+ "node_modules/es-define-property": {
3449
+ "version": "1.0.1",
3450
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
3451
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
3452
+ "license": "MIT",
3453
+ "engines": {
3454
+ "node": ">= 0.4"
3455
+ }
3456
+ },
3457
+ "node_modules/es-errors": {
3458
+ "version": "1.3.0",
3459
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
3460
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
3461
+ "license": "MIT",
3462
+ "engines": {
3463
+ "node": ">= 0.4"
3464
+ }
3465
+ },
3466
+ "node_modules/es-object-atoms": {
3467
+ "version": "1.1.2",
3468
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz",
3469
+ "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==",
3470
+ "license": "MIT",
3471
+ "dependencies": {
3472
+ "es-errors": "^1.3.0"
3473
+ },
3474
+ "engines": {
3475
+ "node": ">= 0.4"
3476
+ }
3477
+ },
3478
+ "node_modules/es-set-tostringtag": {
3479
+ "version": "2.1.0",
3480
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
3481
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
3482
+ "license": "MIT",
3483
+ "optional": true,
3484
+ "dependencies": {
3485
+ "es-errors": "^1.3.0",
3486
+ "get-intrinsic": "^1.2.6",
3487
+ "has-tostringtag": "^1.0.2",
3488
+ "hasown": "^2.0.2"
3489
+ },
3490
+ "engines": {
3491
+ "node": ">= 0.4"
3492
+ }
3493
+ },
3494
+ "node_modules/escalade": {
3495
+ "version": "3.2.0",
3496
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
3497
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
3498
+ "devOptional": true,
3499
+ "license": "MIT",
3500
+ "engines": {
3501
+ "node": ">=6"
3502
+ }
3503
+ },
3504
+ "node_modules/escape-html": {
3505
+ "version": "1.0.3",
3506
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
3507
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
3508
+ "license": "MIT"
3509
+ },
3510
+ "node_modules/escape-string-regexp": {
3511
+ "version": "4.0.0",
3512
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
3513
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
3514
+ "dev": true,
3515
+ "license": "MIT",
3516
+ "engines": {
3517
+ "node": ">=10"
3518
+ },
3519
+ "funding": {
3520
+ "url": "https://github.com/sponsors/sindresorhus"
3521
+ }
3522
+ },
3523
+ "node_modules/eslint": {
3524
+ "version": "8.57.1",
3525
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
3526
+ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
3527
+ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
3528
+ "dev": true,
3529
+ "license": "MIT",
3530
+ "dependencies": {
3531
+ "@eslint-community/eslint-utils": "^4.2.0",
3532
+ "@eslint-community/regexpp": "^4.6.1",
3533
+ "@eslint/eslintrc": "^2.1.4",
3534
+ "@eslint/js": "8.57.1",
3535
+ "@humanwhocodes/config-array": "^0.13.0",
3536
+ "@humanwhocodes/module-importer": "^1.0.1",
3537
+ "@nodelib/fs.walk": "^1.2.8",
3538
+ "@ungap/structured-clone": "^1.2.0",
3539
+ "ajv": "^6.12.4",
3540
+ "chalk": "^4.0.0",
3541
+ "cross-spawn": "^7.0.2",
3542
+ "debug": "^4.3.2",
3543
+ "doctrine": "^3.0.0",
3544
+ "escape-string-regexp": "^4.0.0",
3545
+ "eslint-scope": "^7.2.2",
3546
+ "eslint-visitor-keys": "^3.4.3",
3547
+ "espree": "^9.6.1",
3548
+ "esquery": "^1.4.2",
3549
+ "esutils": "^2.0.2",
3550
+ "fast-deep-equal": "^3.1.3",
3551
+ "file-entry-cache": "^6.0.1",
3552
+ "find-up": "^5.0.0",
3553
+ "glob-parent": "^6.0.2",
3554
+ "globals": "^13.19.0",
3555
+ "graphemer": "^1.4.0",
3556
+ "ignore": "^5.2.0",
3557
+ "imurmurhash": "^0.1.4",
3558
+ "is-glob": "^4.0.0",
3559
+ "is-path-inside": "^3.0.3",
3560
+ "js-yaml": "^4.1.0",
3561
+ "json-stable-stringify-without-jsonify": "^1.0.1",
3562
+ "levn": "^0.4.1",
3563
+ "lodash.merge": "^4.6.2",
3564
+ "minimatch": "^3.1.2",
3565
+ "natural-compare": "^1.4.0",
3566
+ "optionator": "^0.9.3",
3567
+ "strip-ansi": "^6.0.1",
3568
+ "text-table": "^0.2.0"
3569
+ },
3570
+ "bin": {
3571
+ "eslint": "bin/eslint.js"
3572
+ },
3573
+ "engines": {
3574
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
3575
+ },
3576
+ "funding": {
3577
+ "url": "https://opencollective.com/eslint"
3578
+ }
3579
+ },
3580
+ "node_modules/eslint-config-google": {
3581
+ "version": "0.14.0",
3582
+ "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz",
3583
+ "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==",
3584
+ "dev": true,
3585
+ "license": "Apache-2.0",
3586
+ "engines": {
3587
+ "node": ">=0.10.0"
3588
+ },
3589
+ "peerDependencies": {
3590
+ "eslint": ">=5.16.0"
3591
+ }
3592
+ },
3593
+ "node_modules/eslint-scope": {
3594
+ "version": "7.2.2",
3595
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
3596
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
3597
+ "dev": true,
3598
+ "license": "BSD-2-Clause",
3599
+ "dependencies": {
3600
+ "esrecurse": "^4.3.0",
3601
+ "estraverse": "^5.2.0"
3602
+ },
3603
+ "engines": {
3604
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
3605
+ },
3606
+ "funding": {
3607
+ "url": "https://opencollective.com/eslint"
3608
+ }
3609
+ },
3610
+ "node_modules/eslint-visitor-keys": {
3611
+ "version": "3.4.3",
3612
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
3613
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
3614
+ "dev": true,
3615
+ "license": "Apache-2.0",
3616
+ "engines": {
3617
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
3618
+ },
3619
+ "funding": {
3620
+ "url": "https://opencollective.com/eslint"
3621
+ }
3622
+ },
3623
+ "node_modules/espree": {
3624
+ "version": "9.6.1",
3625
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
3626
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
3627
+ "dev": true,
3628
+ "license": "BSD-2-Clause",
3629
+ "dependencies": {
3630
+ "acorn": "^8.9.0",
3631
+ "acorn-jsx": "^5.3.2",
3632
+ "eslint-visitor-keys": "^3.4.1"
3633
+ },
3634
+ "engines": {
3635
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
3636
+ },
3637
+ "funding": {
3638
+ "url": "https://opencollective.com/eslint"
3639
+ }
3640
+ },
3641
+ "node_modules/esprima": {
3642
+ "version": "4.0.1",
3643
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
3644
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
3645
+ "dev": true,
3646
+ "license": "BSD-2-Clause",
3647
+ "peer": true,
3648
+ "bin": {
3649
+ "esparse": "bin/esparse.js",
3650
+ "esvalidate": "bin/esvalidate.js"
3651
+ },
3652
+ "engines": {
3653
+ "node": ">=4"
3654
+ }
3655
+ },
3656
+ "node_modules/esquery": {
3657
+ "version": "1.7.0",
3658
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",
3659
+ "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
3660
+ "dev": true,
3661
+ "license": "BSD-3-Clause",
3662
+ "dependencies": {
3663
+ "estraverse": "^5.1.0"
3664
+ },
3665
+ "engines": {
3666
+ "node": ">=0.10"
3667
+ }
3668
+ },
3669
+ "node_modules/esrecurse": {
3670
+ "version": "4.3.0",
3671
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
3672
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
3673
+ "dev": true,
3674
+ "license": "BSD-2-Clause",
3675
+ "dependencies": {
3676
+ "estraverse": "^5.2.0"
3677
+ },
3678
+ "engines": {
3679
+ "node": ">=4.0"
3680
+ }
3681
+ },
3682
+ "node_modules/estraverse": {
3683
+ "version": "5.3.0",
3684
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
3685
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
3686
+ "dev": true,
3687
+ "license": "BSD-2-Clause",
3688
+ "engines": {
3689
+ "node": ">=4.0"
3690
+ }
3691
+ },
3692
+ "node_modules/esutils": {
3693
+ "version": "2.0.3",
3694
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
3695
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
3696
+ "dev": true,
3697
+ "license": "BSD-2-Clause",
3698
+ "engines": {
3699
+ "node": ">=0.10.0"
3700
+ }
3701
+ },
3702
+ "node_modules/etag": {
3703
+ "version": "1.8.1",
3704
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
3705
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
3706
+ "license": "MIT",
3707
+ "engines": {
3708
+ "node": ">= 0.6"
3709
+ }
3710
+ },
3711
+ "node_modules/event-target-shim": {
3712
+ "version": "5.0.1",
3713
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
3714
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
3715
+ "license": "MIT",
3716
+ "optional": true,
3717
+ "engines": {
3718
+ "node": ">=6"
3719
+ }
3720
+ },
3721
+ "node_modules/execa": {
3722
+ "version": "5.1.1",
3723
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
3724
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
3725
+ "dev": true,
3726
+ "license": "MIT",
3727
+ "peer": true,
3728
+ "dependencies": {
3729
+ "cross-spawn": "^7.0.3",
3730
+ "get-stream": "^6.0.0",
3731
+ "human-signals": "^2.1.0",
3732
+ "is-stream": "^2.0.0",
3733
+ "merge-stream": "^2.0.0",
3734
+ "npm-run-path": "^4.0.1",
3735
+ "onetime": "^5.1.2",
3736
+ "signal-exit": "^3.0.3",
3737
+ "strip-final-newline": "^2.0.0"
3738
+ },
3739
+ "engines": {
3740
+ "node": ">=10"
3741
+ },
3742
+ "funding": {
3743
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
3744
+ }
3745
+ },
3746
+ "node_modules/execa/node_modules/signal-exit": {
3747
+ "version": "3.0.7",
3748
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
3749
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
3750
+ "dev": true,
3751
+ "license": "ISC",
3752
+ "peer": true
3753
+ },
3754
+ "node_modules/exit-x": {
3755
+ "version": "0.2.2",
3756
+ "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz",
3757
+ "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==",
3758
+ "dev": true,
3759
+ "license": "MIT",
3760
+ "peer": true,
3761
+ "engines": {
3762
+ "node": ">= 0.8.0"
3763
+ }
3764
+ },
3765
+ "node_modules/expect": {
3766
+ "version": "30.4.1",
3767
+ "resolved": "https://registry.npmjs.org/expect/-/expect-30.4.1.tgz",
3768
+ "integrity": "sha512-PMARsyh/JtqC20HoGqlFcIlQAyqUtW4PlI1rup1uhYJtKuwAjbvWi3GQMAn+STdHum/dk8xrKfUM1+5SAwpolA==",
3769
+ "dev": true,
3770
+ "license": "MIT",
3771
+ "peer": true,
3772
+ "dependencies": {
3773
+ "@jest/expect-utils": "30.4.1",
3774
+ "@jest/get-type": "30.1.0",
3775
+ "jest-matcher-utils": "30.4.1",
3776
+ "jest-message-util": "30.4.1",
3777
+ "jest-mock": "30.4.1",
3778
+ "jest-util": "30.4.1"
3779
+ },
3780
+ "engines": {
3781
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
3782
+ }
3783
+ },
3784
+ "node_modules/express": {
3785
+ "version": "5.2.1",
3786
+ "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",
3787
+ "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
3788
+ "license": "MIT",
3789
+ "dependencies": {
3790
+ "accepts": "^2.0.0",
3791
+ "body-parser": "^2.2.1",
3792
+ "content-disposition": "^1.0.0",
3793
+ "content-type": "^1.0.5",
3794
+ "cookie": "^0.7.1",
3795
+ "cookie-signature": "^1.2.1",
3796
+ "debug": "^4.4.0",
3797
+ "depd": "^2.0.0",
3798
+ "encodeurl": "^2.0.0",
3799
+ "escape-html": "^1.0.3",
3800
+ "etag": "^1.8.1",
3801
+ "finalhandler": "^2.1.0",
3802
+ "fresh": "^2.0.0",
3803
+ "http-errors": "^2.0.0",
3804
+ "merge-descriptors": "^2.0.0",
3805
+ "mime-types": "^3.0.0",
3806
+ "on-finished": "^2.4.1",
3807
+ "once": "^1.4.0",
3808
+ "parseurl": "^1.3.3",
3809
+ "proxy-addr": "^2.0.7",
3810
+ "qs": "^6.14.0",
3811
+ "range-parser": "^1.2.1",
3812
+ "router": "^2.2.0",
3813
+ "send": "^1.1.0",
3814
+ "serve-static": "^2.2.0",
3815
+ "statuses": "^2.0.1",
3816
+ "type-is": "^2.0.1",
3817
+ "vary": "^1.1.2"
3818
+ },
3819
+ "engines": {
3820
+ "node": ">= 18"
3821
+ },
3822
+ "funding": {
3823
+ "type": "opencollective",
3824
+ "url": "https://opencollective.com/express"
3825
+ }
3826
+ },
3827
+ "node_modules/extend": {
3828
+ "version": "3.0.2",
3829
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
3830
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
3831
+ "license": "MIT"
3832
+ },
3833
+ "node_modules/farmhash-modern": {
3834
+ "version": "1.1.0",
3835
+ "resolved": "https://registry.npmjs.org/farmhash-modern/-/farmhash-modern-1.1.0.tgz",
3836
+ "integrity": "sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==",
3837
+ "license": "MIT",
3838
+ "engines": {
3839
+ "node": ">=18.0.0"
3840
+ }
3841
+ },
3842
+ "node_modules/fast-deep-equal": {
3843
+ "version": "3.1.3",
3844
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
3845
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
3846
+ "license": "MIT"
3847
+ },
3848
+ "node_modules/fast-json-stable-stringify": {
3849
+ "version": "2.1.0",
3850
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
3851
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
3852
+ "dev": true,
3853
+ "license": "MIT"
3854
+ },
3855
+ "node_modules/fast-levenshtein": {
3856
+ "version": "2.0.6",
3857
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
3858
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
3859
+ "dev": true,
3860
+ "license": "MIT"
3861
+ },
3862
+ "node_modules/fast-xml-builder": {
3863
+ "version": "1.3.1",
3864
+ "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.3.1.tgz",
3865
+ "integrity": "sha512-pIM/1n3ntFXKYrUZwW7QCK0gAW7XY+wzj1YMIV3tLDvPj/V+zTGJK5e3/4WJfwj0qWw2ElNXiTixda/R+3YSug==",
3866
+ "funding": [
3867
+ {
3868
+ "type": "github",
3869
+ "url": "https://github.com/sponsors/NaturalIntelligence"
3870
+ }
3871
+ ],
3872
+ "license": "MIT",
3873
+ "optional": true,
3874
+ "dependencies": {
3875
+ "path-expression-matcher": "^1.6.2",
3876
+ "xml-naming": "^0.3.0"
3877
+ }
3878
+ },
3879
+ "node_modules/fast-xml-parser": {
3880
+ "version": "5.10.1",
3881
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.10.1.tgz",
3882
+ "integrity": "sha512-IEMIf7298kXuZSRFoGfMYrl7is8LpavODgbNz1cwIudv7KwVFnuU+UsMporfq6PD6aXSlawZlARiA3UywCTfMw==",
3883
+ "funding": [
3884
+ {
3885
+ "type": "github",
3886
+ "url": "https://github.com/sponsors/NaturalIntelligence"
3887
+ }
3888
+ ],
3889
+ "license": "MIT",
3890
+ "optional": true,
3891
+ "dependencies": {
3892
+ "@nodable/entities": "^3.0.0",
3893
+ "fast-xml-builder": "^1.2.0",
3894
+ "is-unsafe": "^2.0.0",
3895
+ "path-expression-matcher": "^1.6.2",
3896
+ "strnum": "^2.4.1",
3897
+ "xml-naming": "^0.3.0"
3898
+ },
3899
+ "bin": {
3900
+ "fxparser": "src/cli/cli.js"
3901
+ }
3902
+ },
3903
+ "node_modules/fastq": {
3904
+ "version": "1.20.1",
3905
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
3906
+ "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
3907
+ "dev": true,
3908
+ "license": "ISC",
3909
+ "dependencies": {
3910
+ "reusify": "^1.0.4"
3911
+ }
3912
+ },
3913
+ "node_modules/faye-websocket": {
3914
+ "version": "0.11.4",
3915
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
3916
+ "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
3917
+ "license": "Apache-2.0",
3918
+ "dependencies": {
3919
+ "websocket-driver": ">=0.5.1"
3920
+ },
3921
+ "engines": {
3922
+ "node": ">=0.8.0"
3923
+ }
3924
+ },
3925
+ "node_modules/fb-watchman": {
3926
+ "version": "2.0.2",
3927
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
3928
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
3929
+ "dev": true,
3930
+ "license": "Apache-2.0",
3931
+ "peer": true,
3932
+ "dependencies": {
3933
+ "bser": "2.1.1"
3934
+ }
3935
+ },
3936
+ "node_modules/fetch-blob": {
3937
+ "version": "3.2.0",
3938
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
3939
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
3940
+ "funding": [
3941
+ {
3942
+ "type": "github",
3943
+ "url": "https://github.com/sponsors/jimmywarting"
3944
+ },
3945
+ {
3946
+ "type": "paypal",
3947
+ "url": "https://paypal.me/jimmywarting"
3948
+ }
3949
+ ],
3950
+ "license": "MIT",
3951
+ "dependencies": {
3952
+ "node-domexception": "^1.0.0",
3953
+ "web-streams-polyfill": "^3.0.3"
3954
+ },
3955
+ "engines": {
3956
+ "node": "^12.20 || >= 14.13"
3957
+ }
3958
+ },
3959
+ "node_modules/file-entry-cache": {
3960
+ "version": "6.0.1",
3961
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
3962
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
3963
+ "dev": true,
3964
+ "license": "MIT",
3965
+ "dependencies": {
3966
+ "flat-cache": "^3.0.4"
3967
+ },
3968
+ "engines": {
3969
+ "node": "^10.12.0 || >=12.0.0"
3970
+ }
3971
+ },
3972
+ "node_modules/finalhandler": {
3973
+ "version": "2.1.1",
3974
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz",
3975
+ "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==",
3976
+ "license": "MIT",
3977
+ "dependencies": {
3978
+ "debug": "^4.4.0",
3979
+ "encodeurl": "^2.0.0",
3980
+ "escape-html": "^1.0.3",
3981
+ "on-finished": "^2.4.1",
3982
+ "parseurl": "^1.3.3",
3983
+ "statuses": "^2.0.1"
3984
+ },
3985
+ "engines": {
3986
+ "node": ">= 18.0.0"
3987
+ },
3988
+ "funding": {
3989
+ "type": "opencollective",
3990
+ "url": "https://opencollective.com/express"
3991
+ }
3992
+ },
3993
+ "node_modules/find-up": {
3994
+ "version": "5.0.0",
3995
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
3996
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
3997
+ "dev": true,
3998
+ "license": "MIT",
3999
+ "dependencies": {
4000
+ "locate-path": "^6.0.0",
4001
+ "path-exists": "^4.0.0"
4002
+ },
4003
+ "engines": {
4004
+ "node": ">=10"
4005
+ },
4006
+ "funding": {
4007
+ "url": "https://github.com/sponsors/sindresorhus"
4008
+ }
4009
+ },
4010
+ "node_modules/firebase-admin": {
4011
+ "version": "13.10.0",
4012
+ "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-13.10.0.tgz",
4013
+ "integrity": "sha512-rbuCrJvYRwqBqvbccMS8fj/x2zsaMisdf5RQbRzQzr14Rbq9r2UlpuBHqWAwrO6c9dIRF56xF/xoepXsD5yDuQ==",
4014
+ "license": "Apache-2.0",
4015
+ "dependencies": {
4016
+ "@fastify/busboy": "^3.0.0",
4017
+ "@firebase/database-compat": "^2.0.0",
4018
+ "@firebase/database-types": "^1.0.6",
4019
+ "farmhash-modern": "^1.1.0",
4020
+ "fast-deep-equal": "^3.1.1",
4021
+ "google-auth-library": "^10.6.1",
4022
+ "jsonwebtoken": "^9.0.0",
4023
+ "jwks-rsa": "^3.1.0"
4024
+ },
4025
+ "engines": {
4026
+ "node": ">=18"
4027
+ },
4028
+ "optionalDependencies": {
4029
+ "@google-cloud/firestore": "^7.11.0",
4030
+ "@google-cloud/storage": "^7.19.0"
4031
+ }
4032
+ },
4033
+ "node_modules/firebase-functions": {
4034
+ "version": "7.3.2",
4035
+ "resolved": "https://registry.npmjs.org/firebase-functions/-/firebase-functions-7.3.2.tgz",
4036
+ "integrity": "sha512-DTa5CtCNxFE1gPjkjlhl5uh8AcNWXLKORAMRenfkecP8zGstbje+r2TaNh4Ehdxp0qTPvTUe/sS23VESW32Gbg==",
4037
+ "license": "MIT",
4038
+ "dependencies": {
4039
+ "@types/cors": "^2.8.5",
4040
+ "@types/express": "^5.0.0",
4041
+ "cors": "^2.8.5",
4042
+ "express": "^5.2.1",
4043
+ "protobufjs": "^7.2.2"
4044
+ },
4045
+ "bin": {
4046
+ "firebase-functions": "lib/bin/firebase-functions.js"
4047
+ },
4048
+ "engines": {
4049
+ "node": ">=18.0.0"
4050
+ },
4051
+ "peerDependencies": {
4052
+ "@apollo/server": "^5.2.0",
4053
+ "@as-integrations/express4": "^1.1.2",
4054
+ "firebase-admin": "^11.10.0 || ^12.0.0 || ^13.0.0 || ^14.0.0",
4055
+ "graphql": "^16.12.0"
4056
+ },
4057
+ "peerDependenciesMeta": {
4058
+ "@apollo/server": {
4059
+ "optional": true
4060
+ },
4061
+ "@as-integrations/express4": {
4062
+ "optional": true
4063
+ },
4064
+ "graphql": {
4065
+ "optional": true
4066
+ }
4067
+ }
4068
+ },
4069
+ "node_modules/firebase-functions-test": {
4070
+ "version": "3.5.0",
4071
+ "resolved": "https://registry.npmjs.org/firebase-functions-test/-/firebase-functions-test-3.5.0.tgz",
4072
+ "integrity": "sha512-Jg+f9GeWkWpgYRY9s+Oxst/b9kEnOJ6pU/XNFthOFYs2Ax2fU2Zxc7ckfTozYKEH/mzptSDxV5JYiPTvR+RhKA==",
4073
+ "dev": true,
4074
+ "license": "MIT",
4075
+ "dependencies": {
4076
+ "@types/lodash": "^4.14.104",
4077
+ "lodash": "^4.17.5",
4078
+ "ts-deepmerge": "^2.0.1"
4079
+ },
4080
+ "engines": {
4081
+ "node": ">=14.0.0"
4082
+ },
4083
+ "peerDependencies": {
4084
+ "firebase-admin": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0",
4085
+ "firebase-functions": ">=4.9.0",
4086
+ "jest": ">=28.0.0"
4087
+ }
4088
+ },
4089
+ "node_modules/flat-cache": {
4090
+ "version": "3.2.0",
4091
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
4092
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
4093
+ "dev": true,
4094
+ "license": "MIT",
4095
+ "dependencies": {
4096
+ "flatted": "^3.2.9",
4097
+ "keyv": "^4.5.3",
4098
+ "rimraf": "^3.0.2"
4099
+ },
4100
+ "engines": {
4101
+ "node": "^10.12.0 || >=12.0.0"
4102
+ }
4103
+ },
4104
+ "node_modules/flatted": {
4105
+ "version": "3.4.4",
4106
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz",
4107
+ "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==",
4108
+ "dev": true,
4109
+ "license": "ISC"
4110
+ },
4111
+ "node_modules/foreground-child": {
4112
+ "version": "3.3.1",
4113
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
4114
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
4115
+ "dev": true,
4116
+ "license": "ISC",
4117
+ "peer": true,
4118
+ "dependencies": {
4119
+ "cross-spawn": "^7.0.6",
4120
+ "signal-exit": "^4.0.1"
4121
+ },
4122
+ "engines": {
4123
+ "node": ">=14"
4124
+ },
4125
+ "funding": {
4126
+ "url": "https://github.com/sponsors/isaacs"
4127
+ }
4128
+ },
4129
+ "node_modules/form-data": {
4130
+ "version": "2.5.6",
4131
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.6.tgz",
4132
+ "integrity": "sha512-Ogz/E85h9tlfJzpI6TuFpGcHZFhLrb9Gw8wq9v40CxSCPnv7ahKr6Xgtkn0KYCDQJ8DNn5VoMO8EXr9V5PadyA==",
4133
+ "license": "MIT",
4134
+ "optional": true,
4135
+ "dependencies": {
4136
+ "asynckit": "^0.4.0",
4137
+ "combined-stream": "^1.0.8",
4138
+ "es-set-tostringtag": "^2.1.0",
4139
+ "hasown": "^2.0.4",
4140
+ "mime-types": "^2.1.35",
4141
+ "safe-buffer": "^5.2.1"
4142
+ },
4143
+ "engines": {
4144
+ "node": ">= 0.12"
4145
+ }
4146
+ },
4147
+ "node_modules/form-data/node_modules/mime-db": {
4148
+ "version": "1.52.0",
4149
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
4150
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
4151
+ "license": "MIT",
4152
+ "optional": true,
4153
+ "engines": {
4154
+ "node": ">= 0.6"
4155
+ }
4156
+ },
4157
+ "node_modules/form-data/node_modules/mime-types": {
4158
+ "version": "2.1.35",
4159
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
4160
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
4161
+ "license": "MIT",
4162
+ "optional": true,
4163
+ "dependencies": {
4164
+ "mime-db": "1.52.0"
4165
+ },
4166
+ "engines": {
4167
+ "node": ">= 0.6"
4168
+ }
4169
+ },
4170
+ "node_modules/formdata-polyfill": {
4171
+ "version": "4.0.10",
4172
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
4173
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
4174
+ "license": "MIT",
4175
+ "dependencies": {
4176
+ "fetch-blob": "^3.1.2"
4177
+ },
4178
+ "engines": {
4179
+ "node": ">=12.20.0"
4180
+ }
4181
+ },
4182
+ "node_modules/forwarded": {
4183
+ "version": "0.2.0",
4184
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
4185
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
4186
+ "license": "MIT",
4187
+ "engines": {
4188
+ "node": ">= 0.6"
4189
+ }
4190
+ },
4191
+ "node_modules/fresh": {
4192
+ "version": "2.0.0",
4193
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz",
4194
+ "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==",
4195
+ "license": "MIT",
4196
+ "engines": {
4197
+ "node": ">= 0.8"
4198
+ }
4199
+ },
4200
+ "node_modules/fs.realpath": {
4201
+ "version": "1.0.0",
4202
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
4203
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
4204
+ "dev": true,
4205
+ "license": "ISC"
4206
+ },
4207
+ "node_modules/fsevents": {
4208
+ "version": "2.3.3",
4209
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
4210
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
4211
+ "dev": true,
4212
+ "hasInstallScript": true,
4213
+ "license": "MIT",
4214
+ "optional": true,
4215
+ "os": [
4216
+ "darwin"
4217
+ ],
4218
+ "peer": true,
4219
+ "engines": {
4220
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
4221
+ }
4222
+ },
4223
+ "node_modules/function-bind": {
4224
+ "version": "1.1.2",
4225
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
4226
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
4227
+ "license": "MIT",
4228
+ "funding": {
4229
+ "url": "https://github.com/sponsors/ljharb"
4230
+ }
4231
+ },
4232
+ "node_modules/functional-red-black-tree": {
4233
+ "version": "1.0.1",
4234
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
4235
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
4236
+ "license": "MIT",
4237
+ "optional": true
4238
+ },
4239
+ "node_modules/gaxios": {
4240
+ "version": "6.7.1",
4241
+ "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz",
4242
+ "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==",
4243
+ "license": "Apache-2.0",
4244
+ "optional": true,
4245
+ "dependencies": {
4246
+ "extend": "^3.0.2",
4247
+ "https-proxy-agent": "^7.0.1",
4248
+ "is-stream": "^2.0.0",
4249
+ "node-fetch": "^2.6.9",
4250
+ "uuid": "^9.0.1"
4251
+ },
4252
+ "engines": {
4253
+ "node": ">=14"
4254
+ }
4255
+ },
4256
+ "node_modules/gcp-metadata": {
4257
+ "version": "8.1.2",
4258
+ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-8.1.2.tgz",
4259
+ "integrity": "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==",
4260
+ "license": "Apache-2.0",
4261
+ "dependencies": {
4262
+ "gaxios": "^7.0.0",
4263
+ "google-logging-utils": "^1.0.0",
4264
+ "json-bigint": "^1.0.0"
4265
+ },
4266
+ "engines": {
4267
+ "node": ">=18"
4268
+ }
4269
+ },
4270
+ "node_modules/gcp-metadata/node_modules/gaxios": {
4271
+ "version": "7.3.1",
4272
+ "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.3.1.tgz",
4273
+ "integrity": "sha512-kB3rzJV7d9juLZh8/56QTXCwQfxyhdOMdyYk1HdQKFtF8TJTDTZQJtixWIwXdE9Jji91mC41DUNpjleo4L4eAQ==",
4274
+ "license": "Apache-2.0",
4275
+ "dependencies": {
4276
+ "extend": "^3.0.2",
4277
+ "https-proxy-agent": "^7.0.1",
4278
+ "node-fetch": "^3.3.2"
4279
+ },
4280
+ "engines": {
4281
+ "node": ">=18"
4282
+ }
4283
+ },
4284
+ "node_modules/gcp-metadata/node_modules/node-fetch": {
4285
+ "version": "3.3.2",
4286
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
4287
+ "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
4288
+ "license": "MIT",
4289
+ "dependencies": {
4290
+ "data-uri-to-buffer": "^4.0.0",
4291
+ "fetch-blob": "^3.1.4",
4292
+ "formdata-polyfill": "^4.0.10"
4293
+ },
4294
+ "engines": {
4295
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
4296
+ },
4297
+ "funding": {
4298
+ "type": "opencollective",
4299
+ "url": "https://opencollective.com/node-fetch"
4300
+ }
4301
+ },
4302
+ "node_modules/gensync": {
4303
+ "version": "1.0.0-beta.2",
4304
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
4305
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
4306
+ "dev": true,
4307
+ "license": "MIT",
4308
+ "peer": true,
4309
+ "engines": {
4310
+ "node": ">=6.9.0"
4311
+ }
4312
+ },
4313
+ "node_modules/get-caller-file": {
4314
+ "version": "2.0.5",
4315
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
4316
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
4317
+ "devOptional": true,
4318
+ "license": "ISC",
4319
+ "engines": {
4320
+ "node": "6.* || 8.* || >= 10.*"
4321
+ }
4322
+ },
4323
+ "node_modules/get-intrinsic": {
4324
+ "version": "1.3.0",
4325
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
4326
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
4327
+ "license": "MIT",
4328
+ "dependencies": {
4329
+ "call-bind-apply-helpers": "^1.0.2",
4330
+ "es-define-property": "^1.0.1",
4331
+ "es-errors": "^1.3.0",
4332
+ "es-object-atoms": "^1.1.1",
4333
+ "function-bind": "^1.1.2",
4334
+ "get-proto": "^1.0.1",
4335
+ "gopd": "^1.2.0",
4336
+ "has-symbols": "^1.1.0",
4337
+ "hasown": "^2.0.2",
4338
+ "math-intrinsics": "^1.1.0"
4339
+ },
4340
+ "engines": {
4341
+ "node": ">= 0.4"
4342
+ },
4343
+ "funding": {
4344
+ "url": "https://github.com/sponsors/ljharb"
4345
+ }
4346
+ },
4347
+ "node_modules/get-package-type": {
4348
+ "version": "0.1.0",
4349
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
4350
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
4351
+ "dev": true,
4352
+ "license": "MIT",
4353
+ "peer": true,
4354
+ "engines": {
4355
+ "node": ">=8.0.0"
4356
+ }
4357
+ },
4358
+ "node_modules/get-proto": {
4359
+ "version": "1.0.1",
4360
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
4361
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
4362
+ "license": "MIT",
4363
+ "dependencies": {
4364
+ "dunder-proto": "^1.0.1",
4365
+ "es-object-atoms": "^1.0.0"
4366
+ },
4367
+ "engines": {
4368
+ "node": ">= 0.4"
4369
+ }
4370
+ },
4371
+ "node_modules/get-stream": {
4372
+ "version": "6.0.1",
4373
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
4374
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
4375
+ "dev": true,
4376
+ "license": "MIT",
4377
+ "peer": true,
4378
+ "engines": {
4379
+ "node": ">=10"
4380
+ },
4381
+ "funding": {
4382
+ "url": "https://github.com/sponsors/sindresorhus"
4383
+ }
4384
+ },
4385
+ "node_modules/glob": {
4386
+ "version": "10.5.0",
4387
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
4388
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
4389
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
4390
+ "dev": true,
4391
+ "license": "ISC",
4392
+ "peer": true,
4393
+ "dependencies": {
4394
+ "foreground-child": "^3.1.0",
4395
+ "jackspeak": "^3.1.2",
4396
+ "minimatch": "^9.0.4",
4397
+ "minipass": "^7.1.2",
4398
+ "package-json-from-dist": "^1.0.0",
4399
+ "path-scurry": "^1.11.1"
4400
+ },
4401
+ "bin": {
4402
+ "glob": "dist/esm/bin.mjs"
4403
+ },
4404
+ "funding": {
4405
+ "url": "https://github.com/sponsors/isaacs"
4406
+ }
4407
+ },
4408
+ "node_modules/glob-parent": {
4409
+ "version": "6.0.2",
4410
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
4411
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
4412
+ "dev": true,
4413
+ "license": "ISC",
4414
+ "dependencies": {
4415
+ "is-glob": "^4.0.3"
4416
+ },
4417
+ "engines": {
4418
+ "node": ">=10.13.0"
4419
+ }
4420
+ },
4421
+ "node_modules/glob/node_modules/brace-expansion": {
4422
+ "version": "2.1.4",
4423
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.4.tgz",
4424
+ "integrity": "sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==",
4425
+ "dev": true,
4426
+ "license": "MIT",
4427
+ "peer": true,
4428
+ "dependencies": {
4429
+ "balanced-match": "^1.0.0"
4430
+ }
4431
+ },
4432
+ "node_modules/glob/node_modules/minimatch": {
4433
+ "version": "9.0.9",
4434
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
4435
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
4436
+ "dev": true,
4437
+ "license": "ISC",
4438
+ "peer": true,
4439
+ "dependencies": {
4440
+ "brace-expansion": "^2.0.2"
4441
+ },
4442
+ "engines": {
4443
+ "node": ">=16 || 14 >=14.17"
4444
+ },
4445
+ "funding": {
4446
+ "url": "https://github.com/sponsors/isaacs"
4447
+ }
4448
+ },
4449
+ "node_modules/globals": {
4450
+ "version": "13.24.0",
4451
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
4452
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
4453
+ "dev": true,
4454
+ "license": "MIT",
4455
+ "dependencies": {
4456
+ "type-fest": "^0.20.2"
4457
+ },
4458
+ "engines": {
4459
+ "node": ">=8"
4460
+ },
4461
+ "funding": {
4462
+ "url": "https://github.com/sponsors/sindresorhus"
4463
+ }
4464
+ },
4465
+ "node_modules/google-auth-library": {
4466
+ "version": "10.9.1",
4467
+ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.9.1.tgz",
4468
+ "integrity": "sha512-i1ydyHrqcIxXkWh/uBmVkzCvIuq5yiK2ATndIe5XxKholrG/MTYP9xGYka4sQhrbIAgGjL2B6NOE7rFaiF3fXw==",
4469
+ "license": "Apache-2.0",
4470
+ "dependencies": {
4471
+ "base64-js": "^1.3.0",
4472
+ "ecdsa-sig-formatter": "^1.0.11",
4473
+ "gaxios": "^7.1.4",
4474
+ "gcp-metadata": "8.1.2",
4475
+ "google-logging-utils": "1.1.3",
4476
+ "jws": "^4.0.0"
4477
+ },
4478
+ "engines": {
4479
+ "node": ">=18"
4480
+ }
4481
+ },
4482
+ "node_modules/google-auth-library/node_modules/gaxios": {
4483
+ "version": "7.3.1",
4484
+ "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.3.1.tgz",
4485
+ "integrity": "sha512-kB3rzJV7d9juLZh8/56QTXCwQfxyhdOMdyYk1HdQKFtF8TJTDTZQJtixWIwXdE9Jji91mC41DUNpjleo4L4eAQ==",
4486
+ "license": "Apache-2.0",
4487
+ "dependencies": {
4488
+ "extend": "^3.0.2",
4489
+ "https-proxy-agent": "^7.0.1",
4490
+ "node-fetch": "^3.3.2"
4491
+ },
4492
+ "engines": {
4493
+ "node": ">=18"
4494
+ }
4495
+ },
4496
+ "node_modules/google-auth-library/node_modules/node-fetch": {
4497
+ "version": "3.3.2",
4498
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
4499
+ "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
4500
+ "license": "MIT",
4501
+ "dependencies": {
4502
+ "data-uri-to-buffer": "^4.0.0",
4503
+ "fetch-blob": "^3.1.4",
4504
+ "formdata-polyfill": "^4.0.10"
4505
+ },
4506
+ "engines": {
4507
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
4508
+ },
4509
+ "funding": {
4510
+ "type": "opencollective",
4511
+ "url": "https://opencollective.com/node-fetch"
4512
+ }
4513
+ },
4514
+ "node_modules/google-gax": {
4515
+ "version": "4.6.1",
4516
+ "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.6.1.tgz",
4517
+ "integrity": "sha512-V6eky/xz2mcKfAd1Ioxyd6nmA61gao3n01C+YeuIwu3vzM9EDR6wcVzMSIbLMDXWeoi9SHYctXuKYC5uJUT3eQ==",
4518
+ "license": "Apache-2.0",
4519
+ "optional": true,
4520
+ "dependencies": {
4521
+ "@grpc/grpc-js": "^1.10.9",
4522
+ "@grpc/proto-loader": "^0.7.13",
4523
+ "@types/long": "^4.0.0",
4524
+ "abort-controller": "^3.0.0",
4525
+ "duplexify": "^4.0.0",
4526
+ "google-auth-library": "^9.3.0",
4527
+ "node-fetch": "^2.7.0",
4528
+ "object-hash": "^3.0.0",
4529
+ "proto3-json-serializer": "^2.0.2",
4530
+ "protobufjs": "^7.3.2",
4531
+ "retry-request": "^7.0.0",
4532
+ "uuid": "^9.0.1"
4533
+ },
4534
+ "engines": {
4535
+ "node": ">=14"
4536
+ }
4537
+ },
4538
+ "node_modules/google-gax/node_modules/gcp-metadata": {
4539
+ "version": "6.1.1",
4540
+ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz",
4541
+ "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==",
4542
+ "license": "Apache-2.0",
4543
+ "optional": true,
4544
+ "dependencies": {
4545
+ "gaxios": "^6.1.1",
4546
+ "google-logging-utils": "^0.0.2",
4547
+ "json-bigint": "^1.0.0"
4548
+ },
4549
+ "engines": {
4550
+ "node": ">=14"
4551
+ }
4552
+ },
4553
+ "node_modules/google-gax/node_modules/google-auth-library": {
4554
+ "version": "9.15.1",
4555
+ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz",
4556
+ "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==",
4557
+ "license": "Apache-2.0",
4558
+ "optional": true,
4559
+ "dependencies": {
4560
+ "base64-js": "^1.3.0",
4561
+ "ecdsa-sig-formatter": "^1.0.11",
4562
+ "gaxios": "^6.1.1",
4563
+ "gcp-metadata": "^6.1.0",
4564
+ "gtoken": "^7.0.0",
4565
+ "jws": "^4.0.0"
4566
+ },
4567
+ "engines": {
4568
+ "node": ">=14"
4569
+ }
4570
+ },
4571
+ "node_modules/google-gax/node_modules/google-logging-utils": {
4572
+ "version": "0.0.2",
4573
+ "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz",
4574
+ "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==",
4575
+ "license": "Apache-2.0",
4576
+ "optional": true,
4577
+ "engines": {
4578
+ "node": ">=14"
4579
+ }
4580
+ },
4581
+ "node_modules/google-logging-utils": {
4582
+ "version": "1.1.3",
4583
+ "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-1.1.3.tgz",
4584
+ "integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==",
4585
+ "license": "Apache-2.0",
4586
+ "engines": {
4587
+ "node": ">=14"
4588
+ }
4589
+ },
4590
+ "node_modules/gopd": {
4591
+ "version": "1.2.0",
4592
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
4593
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
4594
+ "license": "MIT",
4595
+ "engines": {
4596
+ "node": ">= 0.4"
4597
+ },
4598
+ "funding": {
4599
+ "url": "https://github.com/sponsors/ljharb"
4600
+ }
4601
+ },
4602
+ "node_modules/graceful-fs": {
4603
+ "version": "4.2.11",
4604
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
4605
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
4606
+ "dev": true,
4607
+ "license": "ISC",
4608
+ "peer": true
4609
+ },
4610
+ "node_modules/graphemer": {
4611
+ "version": "1.4.0",
4612
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
4613
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
4614
+ "dev": true,
4615
+ "license": "MIT"
4616
+ },
4617
+ "node_modules/gtoken": {
4618
+ "version": "7.1.0",
4619
+ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz",
4620
+ "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==",
4621
+ "license": "MIT",
4622
+ "optional": true,
4623
+ "dependencies": {
4624
+ "gaxios": "^6.0.0",
4625
+ "jws": "^4.0.0"
4626
+ },
4627
+ "engines": {
4628
+ "node": ">=14.0.0"
4629
+ }
4630
+ },
4631
+ "node_modules/has-flag": {
4632
+ "version": "4.0.0",
4633
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
4634
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
4635
+ "dev": true,
4636
+ "license": "MIT",
4637
+ "engines": {
4638
+ "node": ">=8"
4639
+ }
4640
+ },
4641
+ "node_modules/has-symbols": {
4642
+ "version": "1.1.0",
4643
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
4644
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
4645
+ "license": "MIT",
4646
+ "engines": {
4647
+ "node": ">= 0.4"
4648
+ },
4649
+ "funding": {
4650
+ "url": "https://github.com/sponsors/ljharb"
4651
+ }
4652
+ },
4653
+ "node_modules/has-tostringtag": {
4654
+ "version": "1.0.2",
4655
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
4656
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
4657
+ "license": "MIT",
4658
+ "optional": true,
4659
+ "dependencies": {
4660
+ "has-symbols": "^1.0.3"
4661
+ },
4662
+ "engines": {
4663
+ "node": ">= 0.4"
4664
+ },
4665
+ "funding": {
4666
+ "url": "https://github.com/sponsors/ljharb"
4667
+ }
4668
+ },
4669
+ "node_modules/hasown": {
4670
+ "version": "2.0.4",
4671
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz",
4672
+ "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==",
4673
+ "license": "MIT",
4674
+ "dependencies": {
4675
+ "function-bind": "^1.1.2"
4676
+ },
4677
+ "engines": {
4678
+ "node": ">= 0.4"
4679
+ }
4680
+ },
4681
+ "node_modules/html-entities": {
4682
+ "version": "2.6.0",
4683
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz",
4684
+ "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==",
4685
+ "funding": [
4686
+ {
4687
+ "type": "github",
4688
+ "url": "https://github.com/sponsors/mdevils"
4689
+ },
4690
+ {
4691
+ "type": "patreon",
4692
+ "url": "https://patreon.com/mdevils"
4693
+ }
4694
+ ],
4695
+ "license": "MIT",
4696
+ "optional": true
4697
+ },
4698
+ "node_modules/html-escaper": {
4699
+ "version": "2.0.2",
4700
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
4701
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
4702
+ "dev": true,
4703
+ "license": "MIT",
4704
+ "peer": true
4705
+ },
4706
+ "node_modules/http-errors": {
4707
+ "version": "2.0.1",
4708
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
4709
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
4710
+ "license": "MIT",
4711
+ "dependencies": {
4712
+ "depd": "~2.0.0",
4713
+ "inherits": "~2.0.4",
4714
+ "setprototypeof": "~1.2.0",
4715
+ "statuses": "~2.0.2",
4716
+ "toidentifier": "~1.0.1"
4717
+ },
4718
+ "engines": {
4719
+ "node": ">= 0.8"
4720
+ },
4721
+ "funding": {
4722
+ "type": "opencollective",
4723
+ "url": "https://opencollective.com/express"
4724
+ }
4725
+ },
4726
+ "node_modules/http-parser-js": {
4727
+ "version": "0.5.10",
4728
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz",
4729
+ "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==",
4730
+ "license": "MIT"
4731
+ },
4732
+ "node_modules/http-proxy-agent": {
4733
+ "version": "5.0.0",
4734
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
4735
+ "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
4736
+ "license": "MIT",
4737
+ "optional": true,
4738
+ "dependencies": {
4739
+ "@tootallnate/once": "2",
4740
+ "agent-base": "6",
4741
+ "debug": "4"
4742
+ },
4743
+ "engines": {
4744
+ "node": ">= 6"
4745
+ }
4746
+ },
4747
+ "node_modules/http-proxy-agent/node_modules/agent-base": {
4748
+ "version": "6.0.2",
4749
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
4750
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
4751
+ "license": "MIT",
4752
+ "optional": true,
4753
+ "dependencies": {
4754
+ "debug": "4"
4755
+ },
4756
+ "engines": {
4757
+ "node": ">= 6.0.0"
4758
+ }
4759
+ },
4760
+ "node_modules/https-proxy-agent": {
4761
+ "version": "7.0.6",
4762
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
4763
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
4764
+ "license": "MIT",
4765
+ "dependencies": {
4766
+ "agent-base": "^7.1.2",
4767
+ "debug": "4"
4768
+ },
4769
+ "engines": {
4770
+ "node": ">= 14"
4771
+ }
4772
+ },
4773
+ "node_modules/human-signals": {
4774
+ "version": "2.1.0",
4775
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
4776
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
4777
+ "dev": true,
4778
+ "license": "Apache-2.0",
4779
+ "peer": true,
4780
+ "engines": {
4781
+ "node": ">=10.17.0"
4782
+ }
4783
+ },
4784
+ "node_modules/iconv-lite": {
4785
+ "version": "0.7.3",
4786
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz",
4787
+ "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==",
4788
+ "license": "MIT",
4789
+ "dependencies": {
4790
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
4791
+ },
4792
+ "engines": {
4793
+ "node": ">=0.10.0"
4794
+ },
4795
+ "funding": {
4796
+ "type": "opencollective",
4797
+ "url": "https://opencollective.com/express"
4798
+ }
4799
+ },
4800
+ "node_modules/ignore": {
4801
+ "version": "5.3.2",
4802
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
4803
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
4804
+ "dev": true,
4805
+ "license": "MIT",
4806
+ "engines": {
4807
+ "node": ">= 4"
4808
+ }
4809
+ },
4810
+ "node_modules/import-fresh": {
4811
+ "version": "3.3.1",
4812
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
4813
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
4814
+ "dev": true,
4815
+ "license": "MIT",
4816
+ "dependencies": {
4817
+ "parent-module": "^1.0.0",
4818
+ "resolve-from": "^4.0.0"
4819
+ },
4820
+ "engines": {
4821
+ "node": ">=6"
4822
+ },
4823
+ "funding": {
4824
+ "url": "https://github.com/sponsors/sindresorhus"
4825
+ }
4826
+ },
4827
+ "node_modules/import-local": {
4828
+ "version": "3.2.0",
4829
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz",
4830
+ "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==",
4831
+ "dev": true,
4832
+ "license": "MIT",
4833
+ "peer": true,
4834
+ "dependencies": {
4835
+ "pkg-dir": "^4.2.0",
4836
+ "resolve-cwd": "^3.0.0"
4837
+ },
4838
+ "bin": {
4839
+ "import-local-fixture": "fixtures/cli.js"
4840
+ },
4841
+ "engines": {
4842
+ "node": ">=8"
4843
+ },
4844
+ "funding": {
4845
+ "url": "https://github.com/sponsors/sindresorhus"
4846
+ }
4847
+ },
4848
+ "node_modules/imurmurhash": {
4849
+ "version": "0.1.4",
4850
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
4851
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
4852
+ "dev": true,
4853
+ "license": "MIT",
4854
+ "engines": {
4855
+ "node": ">=0.8.19"
4856
+ }
4857
+ },
4858
+ "node_modules/inflight": {
4859
+ "version": "1.0.6",
4860
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
4861
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
4862
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
4863
+ "dev": true,
4864
+ "license": "ISC",
4865
+ "dependencies": {
4866
+ "once": "^1.3.0",
4867
+ "wrappy": "1"
4868
+ }
4869
+ },
4870
+ "node_modules/inherits": {
4871
+ "version": "2.0.4",
4872
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
4873
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
4874
+ "license": "ISC"
4875
+ },
4876
+ "node_modules/ipaddr.js": {
4877
+ "version": "1.9.1",
4878
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
4879
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
4880
+ "license": "MIT",
4881
+ "engines": {
4882
+ "node": ">= 0.10"
4883
+ }
4884
+ },
4885
+ "node_modules/is-arrayish": {
4886
+ "version": "0.2.1",
4887
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
4888
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
4889
+ "dev": true,
4890
+ "license": "MIT",
4891
+ "peer": true
4892
+ },
4893
+ "node_modules/is-extglob": {
4894
+ "version": "2.1.1",
4895
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
4896
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
4897
+ "dev": true,
4898
+ "license": "MIT",
4899
+ "engines": {
4900
+ "node": ">=0.10.0"
4901
+ }
4902
+ },
4903
+ "node_modules/is-fullwidth-code-point": {
4904
+ "version": "3.0.0",
4905
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
4906
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
4907
+ "devOptional": true,
4908
+ "license": "MIT",
4909
+ "engines": {
4910
+ "node": ">=8"
4911
+ }
4912
+ },
4913
+ "node_modules/is-generator-fn": {
4914
+ "version": "2.1.0",
4915
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
4916
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
4917
+ "dev": true,
4918
+ "license": "MIT",
4919
+ "peer": true,
4920
+ "engines": {
4921
+ "node": ">=6"
4922
+ }
4923
+ },
4924
+ "node_modules/is-glob": {
4925
+ "version": "4.0.3",
4926
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
4927
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
4928
+ "dev": true,
4929
+ "license": "MIT",
4930
+ "dependencies": {
4931
+ "is-extglob": "^2.1.1"
4932
+ },
4933
+ "engines": {
4934
+ "node": ">=0.10.0"
4935
+ }
4936
+ },
4937
+ "node_modules/is-path-inside": {
4938
+ "version": "3.0.3",
4939
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
4940
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
4941
+ "dev": true,
4942
+ "license": "MIT",
4943
+ "engines": {
4944
+ "node": ">=8"
4945
+ }
4946
+ },
4947
+ "node_modules/is-promise": {
4948
+ "version": "4.0.0",
4949
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
4950
+ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
4951
+ "license": "MIT"
4952
+ },
4953
+ "node_modules/is-stream": {
4954
+ "version": "2.0.1",
4955
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
4956
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
4957
+ "devOptional": true,
4958
+ "license": "MIT",
4959
+ "engines": {
4960
+ "node": ">=8"
4961
+ },
4962
+ "funding": {
4963
+ "url": "https://github.com/sponsors/sindresorhus"
4964
+ }
4965
+ },
4966
+ "node_modules/is-unsafe": {
4967
+ "version": "2.0.0",
4968
+ "resolved": "https://registry.npmjs.org/is-unsafe/-/is-unsafe-2.0.0.tgz",
4969
+ "integrity": "sha512-2LdV822R+wmI86unXA93WCFpL6g+av8ynWk0nrHyJqGop5VoocYsSLFgN8jrfalT6iGeLNM4KXuVSsULP53kEA==",
4970
+ "funding": [
4971
+ {
4972
+ "type": "github",
4973
+ "url": "https://github.com/sponsors/NaturalIntelligence"
4974
+ }
4975
+ ],
4976
+ "license": "MIT",
4977
+ "optional": true
4978
+ },
4979
+ "node_modules/isexe": {
4980
+ "version": "2.0.0",
4981
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
4982
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
4983
+ "dev": true,
4984
+ "license": "ISC"
4985
+ },
4986
+ "node_modules/istanbul-lib-coverage": {
4987
+ "version": "3.2.2",
4988
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
4989
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
4990
+ "dev": true,
4991
+ "license": "BSD-3-Clause",
4992
+ "peer": true,
4993
+ "engines": {
4994
+ "node": ">=8"
4995
+ }
4996
+ },
4997
+ "node_modules/istanbul-lib-instrument": {
4998
+ "version": "6.0.3",
4999
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
This file is too large to show in full.
android/functions/package.json
new
+26
@@ -0,0 +1,26 @@
1
+{
2
+ "name": "functions",
3
+ "description": "Cloud Functions for Firebase",
4
+ "scripts": {
5
+ "lint": "eslint .",
6
+ "serve": "firebase emulators:start --only functions",
7
+ "shell": "firebase functions:shell",
8
+ "start": "npm run shell",
9
+ "deploy": "firebase deploy --only functions",
10
+ "logs": "firebase functions:log"
11
+ },
12
+ "engines": {
13
+ "node": "24"
14
+ },
15
+ "main": "index.js",
16
+ "dependencies": {
17
+ "firebase-admin": "^13.6.0",
18
+ "firebase-functions": "^7.0.0"
19
+ },
20
+ "devDependencies": {
21
+ "eslint": "^8.15.0",
22
+ "eslint-config-google": "^0.14.0",
23
+ "firebase-functions-test": "^3.4.1"
24
+ },
25
+ "private": true
26
+}
android/gradle.properties
new
+24
@@ -0,0 +1,24 @@
1
+# Project-wide Gradle settings.
2
+# For more details on how to configure your build, visit
3
+# http://www.gradle.org/docs/current/userguide/build_environment.html
4
+
5
+# Specifies the JVM arguments used for the Gradle Daemon.
6
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
7
+
8
+# Use AndroidX libraries.
9
+android.useAndroidX=true
10
+
11
+# Disable Jetifier (improves build performance).
12
+android.enableJetifier=false
13
+
14
+# Modern Android features for better performance.
15
+android.nonTransitiveRClass=true
16
+android.nonFinalResIds=true
17
+
18
+# Enable Gradle features.
19
+org.gradle.configuration-cache=true
20
+org.gradle.parallel=true
21
+org.gradle.caching=true
22
+
23
+# Enabled parallel sync for Gradle 9.4+
24
+org.gradle.tooling.parallel=true
android/gradle/gradle-daemon-jvm.properties
new
+13
@@ -0,0 +1,13 @@
1
+#This file is generated by updateDaemonJvm
2
+toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/5b9591a15a17a2a590aa9c347d3c2cc0/redirect
3
+toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/b2464ba80c230a71ce5ddafc5fef6ac1/redirect
4
+toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/5b9591a15a17a2a590aa9c347d3c2cc0/redirect
5
+toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/b2464ba80c230a71ce5ddafc5fef6ac1/redirect
6
+toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/8e3a8cffff6cb6225070c24826d27787/redirect
7
+toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/b72dff7fe21ab8aef871517ef12a3667/redirect
8
+toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/5b9591a15a17a2a590aa9c347d3c2cc0/redirect
9
+toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/b2464ba80c230a71ce5ddafc5fef6ac1/redirect
10
+toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/72d85c5e7c5049b9755b2c360b111cd5/redirect
11
+toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/3ebfa4ecec5ee0165895f2bc0adf3ba9/redirect
12
+toolchainVendor=JETBRAINS
13
+toolchainVersion=17
android/gradle/wrapper/gradle-wrapper.properties
new
+5
@@ -0,0 +1,5 @@
1
+distributionBase=GRADLE_USER_HOME
2
+distributionPath=wrapper/dists
3
+zipStoreBase=GRADLE_USER_HOME
4
+zipStorePath=wrapper/dists
5
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip
android/settings.gradle
new
+5
@@ -0,0 +1,5 @@
1
+plugins {
2
+ id 'org.gradle.toolchains.foojay-resolver-convention' version '0.10.0'
3
+}
4
+rootProject.name = "JCR Guide Pro"
5
+include ':app'