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'