From da84736b4bd5231d71512e1afeeda1cc1a33c8e1 Mon Sep 17 00:00:00 2001 From: michael Date: Wed, 4 Mar 2026 10:35:19 -0800 Subject: [PATCH] Add desktop (Electron) and mobile (Expo) showcase apps New workspace packages for demonstrating design system components: - Desktop: Electron + Vite app with brand/theme switching - Mobile: Expo React Native app with brand switching Co-Authored-By: Claude Opus 4.6 --- package-lock.json | 11093 +++++++++++++++- package.json | 5 +- .../showcase/desktop/electron-builder.yml | 18 + packages/showcase/desktop/package.json | 38 + packages/showcase/desktop/src/main/main.ts | 30 + packages/showcase/desktop/src/main/preload.ts | 1 + .../desktop/src/renderer/brand-switcher.ts | 77 + .../showcase/desktop/src/renderer/index.html | 15 + .../showcase/desktop/src/renderer/main.ts | 56 + .../desktop/src/renderer/pages/bevels.ts | 126 + .../desktop/src/renderer/pages/forms.ts | 199 + .../desktop/src/renderer/pages/glows.ts | 97 + .../desktop/src/renderer/pages/home.ts | 33 + .../desktop/src/renderer/pages/tokens.ts | 141 + .../showcase/desktop/src/renderer/style.css | 305 + .../desktop/src/renderer/utils/dom.ts | 46 + .../desktop/src/renderer/utils/router.ts | 28 + packages/showcase/desktop/tsconfig.json | 10 + packages/showcase/desktop/tsconfig.main.json | 14 + packages/showcase/desktop/vite.config.ts | 16 + packages/showcase/mobile/App.tsx | 45 + packages/showcase/mobile/android/.gitignore | 16 + .../showcase/mobile/android/app/build.gradle | 182 + .../mobile/android/app/debug.keystore | Bin 0 -> 2257 bytes .../mobile/android/app/proguard-rules.pro | 14 + .../android/app/src/debug/AndroidManifest.xml | 7 + .../src/debugOptimized/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 25 + .../dangerousthings/showcase/MainActivity.kt | 61 + .../showcase/MainApplication.kt | 56 + .../res/drawable/ic_launcher_background.xml | 3 + .../res/drawable/rn_edit_text_material.xml | 37 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 3056 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 5024 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 2096 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 2858 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 4569 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 7098 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 6464 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 10676 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 9250 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 15523 bytes .../app/src/main/res/values-night/colors.xml | 1 + .../app/src/main/res/values/colors.xml | 5 + .../app/src/main/res/values/strings.xml | 5 + .../app/src/main/res/values/styles.xml | 11 + packages/showcase/mobile/android/build.gradle | 24 + .../showcase/mobile/android/gradle.properties | 65 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43764 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + packages/showcase/mobile/android/gradlew | 251 + packages/showcase/mobile/android/gradlew.bat | 94 + .../showcase/mobile/android/settings.gradle | 39 + packages/showcase/mobile/app.json | 23 + .../mobile/assets/fonts/Tektur-Bold.ttf | Bin 0 -> 75880 bytes .../mobile/assets/fonts/Tektur-Medium.ttf | Bin 0 -> 76248 bytes .../mobile/assets/fonts/Tektur-Regular.ttf | Bin 0 -> 75604 bytes .../mobile/assets/fonts/Tektur-SemiBold.ttf | Bin 0 -> 76076 bytes .../fonts/Tektur-VariableFont_wdth,wght.ttf | Bin 0 -> 162656 bytes packages/showcase/mobile/babel.config.js | 6 + packages/showcase/mobile/eas.json | 24 + packages/showcase/mobile/index.js | 4 + packages/showcase/mobile/ios/.gitignore | 30 + packages/showcase/mobile/ios/.xcode.env | 11 + .../project.pbxproj | 436 + .../xcschemes/DTDesignSystemShowcase.xcscheme | 88 + .../DTDesignSystemShowcase/AppDelegate.swift | 70 + .../DTDesignSystemShowcase-Bridging-Header.h | 3 + .../DTDesignSystemShowcase.entitlements | 5 + .../App-Icon-1024x1024@1x.png | Bin 0 -> 5856 bytes .../AppIcon.appiconset/Contents.json | 14 + .../Images.xcassets/Contents.json | 6 + .../Contents.json | 20 + .../ios/DTDesignSystemShowcase/Info.plist | 76 + .../SplashScreen.storyboard | 39 + .../Supporting/Expo.plist | 12 + packages/showcase/mobile/ios/Podfile | 63 + .../mobile/ios/Podfile.properties.json | 5 + packages/showcase/mobile/metro.config.js | 27 + packages/showcase/mobile/package.json | 41 + .../mobile/src/brand/BrandContext.tsx | 42 + .../showcase/mobile/src/brand/buildTheme.ts | 68 + .../mobile/src/components/BrandSwitcher.tsx | 70 + .../mobile/src/components/CodeLabel.tsx | 21 + .../mobile/src/components/DemoRow.tsx | 19 + .../mobile/src/components/DemoSection.tsx | 45 + .../mobile/src/components/ScreenContainer.tsx | 22 + .../showcase/mobile/src/data/sampleData.ts | 48 + .../mobile/src/navigation/RootNavigator.tsx | 67 + .../mobile/src/navigation/navigationTheme.ts | 21 + .../showcase/mobile/src/navigation/types.ts | 9 + .../mobile/src/screens/ButtonsScreen.tsx | 178 + .../mobile/src/screens/CardsScreen.tsx | 180 + .../mobile/src/screens/FeedbackScreen.tsx | 139 + .../mobile/src/screens/FormsScreen.tsx | 290 + .../mobile/src/screens/HomeScreen.tsx | 160 + .../mobile/src/screens/OverlaysScreen.tsx | 298 + .../mobile/src/screens/ThemeScreen.tsx | 201 + packages/showcase/mobile/tsconfig.json | 6 + turbo.json | 10 + 100 files changed, 15874 insertions(+), 326 deletions(-) create mode 100644 packages/showcase/desktop/electron-builder.yml create mode 100644 packages/showcase/desktop/package.json create mode 100644 packages/showcase/desktop/src/main/main.ts create mode 100644 packages/showcase/desktop/src/main/preload.ts create mode 100644 packages/showcase/desktop/src/renderer/brand-switcher.ts create mode 100644 packages/showcase/desktop/src/renderer/index.html create mode 100644 packages/showcase/desktop/src/renderer/main.ts create mode 100644 packages/showcase/desktop/src/renderer/pages/bevels.ts create mode 100644 packages/showcase/desktop/src/renderer/pages/forms.ts create mode 100644 packages/showcase/desktop/src/renderer/pages/glows.ts create mode 100644 packages/showcase/desktop/src/renderer/pages/home.ts create mode 100644 packages/showcase/desktop/src/renderer/pages/tokens.ts create mode 100644 packages/showcase/desktop/src/renderer/style.css create mode 100644 packages/showcase/desktop/src/renderer/utils/dom.ts create mode 100644 packages/showcase/desktop/src/renderer/utils/router.ts create mode 100644 packages/showcase/desktop/tsconfig.json create mode 100644 packages/showcase/desktop/tsconfig.main.json create mode 100644 packages/showcase/desktop/vite.config.ts create mode 100644 packages/showcase/mobile/App.tsx create mode 100644 packages/showcase/mobile/android/.gitignore create mode 100644 packages/showcase/mobile/android/app/build.gradle create mode 100644 packages/showcase/mobile/android/app/debug.keystore create mode 100644 packages/showcase/mobile/android/app/proguard-rules.pro create mode 100644 packages/showcase/mobile/android/app/src/debug/AndroidManifest.xml create mode 100644 packages/showcase/mobile/android/app/src/debugOptimized/AndroidManifest.xml create mode 100644 packages/showcase/mobile/android/app/src/main/AndroidManifest.xml create mode 100644 packages/showcase/mobile/android/app/src/main/java/com/dangerousthings/showcase/MainActivity.kt create mode 100644 packages/showcase/mobile/android/app/src/main/java/com/dangerousthings/showcase/MainApplication.kt create mode 100644 packages/showcase/mobile/android/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 packages/showcase/mobile/android/app/src/main/res/drawable/rn_edit_text_material.xml create mode 100644 packages/showcase/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 packages/showcase/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 packages/showcase/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 packages/showcase/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 packages/showcase/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 packages/showcase/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 packages/showcase/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 packages/showcase/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 packages/showcase/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 packages/showcase/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 packages/showcase/mobile/android/app/src/main/res/values-night/colors.xml create mode 100644 packages/showcase/mobile/android/app/src/main/res/values/colors.xml create mode 100644 packages/showcase/mobile/android/app/src/main/res/values/strings.xml create mode 100644 packages/showcase/mobile/android/app/src/main/res/values/styles.xml create mode 100644 packages/showcase/mobile/android/build.gradle create mode 100644 packages/showcase/mobile/android/gradle.properties create mode 100644 packages/showcase/mobile/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 packages/showcase/mobile/android/gradle/wrapper/gradle-wrapper.properties create mode 100755 packages/showcase/mobile/android/gradlew create mode 100644 packages/showcase/mobile/android/gradlew.bat create mode 100644 packages/showcase/mobile/android/settings.gradle create mode 100644 packages/showcase/mobile/app.json create mode 100644 packages/showcase/mobile/assets/fonts/Tektur-Bold.ttf create mode 100644 packages/showcase/mobile/assets/fonts/Tektur-Medium.ttf create mode 100644 packages/showcase/mobile/assets/fonts/Tektur-Regular.ttf create mode 100644 packages/showcase/mobile/assets/fonts/Tektur-SemiBold.ttf create mode 100644 packages/showcase/mobile/assets/fonts/Tektur-VariableFont_wdth,wght.ttf create mode 100644 packages/showcase/mobile/babel.config.js create mode 100644 packages/showcase/mobile/eas.json create mode 100644 packages/showcase/mobile/index.js create mode 100644 packages/showcase/mobile/ios/.gitignore create mode 100644 packages/showcase/mobile/ios/.xcode.env create mode 100644 packages/showcase/mobile/ios/DTDesignSystemShowcase.xcodeproj/project.pbxproj create mode 100644 packages/showcase/mobile/ios/DTDesignSystemShowcase.xcodeproj/xcshareddata/xcschemes/DTDesignSystemShowcase.xcscheme create mode 100644 packages/showcase/mobile/ios/DTDesignSystemShowcase/AppDelegate.swift create mode 100644 packages/showcase/mobile/ios/DTDesignSystemShowcase/DTDesignSystemShowcase-Bridging-Header.h create mode 100644 packages/showcase/mobile/ios/DTDesignSystemShowcase/DTDesignSystemShowcase.entitlements create mode 100644 packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png create mode 100644 packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/Contents.json create mode 100644 packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/SplashScreenBackground.colorset/Contents.json create mode 100644 packages/showcase/mobile/ios/DTDesignSystemShowcase/Info.plist create mode 100644 packages/showcase/mobile/ios/DTDesignSystemShowcase/SplashScreen.storyboard create mode 100644 packages/showcase/mobile/ios/DTDesignSystemShowcase/Supporting/Expo.plist create mode 100644 packages/showcase/mobile/ios/Podfile create mode 100644 packages/showcase/mobile/ios/Podfile.properties.json create mode 100644 packages/showcase/mobile/metro.config.js create mode 100644 packages/showcase/mobile/package.json create mode 100644 packages/showcase/mobile/src/brand/BrandContext.tsx create mode 100644 packages/showcase/mobile/src/brand/buildTheme.ts create mode 100644 packages/showcase/mobile/src/components/BrandSwitcher.tsx create mode 100644 packages/showcase/mobile/src/components/CodeLabel.tsx create mode 100644 packages/showcase/mobile/src/components/DemoRow.tsx create mode 100644 packages/showcase/mobile/src/components/DemoSection.tsx create mode 100644 packages/showcase/mobile/src/components/ScreenContainer.tsx create mode 100644 packages/showcase/mobile/src/data/sampleData.ts create mode 100644 packages/showcase/mobile/src/navigation/RootNavigator.tsx create mode 100644 packages/showcase/mobile/src/navigation/navigationTheme.ts create mode 100644 packages/showcase/mobile/src/navigation/types.ts create mode 100644 packages/showcase/mobile/src/screens/ButtonsScreen.tsx create mode 100644 packages/showcase/mobile/src/screens/CardsScreen.tsx create mode 100644 packages/showcase/mobile/src/screens/FeedbackScreen.tsx create mode 100644 packages/showcase/mobile/src/screens/FormsScreen.tsx create mode 100644 packages/showcase/mobile/src/screens/HomeScreen.tsx create mode 100644 packages/showcase/mobile/src/screens/OverlaysScreen.tsx create mode 100644 packages/showcase/mobile/src/screens/ThemeScreen.tsx create mode 100644 packages/showcase/mobile/tsconfig.json diff --git a/package-lock.json b/package-lock.json index 8499018..11a096b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,8 @@ "version": "0.0.0", "license": "MIT", "workspaces": [ - "packages/*" + "packages/*", + "packages/showcase/*" ], "devDependencies": { "@changesets/cli": "^2.30.0", @@ -20,12 +21,25 @@ "node": ">=18.0.0" } }, + "node_modules/@0no-co/graphql.web": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.2.0.tgz", + "integrity": "sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==", + "license": "MIT", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, "node_modules/@babel/code-frame": { "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", @@ -40,7 +54,6 @@ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -50,7 +63,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -81,7 +93,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "license": "ISC", - "peer": true, "bin": { "semver": "bin/semver.js" } @@ -91,7 +102,6 @@ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.29.0", "@babel/types": "^7.29.0", @@ -103,12 +113,23 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-compilation-targets": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/compat-data": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", @@ -125,17 +146,100 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "license": "ISC", - "peer": true, "bin": { "semver": "bin/semver.js" } }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", + "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.6.tgz", + "integrity": "sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.11" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/helper-globals": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "license": "MIT", - "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, "engines": { "node": ">=6.9.0" } @@ -145,7 +249,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6" @@ -159,7 +262,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.28.6", "@babel/helper-validator-identifier": "^7.28.5", @@ -172,12 +274,70 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-plugin-utils": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", "license": "MIT", - "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", + "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, "engines": { "node": ">=6.9.0" } @@ -187,7 +347,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -197,7 +356,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -207,7 +365,20 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "license": "MIT", - "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz", + "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, "engines": { "node": ">=6.9.0" } @@ -217,7 +388,6 @@ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/template": "^7.28.6", "@babel/types": "^7.28.6" @@ -226,12 +396,97 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/highlight": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz", + "integrity": "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/parser": { "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", "license": "MIT", - "peer": true, "dependencies": { "@babel/types": "^7.29.0" }, @@ -242,12 +497,43 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.29.0.tgz", + "integrity": "sha512-CVBVv3VY/XRMxRYq5dwr2DS7/MvqPm23cOCjbwNnVrfOqcWlnefua1uUs0sjdKOGjvPUG633o07uWzJq4oI6dA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-syntax-decorators": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-default-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.27.1.tgz", + "integrity": "sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -260,7 +546,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -273,7 +558,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -286,7 +570,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -297,12 +580,68 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.28.6.tgz", + "integrity": "sha512-71EYI0ONURHJBL4rSFXnITXqXrrY8q4P0q006DPfN+Rk+ASM+++IBXem/ruokgBZR8YNEWZ8R6B+rCb8VcUTqA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-default-from": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.28.6.tgz", + "integrity": "sha512-Svlx1fjJFnNz0LZeUaybRukSxZI3KkpApUmIRzEdXC5k8ErTOz0OD0kNrICi5Vc3GlpP5ZCeRyRO+mfWTSz+iQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.28.6.tgz", + "integrity": "sha512-D+OrJumc9McXNEBI/JmFnc/0uCM2/Y3PEBG3gfV3QIYkKv5pvnpzFrl1kYCrcHJP8nOeFB/SHi1IHz29pNGuew==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-attributes": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -318,7 +657,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -331,7 +669,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -339,12 +676,26 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -357,7 +708,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -370,7 +720,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -383,7 +732,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -396,7 +744,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -409,7 +756,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -422,7 +768,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -438,7 +783,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -449,6 +793,682 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz", + "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", + "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz", + "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz", + "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz", + "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz", + "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz", + "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/template": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", + "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-flow": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz", + "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", + "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz", + "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz", + "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz", + "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz", + "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz", + "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz", + "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz", + "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz", + "integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-syntax-jsx": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz", + "integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz", + "integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz", + "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", + "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", + "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.28.0", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/runtime": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", @@ -463,7 +1483,6 @@ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/parser": "^7.28.6", @@ -478,7 +1497,25 @@ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "license": "MIT", - "peer": true, + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse--for-generate-function-map": { + "name": "@babel/traverse", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -497,7 +1534,6 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" @@ -510,7 +1546,6 @@ "version": "3.0.9", "resolved": "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.9.tgz", "integrity": "sha512-tTQ0uDSCL0ypeMa8T/E9wAZRGKWj8kXP7+6RYgPTfOPs9N07C9xM8P02GJ3feETap4Ux5S69D9nteq9mEj86NA==", - "dev": true, "license": "MIT", "dependencies": { "deepmerge": "^3.2.0", @@ -786,6 +1821,14 @@ "resolved": "packages/react-native", "link": true }, + "node_modules/@dangerousthings/showcase-desktop": { + "resolved": "packages/showcase/desktop", + "link": true + }, + "node_modules/@dangerousthings/showcase-mobile": { + "resolved": "packages/showcase/mobile", + "link": true + }, "node_modules/@dangerousthings/tokens": { "resolved": "packages/tokens", "link": true @@ -794,6 +1837,2634 @@ "resolved": "packages/web", "link": true }, + "node_modules/@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@electron/asar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.4.1.tgz", + "integrity": "sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@electron/asar/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@electron/get": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@electron/get/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@electron/notarize": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.5.0.tgz", + "integrity": "sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.1", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/notarize/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/notarize/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/notarize/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/osx-sign": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.3.1.tgz", + "integrity": "sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "compare-version": "^0.1.2", + "debug": "^4.3.4", + "fs-extra": "^10.0.0", + "isbinaryfile": "^4.0.8", + "minimist": "^1.2.6", + "plist": "^3.0.5" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@electron/osx-sign/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@electron/osx-sign/node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/@electron/osx-sign/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/osx-sign/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/rebuild": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.1.tgz", + "integrity": "sha512-f6596ZHpEq/YskUd8emYvOUne89ij8mQgjYFA5ru25QwbrRO+t1SImofdDv7kKOuWCmVOuU5tvfkbgGxIl3E/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@malept/cross-spawn-promise": "^2.0.0", + "chalk": "^4.0.0", + "debug": "^4.1.1", + "detect-libc": "^2.0.1", + "fs-extra": "^10.0.0", + "got": "^11.7.0", + "node-abi": "^3.45.0", + "node-api-version": "^0.2.0", + "node-gyp": "^9.0.0", + "ora": "^5.1.0", + "read-binary-file-arch": "^1.0.6", + "semver": "^7.3.5", + "tar": "^6.0.5", + "yargs": "^17.0.1" + }, + "bin": { + "electron-rebuild": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/@electron/rebuild/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@electron/rebuild/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/rebuild/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/universal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.1.tgz", + "integrity": "sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron/asar": "^3.2.7", + "@malept/cross-spawn-promise": "^2.0.0", + "debug": "^4.3.1", + "dir-compare": "^4.2.0", + "fs-extra": "^11.1.1", + "minimatch": "^9.0.3", + "plist": "^3.1.0" + }, + "engines": { + "node": ">=16.4" + } + }, + "node_modules/@electron/universal/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@electron/universal/node_modules/fs-extra": { + "version": "11.3.4", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@electron/universal/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/universal/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@electron/universal/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@expo/cli": { + "version": "54.0.23", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-54.0.23.tgz", + "integrity": "sha512-km0h72SFfQCmVycH/JtPFTVy69w6Lx1cHNDmfLfQqgKFYeeHTjx7LVDP4POHCtNxFP2UeRazrygJhlh4zz498g==", + "license": "MIT", + "dependencies": { + "@0no-co/graphql.web": "^1.0.8", + "@expo/code-signing-certificates": "^0.0.6", + "@expo/config": "~12.0.13", + "@expo/config-plugins": "~54.0.4", + "@expo/devcert": "^1.2.1", + "@expo/env": "~2.0.8", + "@expo/image-utils": "^0.8.8", + "@expo/json-file": "^10.0.8", + "@expo/metro": "~54.2.0", + "@expo/metro-config": "~54.0.14", + "@expo/osascript": "^2.3.8", + "@expo/package-manager": "^1.9.10", + "@expo/plist": "^0.4.8", + "@expo/prebuild-config": "^54.0.8", + "@expo/schema-utils": "^0.1.8", + "@expo/spawn-async": "^1.7.2", + "@expo/ws-tunnel": "^1.0.1", + "@expo/xcpretty": "^4.3.0", + "@react-native/dev-middleware": "0.81.5", + "@urql/core": "^5.0.6", + "@urql/exchange-retry": "^1.3.0", + "accepts": "^1.3.8", + "arg": "^5.0.2", + "better-opn": "~3.0.2", + "bplist-creator": "0.1.0", + "bplist-parser": "^0.3.1", + "chalk": "^4.0.0", + "ci-info": "^3.3.0", + "compression": "^1.7.4", + "connect": "^3.7.0", + "debug": "^4.3.4", + "env-editor": "^0.4.1", + "expo-server": "^1.0.5", + "freeport-async": "^2.0.0", + "getenv": "^2.0.0", + "glob": "^13.0.0", + "lan-network": "^0.1.6", + "minimatch": "^9.0.0", + "node-forge": "^1.3.3", + "npm-package-arg": "^11.0.0", + "ora": "^3.4.0", + "picomatch": "^3.0.1", + "pretty-bytes": "^5.6.0", + "pretty-format": "^29.7.0", + "progress": "^2.0.3", + "prompts": "^2.3.2", + "qrcode-terminal": "0.11.0", + "require-from-string": "^2.0.2", + "requireg": "^0.2.2", + "resolve": "^1.22.2", + "resolve-from": "^5.0.0", + "resolve.exports": "^2.0.3", + "semver": "^7.6.0", + "send": "^0.19.0", + "slugify": "^1.3.4", + "source-map-support": "~0.5.21", + "stacktrace-parser": "^0.1.10", + "structured-headers": "^0.4.1", + "tar": "^7.5.2", + "terminal-link": "^2.1.1", + "undici": "^6.18.2", + "wrap-ansi": "^7.0.0", + "ws": "^8.12.1" + }, + "bin": { + "expo-internal": "build/bin/cli" + }, + "peerDependencies": { + "expo": "*", + "expo-router": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "expo-router": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/@expo/cli/node_modules/@react-native/debugger-frontend": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.81.5.tgz", + "integrity": "sha512-bnd9FSdWKx2ncklOetCgrlwqSGhMHP2zOxObJbOWXoj7GHEmih4MKarBo5/a8gX8EfA1EwRATdfNBQ81DY+h+w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@expo/cli/node_modules/@react-native/dev-middleware": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.81.5.tgz", + "integrity": "sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA==", + "license": "MIT", + "dependencies": { + "@isaacs/ttlcache": "^1.4.1", + "@react-native/debugger-frontend": "0.81.5", + "chrome-launcher": "^0.15.2", + "chromium-edge-launcher": "^0.2.0", + "connect": "^3.6.5", + "debug": "^4.4.0", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "open": "^7.0.3", + "serve-static": "^1.16.2", + "ws": "^6.2.3" + }, + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@expo/cli/node_modules/@react-native/dev-middleware/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/@expo/cli/node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@expo/cli/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@expo/cli/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/cli/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@expo/cli/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@expo/cli/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/cli/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@expo/cli/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/@expo/cli/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@expo/cli/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/cli/node_modules/glob/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@expo/cli/node_modules/glob/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@expo/cli/node_modules/glob/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/cli/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/cli/node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "license": "MIT", + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/cli/node_modules/log-symbols/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/cli/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@expo/cli/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@expo/cli/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/cli/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/cli/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@expo/cli/node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@expo/cli/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@expo/cli/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/cli/node_modules/ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@expo/cli/node_modules/ora/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/cli/node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@expo/cli/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "license": "MIT", + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/cli/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@expo/cli/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/cli/node_modules/tar": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.9.tgz", + "integrity": "sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@expo/cli/node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@expo/cli/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@expo/code-signing-certificates": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.6.tgz", + "integrity": "sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w==", + "license": "MIT", + "dependencies": { + "node-forge": "^1.3.3" + } + }, + "node_modules/@expo/config": { + "version": "12.0.13", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-12.0.13.tgz", + "integrity": "sha512-Cu52arBa4vSaupIWsF0h7F/Cg//N374nYb7HAxV0I4KceKA7x2UXpYaHOL7EEYYvp7tZdThBjvGpVmr8ScIvaQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "~54.0.4", + "@expo/config-types": "^54.0.10", + "@expo/json-file": "^10.0.8", + "deepmerge": "^4.3.1", + "getenv": "^2.0.0", + "glob": "^13.0.0", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "resolve-workspace-root": "^2.0.0", + "semver": "^7.6.0", + "slugify": "^1.3.4", + "sucrase": "~3.35.1" + } + }, + "node_modules/@expo/config-plugins": { + "version": "54.0.4", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-54.0.4.tgz", + "integrity": "sha512-g2yXGICdoOw5i3LkQSDxl2Q5AlQCrG7oniu0pCPPO+UxGb7He4AFqSvPSy8HpRUj55io17hT62FTjYRD+d6j3Q==", + "license": "MIT", + "dependencies": { + "@expo/config-types": "^54.0.10", + "@expo/json-file": "~10.0.8", + "@expo/plist": "^0.4.8", + "@expo/sdk-runtime-versions": "^1.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.5", + "getenv": "^2.0.0", + "glob": "^13.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "slash": "^3.0.0", + "slugify": "^1.6.6", + "xcode": "^3.0.1", + "xml2js": "0.6.0" + } + }, + "node_modules/@expo/config-plugins/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@expo/config-plugins/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@expo/config-plugins/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/config-plugins/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/config-plugins/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@expo/config-types": { + "version": "54.0.10", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-54.0.10.tgz", + "integrity": "sha512-/J16SC2an1LdtCZ67xhSkGXpALYUVUNyZws7v+PVsFZxClYehDSoKLqyRaGkpHlYrCc08bS0RF5E0JV6g50psA==", + "license": "MIT" + }, + "node_modules/@expo/config/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@expo/config/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@expo/config/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@expo/config/node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@expo/config/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/config/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/config/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@expo/devcert": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.2.1.tgz", + "integrity": "sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA==", + "license": "MIT", + "dependencies": { + "@expo/sudo-prompt": "^9.3.1", + "debug": "^3.1.0" + } + }, + "node_modules/@expo/devcert/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@expo/devtools": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@expo/devtools/-/devtools-0.1.8.tgz", + "integrity": "sha512-SVLxbuanDjJPgc0sy3EfXUMLb/tXzp6XIHkhtPVmTWJAp+FOr6+5SeiCfJrCzZFet0Ifyke2vX3sFcKwEvCXwQ==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/@expo/env": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@expo/env/-/env-2.0.11.tgz", + "integrity": "sha512-xV+ps6YCW7XIPVUwFVCRN2nox09dnRwy8uIjwHWTODu0zFw4kp4omnVkl0OOjuu2XOe7tdgAHxikrkJt9xB/7Q==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "debug": "^4.3.4", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", + "getenv": "^2.0.0" + } + }, + "node_modules/@expo/env/node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/@expo/fingerprint": { + "version": "0.15.4", + "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.15.4.tgz", + "integrity": "sha512-eYlxcrGdR2/j2M6pEDXo9zU9KXXF1vhP+V+Tl+lyY+bU8lnzrN6c637mz6Ye3em2ANy8hhUR03Raf8VsT9Ogng==", + "license": "MIT", + "dependencies": { + "@expo/spawn-async": "^1.7.2", + "arg": "^5.0.2", + "chalk": "^4.1.2", + "debug": "^4.3.4", + "getenv": "^2.0.0", + "glob": "^13.0.0", + "ignore": "^5.3.1", + "minimatch": "^9.0.0", + "p-limit": "^3.1.0", + "resolve-from": "^5.0.0", + "semver": "^7.6.0" + }, + "bin": { + "fingerprint": "bin/cli.js" + } + }, + "node_modules/@expo/fingerprint/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@expo/fingerprint/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/fingerprint/node_modules/glob/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@expo/fingerprint/node_modules/glob/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@expo/fingerprint/node_modules/glob/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/fingerprint/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/fingerprint/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@expo/fingerprint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/image-utils": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.8.12.tgz", + "integrity": "sha512-3KguH7kyKqq7pNwLb9j6BBdD/bjmNwXZG/HPWT6GWIXbwrvAJt2JNyYTP5agWJ8jbbuys1yuCzmkX+TU6rmI7A==", + "license": "MIT", + "dependencies": { + "@expo/spawn-async": "^1.7.2", + "chalk": "^4.0.0", + "getenv": "^2.0.0", + "jimp-compact": "0.16.1", + "parse-png": "^2.1.0", + "resolve-from": "^5.0.0", + "semver": "^7.6.0" + } + }, + "node_modules/@expo/json-file": { + "version": "10.0.12", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-10.0.12.tgz", + "integrity": "sha512-inbDycp1rMAelAofg7h/mMzIe+Owx6F7pur3XdQ3EPTy00tme+4P6FWgHKUcjN8dBSrnbRNpSyh5/shzHyVCyQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.20.0", + "json5": "^2.2.3" + } + }, + "node_modules/@expo/metro": { + "version": "54.2.0", + "resolved": "https://registry.npmjs.org/@expo/metro/-/metro-54.2.0.tgz", + "integrity": "sha512-h68TNZPGsk6swMmLm9nRSnE2UXm48rWwgcbtAHVMikXvbxdS41NDHHeqg1rcQ9AbznDRp6SQVC2MVpDnsRKU1w==", + "license": "MIT", + "dependencies": { + "metro": "0.83.3", + "metro-babel-transformer": "0.83.3", + "metro-cache": "0.83.3", + "metro-cache-key": "0.83.3", + "metro-config": "0.83.3", + "metro-core": "0.83.3", + "metro-file-map": "0.83.3", + "metro-minify-terser": "0.83.3", + "metro-resolver": "0.83.3", + "metro-runtime": "0.83.3", + "metro-source-map": "0.83.3", + "metro-symbolicate": "0.83.3", + "metro-transform-plugins": "0.83.3", + "metro-transform-worker": "0.83.3" + } + }, + "node_modules/@expo/metro-config": { + "version": "54.0.14", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-54.0.14.tgz", + "integrity": "sha512-hxpLyDfOR4L23tJ9W1IbJJsG7k4lv2sotohBm/kTYyiG+pe1SYCAWsRmgk+H42o/wWf/HQjE5k45S5TomGLxNA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.20.0", + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.5", + "@expo/config": "~12.0.13", + "@expo/env": "~2.0.8", + "@expo/json-file": "~10.0.8", + "@expo/metro": "~54.2.0", + "@expo/spawn-async": "^1.7.2", + "browserslist": "^4.25.0", + "chalk": "^4.1.0", + "debug": "^4.3.2", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", + "getenv": "^2.0.0", + "glob": "^13.0.0", + "hermes-parser": "^0.29.1", + "jsc-safe-url": "^0.2.4", + "lightningcss": "^1.30.1", + "minimatch": "^9.0.0", + "postcss": "~8.4.32", + "resolve-from": "^5.0.0" + }, + "peerDependencies": { + "expo": "*" + }, + "peerDependenciesMeta": { + "expo": { + "optional": true + } + } + }, + "node_modules/@expo/metro-config/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@expo/metro-config/node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/@expo/metro-config/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/metro-config/node_modules/glob/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@expo/metro-config/node_modules/glob/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@expo/metro-config/node_modules/glob/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/metro-config/node_modules/hermes-estree": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz", + "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==", + "license": "MIT" + }, + "node_modules/@expo/metro-config/node_modules/hermes-parser": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz", + "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==", + "license": "MIT", + "dependencies": { + "hermes-estree": "0.29.1" + } + }, + "node_modules/@expo/metro-config/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/metro-config/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@expo/metro/node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@expo/metro/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "license": "MIT" + }, + "node_modules/@expo/metro/node_modules/metro": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.83.3.tgz", + "integrity": "sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.3", + "@babel/types": "^7.25.2", + "accepts": "^1.3.7", + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "connect": "^3.6.5", + "debug": "^4.4.0", + "error-stack-parser": "^2.0.6", + "flow-enums-runtime": "^0.0.6", + "graceful-fs": "^4.2.4", + "hermes-parser": "0.32.0", + "image-size": "^1.0.2", + "invariant": "^2.2.4", + "jest-worker": "^29.7.0", + "jsc-safe-url": "^0.2.2", + "lodash.throttle": "^4.1.1", + "metro-babel-transformer": "0.83.3", + "metro-cache": "0.83.3", + "metro-cache-key": "0.83.3", + "metro-config": "0.83.3", + "metro-core": "0.83.3", + "metro-file-map": "0.83.3", + "metro-resolver": "0.83.3", + "metro-runtime": "0.83.3", + "metro-source-map": "0.83.3", + "metro-symbolicate": "0.83.3", + "metro-transform-plugins": "0.83.3", + "metro-transform-worker": "0.83.3", + "mime-types": "^2.1.27", + "nullthrows": "^1.1.1", + "serialize-error": "^2.1.0", + "source-map": "^0.5.6", + "throat": "^5.0.0", + "ws": "^7.5.10", + "yargs": "^17.6.2" + }, + "bin": { + "metro": "src/cli.js" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/metro/node_modules/metro-babel-transformer": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.83.3.tgz", + "integrity": "sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "flow-enums-runtime": "^0.0.6", + "hermes-parser": "0.32.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/metro/node_modules/metro-cache": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.3.tgz", + "integrity": "sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q==", + "license": "MIT", + "dependencies": { + "exponential-backoff": "^3.1.1", + "flow-enums-runtime": "^0.0.6", + "https-proxy-agent": "^7.0.5", + "metro-core": "0.83.3" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/metro/node_modules/metro-cache-key": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.83.3.tgz", + "integrity": "sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw==", + "license": "MIT", + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/metro/node_modules/metro-config": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.83.3.tgz", + "integrity": "sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA==", + "license": "MIT", + "dependencies": { + "connect": "^3.6.5", + "flow-enums-runtime": "^0.0.6", + "jest-validate": "^29.7.0", + "metro": "0.83.3", + "metro-cache": "0.83.3", + "metro-core": "0.83.3", + "metro-runtime": "0.83.3", + "yaml": "^2.6.1" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/metro/node_modules/metro-core": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.83.3.tgz", + "integrity": "sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw==", + "license": "MIT", + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "lodash.throttle": "^4.1.1", + "metro-resolver": "0.83.3" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/metro/node_modules/metro-file-map": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.83.3.tgz", + "integrity": "sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "fb-watchman": "^2.0.0", + "flow-enums-runtime": "^0.0.6", + "graceful-fs": "^4.2.4", + "invariant": "^2.2.4", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "nullthrows": "^1.1.1", + "walker": "^1.0.7" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/metro/node_modules/metro-minify-terser": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.83.3.tgz", + "integrity": "sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ==", + "license": "MIT", + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "terser": "^5.15.0" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/metro/node_modules/metro-resolver": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.83.3.tgz", + "integrity": "sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ==", + "license": "MIT", + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/metro/node_modules/metro-runtime": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.3.tgz", + "integrity": "sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.0", + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/metro/node_modules/metro-source-map": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.3.tgz", + "integrity": "sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.3", + "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", + "@babel/types": "^7.25.2", + "flow-enums-runtime": "^0.0.6", + "invariant": "^2.2.4", + "metro-symbolicate": "0.83.3", + "nullthrows": "^1.1.1", + "ob1": "0.83.3", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/metro/node_modules/metro-symbolicate": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.83.3.tgz", + "integrity": "sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw==", + "license": "MIT", + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "invariant": "^2.2.4", + "metro-source-map": "0.83.3", + "nullthrows": "^1.1.1", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + }, + "bin": { + "metro-symbolicate": "src/index.js" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/metro/node_modules/metro-transform-plugins": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.83.3.tgz", + "integrity": "sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.3", + "flow-enums-runtime": "^0.0.6", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/metro/node_modules/metro-transform-worker": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.3.tgz", + "integrity": "sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/types": "^7.25.2", + "flow-enums-runtime": "^0.0.6", + "metro": "0.83.3", + "metro-babel-transformer": "0.83.3", + "metro-cache": "0.83.3", + "metro-cache-key": "0.83.3", + "metro-minify-terser": "0.83.3", + "metro-source-map": "0.83.3", + "metro-transform-plugins": "0.83.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/metro/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@expo/metro/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@expo/metro/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@expo/metro/node_modules/ob1": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.83.3.tgz", + "integrity": "sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==", + "license": "MIT", + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/@expo/osascript": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.4.2.tgz", + "integrity": "sha512-/XP7PSYF2hzOZzqfjgkoWtllyeTN8dW3aM4P6YgKcmmPikKL5FdoyQhti4eh6RK5a5VrUXJTOlTNIpIHsfB5Iw==", + "license": "MIT", + "dependencies": { + "@expo/spawn-async": "^1.7.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@expo/package-manager": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.10.3.tgz", + "integrity": "sha512-ZuXiK/9fCrIuLjPSe1VYmfp0Sa85kCMwd8QQpgyi5ufppYKRtLBg14QOgUqj8ZMbJTxE0xqzd0XR7kOs3vAK9A==", + "license": "MIT", + "dependencies": { + "@expo/json-file": "^10.0.12", + "@expo/spawn-async": "^1.7.2", + "chalk": "^4.0.0", + "npm-package-arg": "^11.0.0", + "ora": "^3.4.0", + "resolve-workspace-root": "^2.0.0" + } + }, + "node_modules/@expo/package-manager/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@expo/package-manager/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/package-manager/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/package-manager/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@expo/package-manager/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/@expo/package-manager/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@expo/package-manager/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/package-manager/node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "license": "MIT", + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/package-manager/node_modules/log-symbols/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/package-manager/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/package-manager/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/package-manager/node_modules/ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@expo/package-manager/node_modules/ora/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/package-manager/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "license": "MIT", + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/package-manager/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@expo/package-manager/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/plist": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.4.8.tgz", + "integrity": "sha512-pfNtErGGzzRwHP+5+RqswzPDKkZrx+Cli0mzjQaus1ZWFsog5ibL+nVT3NcporW51o8ggnt7x813vtRbPiyOrQ==", + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.2.3", + "xmlbuilder": "^15.1.1" + } + }, + "node_modules/@expo/prebuild-config": { + "version": "54.0.8", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-54.0.8.tgz", + "integrity": "sha512-EA7N4dloty2t5Rde+HP0IEE+nkAQiu4A/+QGZGT9mFnZ5KKjPPkqSyYcRvP5bhQE10D+tvz6X0ngZpulbMdbsg==", + "license": "MIT", + "dependencies": { + "@expo/config": "~12.0.13", + "@expo/config-plugins": "~54.0.4", + "@expo/config-types": "^54.0.10", + "@expo/image-utils": "^0.8.8", + "@expo/json-file": "^10.0.8", + "@react-native/normalize-colors": "0.81.5", + "debug": "^4.3.1", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "xml2js": "0.6.0" + }, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/@expo/prebuild-config/node_modules/@react-native/normalize-colors": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.81.5.tgz", + "integrity": "sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g==", + "license": "MIT" + }, + "node_modules/@expo/schema-utils": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@expo/schema-utils/-/schema-utils-0.1.8.tgz", + "integrity": "sha512-9I6ZqvnAvKKDiO+ZF8BpQQFYWXOJvTAL5L/227RUbWG1OVZDInFifzCBiqAZ3b67NRfeAgpgvbA7rejsqhY62A==", + "license": "MIT" + }, + "node_modules/@expo/sdk-runtime-versions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", + "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==", + "license": "MIT" + }, + "node_modules/@expo/spawn-async": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz", + "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@expo/sudo-prompt": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@expo/sudo-prompt/-/sudo-prompt-9.3.2.tgz", + "integrity": "sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==", + "license": "MIT" + }, + "node_modules/@expo/vector-icons": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-15.1.1.tgz", + "integrity": "sha512-Iu2VkcoI5vygbtYngm7jb4ifxElNVXQYdDrYkT7UCEIiKLeWnQY0wf2ZhHZ+Wro6Sc5TaumpKUOqDRpLi5rkvw==", + "license": "MIT", + "peerDependencies": { + "expo-font": ">=14.0.4", + "react": "*", + "react-native": "*" + } + }, + "node_modules/@expo/ws-tunnel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@expo/ws-tunnel/-/ws-tunnel-1.0.6.tgz", + "integrity": "sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q==", + "license": "MIT" + }, + "node_modules/@expo/xcpretty": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.4.1.tgz", + "integrity": "sha512-KZNxZvnGCtiM2aYYZ6Wz0Ix5r47dAvpNLApFtZWnSoERzAdOMzVBOPysBoM0JlF6FKWZ8GPqgn6qt3dV/8Zlpg==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/code-frame": "^7.20.0", + "chalk": "^4.1.0", + "js-yaml": "^4.1.0" + }, + "bin": { + "excpretty": "build/cli.js" + } + }, + "node_modules/@expo/xcpretty/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/@expo/xcpretty/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@hapi/address": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-5.1.1.tgz", + "integrity": "sha512-A+po2d/dVoY7cYajycYI43ZbYMXukuopIsqCjh5QzsBCipDtdofHntljDlpccMjIfTy6UOkg+5KPriwYch2bXA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^11.0.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@hapi/formula": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-3.0.2.tgz", + "integrity": "sha512-hY5YPNXzw1He7s0iqkRQi+uMGh383CGdyyIGYtB+W5N3KHPXoqychklvHhKCC9M3Xtv0OCs/IHw+r4dcHtBYWw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/hoek": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-11.0.7.tgz", + "integrity": "sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/pinpoint": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.1.tgz", + "integrity": "sha512-EKQmr16tM8s16vTT3cA5L0kZZcTMU5DUOZTuvpnY738m+jyP3JIUj+Mm1xc1rsLkGBQ/gVnfKYPwOmPg1tUR4Q==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/tlds": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@hapi/tlds/-/tlds-1.1.6.tgz", + "integrity": "sha512-xdi7A/4NZokvV0ewovme3aUO5kQhW9pQ2YD1hRqZGhhSi5rBv4usHYidVocXSi9eihYsznZxLtAiEYYUL6VBGw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@hapi/topo": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-6.0.2.tgz", + "integrity": "sha512-KR3rD5inZbGMrHmgPxsJ9dbi6zEK+C3ZwUwTa+eMwWLz7oijWUTWD2pMSNNYJAU6Qq+65NkxXjqHr/7LM2Xkqg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^11.0.2" + } + }, "node_modules/@inquirer/external-editor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", @@ -816,12 +4487,135 @@ } } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@isaacs/fs-minipass/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/@isaacs/ttlcache": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==", "license": "ISC", - "peer": true, "engines": { "node": ">=12" } @@ -831,7 +4625,6 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "license": "ISC", - "peer": true, "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -848,7 +4641,6 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -858,7 +4650,6 @@ "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^29.6.3" }, @@ -871,7 +4662,6 @@ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "license": "MIT", - "peer": true, "dependencies": { "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", @@ -887,7 +4677,6 @@ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", @@ -905,7 +4694,6 @@ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "license": "MIT", - "peer": true, "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -918,7 +4706,6 @@ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", @@ -945,7 +4732,6 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -963,7 +4749,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" @@ -974,7 +4759,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -985,7 +4769,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "license": "MIT", - "peer": true, "engines": { "node": ">=6.0.0" } @@ -995,7 +4778,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" @@ -1005,20 +4787,96 @@ "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.31", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/@manypkg/find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", @@ -1129,6 +4987,46 @@ "node": ">= 8" } }, + "node_modules/@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@react-native/assets-registry": { "version": "0.84.1", "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.84.1.tgz", @@ -1139,6 +5037,138 @@ "node": ">= 20.19.4" } }, + "node_modules/@react-native/babel-plugin-codegen": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.81.5.tgz", + "integrity": "sha512-oF71cIH6je3fSLi6VPjjC3Sgyyn57JLHXs+mHWc9MoCiJJcM4nqsS5J38zv1XQ8d3zOW2JtHro+LF0tagj2bfQ==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.3", + "@react-native/codegen": "0.81.5" + }, + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@react-native/babel-plugin-codegen/node_modules/@react-native/codegen": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.81.5.tgz", + "integrity": "sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/parser": "^7.25.3", + "glob": "^7.1.1", + "hermes-parser": "0.29.1", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "yargs": "^17.6.2" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/@react-native/babel-plugin-codegen/node_modules/hermes-estree": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz", + "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==", + "license": "MIT" + }, + "node_modules/@react-native/babel-plugin-codegen/node_modules/hermes-parser": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz", + "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==", + "license": "MIT", + "dependencies": { + "hermes-estree": "0.29.1" + } + }, + "node_modules/@react-native/babel-preset": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.81.5.tgz", + "integrity": "sha512-UoI/x/5tCmi+pZ3c1+Ypr1DaRMDLI3y+Q70pVLLVgrnC3DHsHRIbHcCHIeG/IJvoeFqFM2sTdhSOLJrf8lOPrA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/plugin-proposal-export-default-from": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-default-from": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.4", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-classes": "^7.25.4", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-flow-strip-types": "^7.25.2", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.25.2", + "@babel/plugin-transform-react-jsx-self": "^7.24.7", + "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-runtime": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.25.2", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/template": "^7.25.0", + "@react-native/babel-plugin-codegen": "0.81.5", + "babel-plugin-syntax-hermes-parser": "0.29.1", + "babel-plugin-transform-flow-enums": "^0.0.2", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/@react-native/babel-preset/node_modules/babel-plugin-syntax-hermes-parser": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.29.1.tgz", + "integrity": "sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA==", + "license": "MIT", + "dependencies": { + "hermes-parser": "0.29.1" + } + }, + "node_modules/@react-native/babel-preset/node_modules/hermes-estree": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz", + "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==", + "license": "MIT" + }, + "node_modules/@react-native/babel-preset/node_modules/hermes-parser": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz", + "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==", + "license": "MIT", + "dependencies": { + "hermes-estree": "0.29.1" + } + }, "node_modules/@react-native/codegen": { "version": "0.84.1", "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.84.1.tgz", @@ -1292,19 +5322,499 @@ } } }, + "node_modules/@react-navigation/core": { + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.16.1.tgz", + "integrity": "sha512-xhquoyhKdqDfiL7LuupbwYnmauUGfVFGDEJO34m26k8zSN1eDjQ2stBZcHN8ILOI1PrG9885nf8ZmfaQxPS0ww==", + "license": "MIT", + "dependencies": { + "@react-navigation/routers": "^7.5.3", + "escape-string-regexp": "^4.0.0", + "fast-deep-equal": "^3.1.3", + "nanoid": "^3.3.11", + "query-string": "^7.1.3", + "react-is": "^19.1.0", + "use-latest-callback": "^0.2.4", + "use-sync-external-store": "^1.5.0" + }, + "peerDependencies": { + "react": ">= 18.2.0" + } + }, + "node_modules/@react-navigation/core/node_modules/react-is": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.4.tgz", + "integrity": "sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA==", + "license": "MIT" + }, + "node_modules/@react-navigation/elements": { + "version": "2.9.10", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.9.10.tgz", + "integrity": "sha512-N8tuBekzTRb0pkMHFJGvmC6Q5OisSbt6gzvw7RHMnp4NDo5auVllT12sWFaTXf8mTduaLKNSrD/NZNaOqThCBg==", + "license": "MIT", + "dependencies": { + "color": "^4.2.3", + "use-latest-callback": "^0.2.4", + "use-sync-external-store": "^1.5.0" + }, + "peerDependencies": { + "@react-native-masked-view/masked-view": ">= 0.2.0", + "@react-navigation/native": "^7.1.33", + "react": ">= 18.2.0", + "react-native": "*", + "react-native-safe-area-context": ">= 4.0.0" + }, + "peerDependenciesMeta": { + "@react-native-masked-view/masked-view": { + "optional": true + } + } + }, + "node_modules/@react-navigation/elements/node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/@react-navigation/native": { + "version": "7.1.33", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.1.33.tgz", + "integrity": "sha512-DpFdWGcgLajKZ1TuIvDNQsblN2QaUFWpTQaB8v7WRP9Mix8H/6TFoIrZd93pbymI2hybd6UYrD+lI408eWVcfw==", + "license": "MIT", + "dependencies": { + "@react-navigation/core": "^7.16.1", + "escape-string-regexp": "^4.0.0", + "fast-deep-equal": "^3.1.3", + "nanoid": "^3.3.11", + "use-latest-callback": "^0.2.4" + }, + "peerDependencies": { + "react": ">= 18.2.0", + "react-native": "*" + } + }, + "node_modules/@react-navigation/native-stack": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.14.4.tgz", + "integrity": "sha512-HFEnM5Q7JY3FmmiolD/zvgY+9sxZAyVGPZJoz7BdTvJmi1VHOdplf24YiH45mqeitlGnaOlvNT55rH4abHJ5eA==", + "license": "MIT", + "dependencies": { + "@react-navigation/elements": "^2.9.10", + "color": "^4.2.3", + "sf-symbols-typescript": "^2.1.0", + "warn-once": "^0.1.1" + }, + "peerDependencies": { + "@react-navigation/native": "^7.1.33", + "react": ">= 18.2.0", + "react-native": "*", + "react-native-safe-area-context": ">= 4.0.0", + "react-native-screens": ">= 4.0.0" + } + }, + "node_modules/@react-navigation/native-stack/node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/@react-navigation/routers": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.5.3.tgz", + "integrity": "sha512-1tJHg4KKRJuQ1/EvJxatrMef3NZXEPzwUIUZ3n1yJ2t7Q97siwRtbynRpQG9/69ebbtiZ8W3ScOZF/OmhvM4Rg==", + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", + "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", + "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", + "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", + "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", + "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", + "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", + "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", + "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", + "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", + "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", + "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", + "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", + "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", + "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", + "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", + "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", + "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", + "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", + "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", + "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", + "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", + "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", + "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", + "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", + "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@sinclair/typebox": { "version": "0.27.10", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, "license": "MIT", - "peer": true + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } }, "node_modules/@sinonjs/commons": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "license": "BSD-3-Clause", - "peer": true, "dependencies": { "type-detect": "4.0.8" } @@ -1314,17 +5824,45 @@ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "license": "BSD-3-Clause", - "peer": true, "dependencies": { "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -1338,7 +5876,6 @@ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "license": "MIT", - "peer": true, "dependencies": { "@babel/types": "^7.0.0" } @@ -1348,7 +5885,6 @@ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -1359,34 +5895,77 @@ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "license": "MIT", - "peer": true, "dependencies": { "@babel/types": "^7.28.2" } }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/node": "*" } }, + "node_modules/@types/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "license": "MIT", - "peer": true, "dependencies": { "@types/istanbul-lib-coverage": "*" } @@ -1396,11 +5975,27 @@ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/istanbul-lib-report": "*" } }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { "version": "25.3.3", "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.3.tgz", @@ -1410,6 +6005,18 @@ "undici-types": "~7.18.0" } }, + "node_modules/@types/plist": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.5.tgz", + "integrity": "sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + } + }, "node_modules/@types/react": { "version": "19.2.14", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", @@ -1445,19 +6052,35 @@ "react-native": "*" } }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "license": "MIT" + }, + "node_modules/@types/verror": { + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.11.tgz", + "integrity": "sha512-RlDm9K7+o5stv0Co8i8ZRGxDbrTxhJtgjqjFyVh/tXQyl/rYtTKlnTvZ88oSTeYREWurwx20Js4kTuKCsFkUtg==", + "dev": true, "license": "MIT", - "peer": true + "optional": true }, "node_modules/@types/yargs": { "version": "17.0.35", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", "license": "MIT", - "peer": true, "dependencies": { "@types/yargs-parser": "*" } @@ -1466,15 +6089,76 @@ "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, "license": "MIT", - "peer": true + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/@urql/core": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@urql/core/-/core-5.2.0.tgz", + "integrity": "sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==", + "license": "MIT", + "dependencies": { + "@0no-co/graphql.web": "^1.0.13", + "wonka": "^6.3.2" + } + }, + "node_modules/@urql/exchange-retry": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-1.3.2.tgz", + "integrity": "sha512-TQMCz2pFJMfpNxmSfX1VSfTjwUIFx/mL+p1bnfM1xjjdla7Z+KnGMW/EhFbpckp3LyWAH4PgOsMwOMnIN+MBFg==", + "license": "MIT", + "dependencies": { + "@urql/core": "^5.1.2", + "wonka": "^6.3.2" + }, + "peerDependencies": { + "@urql/core": "^5.0.0" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", + "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/7zip-bin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz", + "integrity": "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true, + "license": "ISC" }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "license": "MIT", - "peer": true, "dependencies": { "event-target-shim": "^5.0.0" }, @@ -1487,7 +6171,6 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", "license": "MIT", - "peer": true, "dependencies": { "mime-types": "^3.0.0", "negotiator": "^1.0.0" @@ -1501,7 +6184,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1514,17 +6196,69 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "license": "MIT", - "peer": true, "engines": { "node": ">= 14" } }, + "node_modules/agentkeepalive": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, "node_modules/anser": { "version": "1.4.10", "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/ansi-colors": { "version": "4.1.3", @@ -1536,6 +6270,33 @@ "node": ">=6" } }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1550,7 +6311,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -1561,12 +6321,17 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "license": "ISC", - "peer": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1575,6 +6340,265 @@ "node": ">= 8" } }, + "node_modules/app-builder-bin": { + "version": "5.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-5.0.0-alpha.10.tgz", + "integrity": "sha512-Ev4jj3D7Bo+O0GPD2NMvJl+PGiBAfS7pUGawntBNpCbxtpncfUixqFj9z9Jme7V7s3LBGqsWZZP54fxBX3JKJw==", + "dev": true, + "license": "MIT" + }, + "node_modules/app-builder-lib": { + "version": "25.1.8", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-25.1.8.tgz", + "integrity": "sha512-pCqe7dfsQFBABC1jeKZXQWhGcCPF3rPCXDdfqVKjIeWBcXzyC1iOWZdfFhGl+S9MyE/k//DFmC6FzuGAUudNDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@develar/schema-utils": "~2.6.5", + "@electron/notarize": "2.5.0", + "@electron/osx-sign": "1.3.1", + "@electron/rebuild": "3.6.1", + "@electron/universal": "2.0.1", + "@malept/flatpak-bundler": "^0.4.0", + "@types/fs-extra": "9.0.13", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "25.1.7", + "builder-util-runtime": "9.2.10", + "chromium-pickle-js": "^0.2.0", + "config-file-ts": "0.2.8-rc1", + "debug": "^4.3.4", + "dotenv": "^16.4.5", + "dotenv-expand": "^11.0.6", + "ejs": "^3.1.8", + "electron-publish": "25.1.7", + "form-data": "^4.0.0", + "fs-extra": "^10.1.0", + "hosted-git-info": "^4.1.0", + "is-ci": "^3.0.0", + "isbinaryfile": "^5.0.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.3", + "lazy-val": "^1.0.5", + "minimatch": "^10.0.0", + "resedit": "^1.7.0", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.8", + "tar": "^6.1.12", + "temp-file": "^3.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "dmg-builder": "25.1.8", + "electron-builder-squirrel-windows": "25.1.8" + } + }, + "node_modules/app-builder-lib/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/app-builder-lib/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/app-builder-lib/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/app-builder-lib/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/app-builder-lib/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/app-builder-lib/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/app-builder-lib/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/app-builder-lib/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aproba": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.1.0.tgz", + "integrity": "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==", + "dev": true, + "license": "ISC" + }, + "node_modules/archiver": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", + "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^3.2.4", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/archiver-utils/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -1598,15 +6622,87 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, "license": "MIT", - "peer": true + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/axios": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.6.tgz", + "integrity": "sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", + "proxy-from-env": "^1.1.0" + } }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "license": "MIT", - "peer": true, "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", @@ -1628,7 +6724,6 @@ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "license": "BSD-3-Clause", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -1645,7 +6740,6 @@ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "license": "MIT", - "peer": true, "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -1656,6 +6750,69 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.15.tgz", + "integrity": "sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.6", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.6.tgz", + "integrity": "sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.6" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-react-compiler": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-1.0.0.tgz", + "integrity": "sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + } + }, + "node_modules/babel-plugin-react-native-web": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.21.2.tgz", + "integrity": "sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA==", + "license": "MIT" + }, "node_modules/babel-plugin-syntax-hermes-parser": { "version": "0.32.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.32.0.tgz", @@ -1666,12 +6823,20 @@ "hermes-parser": "0.32.0" } }, + "node_modules/babel-plugin-transform-flow-enums": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz", + "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-flow": "^7.12.1" + } + }, "node_modules/babel-preset-current-node-syntax": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", "license": "MIT", - "peer": true, "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -1693,12 +6858,78 @@ "@babel/core": "^7.0.0 || ^8.0.0-0" } }, + "node_modules/babel-preset-expo": { + "version": "54.0.10", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-54.0.10.tgz", + "integrity": "sha512-wTt7POavLFypLcPW/uC5v8y+mtQKDJiyGLzYCjqr9tx0Qc3vCXcDKk1iCFIj/++Iy5CWhhTflEa7VvVPNWeCfw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/plugin-proposal-decorators": "^7.12.9", + "@babel/plugin-proposal-export-default-from": "^7.24.7", + "@babel/plugin-syntax-export-default-from": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-flow-strip-types": "^7.25.2", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-runtime": "^7.24.7", + "@babel/preset-react": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", + "@react-native/babel-preset": "0.81.5", + "babel-plugin-react-compiler": "^1.0.0", + "babel-plugin-react-native-web": "~0.21.0", + "babel-plugin-syntax-hermes-parser": "^0.29.1", + "babel-plugin-transform-flow-enums": "^0.0.2", + "debug": "^4.3.4", + "resolve-from": "^5.0.0" + }, + "peerDependencies": { + "@babel/runtime": "^7.20.0", + "expo": "*", + "react-refresh": ">=0.14.0 <1.0.0" + }, + "peerDependenciesMeta": { + "@babel/runtime": { + "optional": true + }, + "expo": { + "optional": true + } + } + }, + "node_modules/babel-preset-expo/node_modules/babel-plugin-syntax-hermes-parser": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.29.1.tgz", + "integrity": "sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA==", + "license": "MIT", + "dependencies": { + "hermes-parser": "0.29.1" + } + }, + "node_modules/babel-preset-expo/node_modules/hermes-estree": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz", + "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==", + "license": "MIT" + }, + "node_modules/babel-preset-expo/node_modules/hermes-parser": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz", + "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==", + "license": "MIT", + "dependencies": { + "hermes-estree": "0.29.1" + } + }, "node_modules/babel-preset-jest": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "license": "MIT", - "peer": true, "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" @@ -1714,8 +6945,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", @@ -1735,15 +6965,13 @@ "url": "https://feross.org/support" } ], - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/baseline-browser-mapping": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz", "integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==", "license": "Apache-2.0", - "peer": true, "bin": { "baseline-browser-mapping": "dist/cli.cjs" }, @@ -1751,6 +6979,35 @@ "node": ">=6.0.0" } }, + "node_modules/better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "license": "MIT", + "dependencies": { + "open": "^8.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/better-opn/node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/better-path-resolve": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", @@ -1764,19 +7021,85 @@ "node": ">=4" } }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "license": "Unlicense", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/bluebird-lst": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bluebird": "^3.5.5" + } + }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true, "license": "ISC" }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/bplist-creator": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", + "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==", + "license": "MIT", + "dependencies": { + "stream-buffers": "2.2.x" + } + }, + "node_modules/bplist-parser": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", + "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", + "license": "MIT", + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" + } + }, "node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "license": "MIT", - "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1813,7 +7136,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -1833,24 +7155,304 @@ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "license": "Apache-2.0", - "peer": true, "dependencies": { "node-int64": "^0.4.0" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/builder-util": { + "version": "25.1.7", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-25.1.7.tgz", + "integrity": "sha512-7jPjzBwEGRbwNcep0gGNpLXG9P94VA3CPAZQCzxkFXiV2GMQKlziMbY//rXPI7WKfhsvGgFXjTcXdBEwgXw9ww==", + "dev": true, "license": "MIT", - "peer": true + "dependencies": { + "@types/debug": "^4.1.6", + "7zip-bin": "~5.2.0", + "app-builder-bin": "5.0.0-alpha.10", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "9.2.10", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "debug": "^4.3.4", + "fs-extra": "^10.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "is-ci": "^3.0.0", + "js-yaml": "^4.1.0", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.4.0" + } + }, + "node_modules/builder-util-runtime": { + "version": "9.2.10", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.10.tgz", + "integrity": "sha512-6p/gfG1RJSQeIbz8TK5aPNkoztgY1q5TgmGFMAXcY8itsGW6Y2ld1ALsZ5UJn8rog7hKF3zHx5iQbNQ8uLcRlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/builder-util/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/builder-util/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/builder-util/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/builder-util/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/builder-util/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "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", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -1873,15 +7475,13 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "CC-BY-4.0", - "peer": true + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1900,12 +7500,21 @@ "dev": true, "license": "MIT" }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/chrome-launcher": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", @@ -1924,7 +7533,6 @@ "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz", "integrity": "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", @@ -1934,6 +7542,13 @@ "rimraf": "^3.0.2" } }, + "node_modules/chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", + "dev": true, + "license": "MIT" + }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -1945,17 +7560,68 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=8" } }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "license": "ISC", - "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -1965,11 +7631,32 @@ "node": ">=12" } }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/color": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^1.9.3", @@ -1981,7 +7668,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", - "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -1999,18 +7685,26 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, "node_modules/color/node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "1.1.3" @@ -2020,32 +7714,256 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, "license": "MIT" }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "license": "MIT", - "peer": true, "engines": { "node": ">=18" } }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/compress-commons": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", + "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/compression/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/concurrently": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz", + "integrity": "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==", + "dev": true, "license": "MIT", - "peer": true + "dependencies": { + "chalk": "4.1.2", + "rxjs": "7.8.2", + "shell-quote": "1.8.3", + "supports-color": "8.1.1", + "tree-kill": "1.2.2", + "yargs": "17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/config-file-ts": { + "version": "0.2.8-rc1", + "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.8-rc1.tgz", + "integrity": "sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^10.3.12", + "typescript": "^5.4.3" + } + }, + "node_modules/config-file-ts/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/config-file-ts/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "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", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/config-file-ts/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/config-file-ts/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/config-file-ts/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/config-file-ts/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "license": "MIT", - "peer": true, "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", @@ -2061,7 +7979,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "license": "MIT", - "peer": true, "dependencies": { "ms": "2.0.0" } @@ -2070,15 +7987,80 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT", - "peer": true + "license": "MIT" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true, + "license": "ISC" }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/core-js-compat": { + "version": "3.48.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.48.0.tgz", + "integrity": "sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==", "license": "MIT", - "peer": true + "dependencies": { + "browserslist": "^4.28.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", + "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" + } }, "node_modules/cross-spawn": { "version": "7.0.6", @@ -2098,7 +8080,6 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", @@ -2115,7 +8096,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, "license": "MIT", "dependencies": { "mdn-data": "2.0.14", @@ -2129,7 +8109,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -2139,7 +8118,6 @@ "version": "6.2.2", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">= 6" @@ -2160,7 +8138,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", - "peer": true, "dependencies": { "ms": "^2.1.3" }, @@ -2173,22 +8150,153 @@ } } }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/deepmerge": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz", "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true, + "license": "MIT" + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.8" } @@ -2198,7 +8306,6 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -2214,6 +8321,50 @@ "node": ">=8" } }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/dir-compare": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-4.2.0.tgz", + "integrity": "sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.5", + "p-limit": "^3.1.0 " + } + }, + "node_modules/dir-compare/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -2227,11 +8378,126 @@ "node": ">=8" } }, + "node_modules/dmg-builder": { + "version": "25.1.8", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-25.1.8.tgz", + "integrity": "sha512-NoXo6Liy2heSklTI5OIZbCgXC1RzrDQsZkeEwXhdOro3FT1VBOvbubvscdPnjVuQ4AMwwv61oaH96AbiYg9EnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "25.1.8", + "builder-util": "25.1.7", + "builder-util-runtime": "9.2.10", + "fs-extra": "^10.1.0", + "iconv-lite": "^0.6.2", + "js-yaml": "^4.1.0" + }, + "optionalDependencies": { + "dmg-license": "^1.0.11" + } + }, + "node_modules/dmg-builder/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/dmg-builder/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dmg-builder/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dmg-builder/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/dmg-builder/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/dmg-builder/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/dmg-license": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", + "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "@types/plist": "^3.0.1", + "@types/verror": "^1.10.3", + "ajv": "^6.10.0", + "crc": "^3.8.0", + "iconv-corefoundation": "^1.1.7", + "plist": "^3.0.4", + "smart-buffer": "^4.0.2", + "verror": "^1.10.0" + }, + "bin": { + "dmg-license": "bin/dmg-license.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", @@ -2246,7 +8512,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, "funding": [ { "type": "github", @@ -2259,7 +8524,6 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" @@ -2275,7 +8539,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", @@ -2286,37 +8549,355 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", + "license": "BSD-2-Clause", + "dependencies": { + "dotenv": "^16.4.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron": { + "version": "33.4.11", + "resolved": "https://registry.npmjs.org/electron/-/electron-33.4.11.tgz", + "integrity": "sha512-xmdAs5QWRkInC7TpXGNvzo/7exojubk+72jn1oJL7keNeIlw7xNglf8TGtJtkR4rWC5FJq0oXiIXPS9BcK2Irg==", + "dev": true, + "hasInstallScript": true, "license": "MIT", - "peer": true + "dependencies": { + "@electron/get": "^2.0.0", + "@types/node": "^20.9.0", + "extract-zip": "^2.0.1" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 12.20.55" + } + }, + "node_modules/electron-builder": { + "version": "25.1.8", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-25.1.8.tgz", + "integrity": "sha512-poRgAtUHHOnlzZnc9PK4nzG53xh74wj2Jy7jkTrqZ0MWPoHGh1M2+C//hGeYdA+4K8w4yiVCNYoLXF7ySj2Wig==", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "25.1.8", + "builder-util": "25.1.7", + "builder-util-runtime": "9.2.10", + "chalk": "^4.1.2", + "dmg-builder": "25.1.8", + "fs-extra": "^10.1.0", + "is-ci": "^3.0.0", + "lazy-val": "^1.0.5", + "simple-update-notifier": "2.0.0", + "yargs": "^17.6.2" + }, + "bin": { + "electron-builder": "cli.js", + "install-app-deps": "install-app-deps.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/electron-builder-squirrel-windows": { + "version": "25.1.8", + "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-25.1.8.tgz", + "integrity": "sha512-2ntkJ+9+0GFP6nAISiMabKt6eqBB0kX1QqHNWFWAXgi0VULKGisM46luRFpIBiU3u/TDmhZMM8tzvo2Abn3ayg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "app-builder-lib": "25.1.8", + "archiver": "^5.3.1", + "builder-util": "25.1.7", + "fs-extra": "^10.1.0" + } + }, + "node_modules/electron-builder-squirrel-windows/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder-squirrel-windows/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-builder-squirrel-windows/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-builder/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-builder/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-publish": { + "version": "25.1.7", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-25.1.7.tgz", + "integrity": "sha512-+jbTkR9m39eDBMP4gfbqglDd6UvBC7RLh5Y0MhFSsc6UkGHj9Vj9TWobxevHYMMqmoujL11ZLjfPpMX+Pt6YEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/fs-extra": "^9.0.11", + "builder-util": "25.1.7", + "builder-util-runtime": "9.2.10", + "chalk": "^4.1.2", + "fs-extra": "^10.1.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + } + }, + "node_modules/electron-publish/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-publish/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-publish/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/electron-publish/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } }, "node_modules/electron-to-chromium": { "version": "1.5.307", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.307.tgz", "integrity": "sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==", - "license": "ISC", - "peer": true + "license": "ISC" + }, + "node_modules/electron/node_modules/@types/node": { + "version": "20.19.35", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.35.tgz", + "integrity": "sha512-Uarfe6J91b9HAUXxjvSOdiO2UPOKLm07Q1oh0JHxoZ1y8HoqxDAu3gVrsrOHeiio0kSsoVBt4wFrKOm0dKxVPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/electron/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.8" } }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/enquirer": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", @@ -2335,7 +8916,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.12" @@ -2344,22 +8924,145 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-editor": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", + "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true, + "license": "MIT" + }, "node_modules/error-stack-parser": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", "license": "MIT", - "peer": true, "dependencies": { "stackframe": "^1.3.4" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -2368,15 +9071,13 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -2402,7 +9103,6 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.6" } @@ -2412,17 +9112,190 @@ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=6" } }, + "node_modules/expo": { + "version": "54.0.33", + "resolved": "https://registry.npmjs.org/expo/-/expo-54.0.33.tgz", + "integrity": "sha512-3yOEfAKqo+gqHcV8vKcnq0uA5zxlohnhA3fu4G43likN8ct5ZZ3LjAh9wDdKteEkoad3tFPvwxmXW711S5OHUw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.0", + "@expo/cli": "54.0.23", + "@expo/config": "~12.0.13", + "@expo/config-plugins": "~54.0.4", + "@expo/devtools": "0.1.8", + "@expo/fingerprint": "0.15.4", + "@expo/metro": "~54.2.0", + "@expo/metro-config": "54.0.14", + "@expo/vector-icons": "^15.0.3", + "@ungap/structured-clone": "^1.3.0", + "babel-preset-expo": "~54.0.10", + "expo-asset": "~12.0.12", + "expo-constants": "~18.0.13", + "expo-file-system": "~19.0.21", + "expo-font": "~14.0.11", + "expo-keep-awake": "~15.0.8", + "expo-modules-autolinking": "3.0.24", + "expo-modules-core": "3.0.29", + "pretty-format": "^29.7.0", + "react-refresh": "^0.14.2", + "whatwg-url-without-unicode": "8.0.0-3" + }, + "bin": { + "expo": "bin/cli", + "expo-modules-autolinking": "bin/autolinking", + "fingerprint": "bin/fingerprint" + }, + "peerDependencies": { + "@expo/dom-webview": "*", + "@expo/metro-runtime": "*", + "react": "*", + "react-native": "*", + "react-native-webview": "*" + }, + "peerDependenciesMeta": { + "@expo/dom-webview": { + "optional": true + }, + "@expo/metro-runtime": { + "optional": true + }, + "react-native-webview": { + "optional": true + } + } + }, + "node_modules/expo-asset": { + "version": "12.0.12", + "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-12.0.12.tgz", + "integrity": "sha512-CsXFCQbx2fElSMn0lyTdRIyKlSXOal6ilLJd+yeZ6xaC7I9AICQgscY5nj0QcwgA+KYYCCEQEBndMsmj7drOWQ==", + "license": "MIT", + "dependencies": { + "@expo/image-utils": "^0.8.8", + "expo-constants": "~18.0.12" + }, + "peerDependencies": { + "expo": "*", + "react": "*", + "react-native": "*" + } + }, + "node_modules/expo-constants": { + "version": "18.0.13", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-18.0.13.tgz", + "integrity": "sha512-FnZn12E1dRYKDHlAdIyNFhBurKTS3F9CrfrBDJI5m3D7U17KBHMQ6JEfYlSj7LG7t+Ulr+IKaj58L1k5gBwTcQ==", + "license": "MIT", + "dependencies": { + "@expo/config": "~12.0.13", + "@expo/env": "~2.0.8" + }, + "peerDependencies": { + "expo": "*", + "react-native": "*" + } + }, + "node_modules/expo-file-system": { + "version": "19.0.21", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-19.0.21.tgz", + "integrity": "sha512-s3DlrDdiscBHtab/6W1osrjGL+C2bvoInPJD7sOwmxfJ5Woynv2oc+Fz1/xVXaE/V7HE/+xrHC/H45tu6lZzzg==", + "license": "MIT", + "peerDependencies": { + "expo": "*", + "react-native": "*" + } + }, + "node_modules/expo-font": { + "version": "14.0.11", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-14.0.11.tgz", + "integrity": "sha512-ga0q61ny4s/kr4k8JX9hVH69exVSIfcIc19+qZ7gt71Mqtm7xy2c6kwsPTCyhBW2Ro5yXTT8EaZOpuRi35rHbg==", + "license": "MIT", + "dependencies": { + "fontfaceobserver": "^2.1.0" + }, + "peerDependencies": { + "expo": "*", + "react": "*", + "react-native": "*" + } + }, + "node_modules/expo-keep-awake": { + "version": "15.0.8", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-15.0.8.tgz", + "integrity": "sha512-YK9M1VrnoH1vLJiQzChZgzDvVimVoriibiDIFLbQMpjYBnvyfUeHJcin/Gx1a+XgupNXy92EQJLgI/9ZuXajYQ==", + "license": "MIT", + "peerDependencies": { + "expo": "*", + "react": "*" + } + }, + "node_modules/expo-modules-autolinking": { + "version": "3.0.24", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-3.0.24.tgz", + "integrity": "sha512-TP+6HTwhL7orDvsz2VzauyQlXJcAWyU3ANsZ7JGL4DQu8XaZv/A41ZchbtAYLfozNA2Ya1Hzmhx65hXryBMjaQ==", + "license": "MIT", + "dependencies": { + "@expo/spawn-async": "^1.7.2", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0" + }, + "bin": { + "expo-modules-autolinking": "bin/expo-modules-autolinking.js" + } + }, + "node_modules/expo-modules-autolinking/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/expo-modules-core": { + "version": "3.0.29", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-3.0.29.tgz", + "integrity": "sha512-LzipcjGqk8gvkrOUf7O2mejNWugPkf3lmd9GkqL9WuNyeN2fRwU0Dn77e3ZUKI3k6sI+DNwjkq4Nu9fNN9WS7Q==", + "license": "MIT", + "dependencies": { + "invariant": "^2.2.4" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/expo-server": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/expo-server/-/expo-server-1.0.5.tgz", + "integrity": "sha512-IGR++flYH70rhLyeXF0Phle56/k4cee87WeQ4mamS+MkVAVP+dDlOHf2nN06Z9Y2KhU0Gp1k+y61KkghF7HdhA==", + "license": "MIT", + "engines": { + "node": ">=20.16.0" + } + }, + "node_modules/expo-status-bar": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-3.0.9.tgz", + "integrity": "sha512-xyYyVg6V1/SSOZWh4Ni3U129XHCnFHBTcUo0dhWtFDrZbNp/duw5AGsQfb2sVeU0gxWHXSY1+5F0jnKYC7WuOw==", + "license": "MIT", + "dependencies": { + "react-native-is-edge-to-edge": "^1.2.1" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, "node_modules/exponential-backoff": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/extendable-error": { "version": "0.1.7", @@ -2431,6 +9304,44 @@ "dev": true, "license": "MIT" }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "optional": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", @@ -2452,8 +9363,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/fastq": { "version": "1.20.1", @@ -2483,11 +9393,53 @@ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "license": "Apache-2.0", - "peer": true, "dependencies": { "bser": "2.1.1" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/filelist": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz", + "integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -2500,12 +9452,20 @@ "node": ">=8" } }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "license": "MIT", - "peer": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -2524,7 +9484,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "license": "MIT", - "peer": true, "dependencies": { "ms": "2.0.0" } @@ -2533,8 +9492,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/find-up": { "version": "4.1.0", @@ -2553,19 +9511,131 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz", "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==", + "license": "MIT" + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "license": "MIT", - "peer": true + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fontfaceobserver": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz", + "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==", + "license": "BSD-2-Clause" + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/form-data/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/freeport-async": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz", + "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.6" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -2581,12 +9651,24 @@ "node": ">=6 <7 || >=8" } }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", @@ -2598,17 +9680,45 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -2618,28 +9728,89 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "license": "ISC", - "peer": true, "engines": { "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "license": "MIT", - "peer": true, "engines": { "node": ">=8.0.0" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getenv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-2.0.0.tgz", + "integrity": "sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "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", "license": "ISC", - "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2668,6 +9839,74 @@ "node": ">= 6" } }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-agent/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -2689,6 +9928,45 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2700,11 +9978,72 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=8" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hermes-compiler": { "version": "250829098.0.9", "resolved": "https://registry.npmjs.org/hermes-compiler/-/hermes-compiler-250829098.0.9.tgz", @@ -2716,15 +10055,13 @@ "version": "0.32.0", "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz", "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/hermes-parser": { "version": "0.32.0", "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz", "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==", "license": "MIT", - "peer": true, "dependencies": { "hermes-estree": "0.32.0" } @@ -2733,7 +10070,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" @@ -2743,15 +10079,53 @@ "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, "license": "MIT" }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/http-errors": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "license": "MIT", - "peer": true, "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", @@ -2772,17 +10146,43 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.8" } }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, "node_modules/https-proxy-agent": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", - "peer": true, "dependencies": { "agent-base": "^7.1.2", "debug": "4" @@ -2801,6 +10201,34 @@ "human-id": "dist/cli.js" } }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "cli-truncate": "^2.1.0", + "node-addon-api": "^1.6.3" + }, + "engines": { + "node": "^8.11.2 || >=10" + } + }, "node_modules/iconv-lite": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", @@ -2818,11 +10246,30 @@ "url": "https://opencollective.com/express" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -2833,7 +10280,6 @@ "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==", "license": "MIT", - "peer": true, "dependencies": { "queue": "6.0.2" }, @@ -2849,18 +10295,33 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true, + "license": "ISC" + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "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.", "license": "ISC", - "peer": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -2870,8 +10331,13 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC", - "peer": true + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" }, "node_modules/invariant": { "version": "2.2.4", @@ -2882,19 +10348,55 @@ "loose-envify": "^1.0.0" } }, + "node_modules/ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/is-arrayish": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", - "dev": true, "license": "MIT" }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "license": "MIT", - "peer": true, "bin": { "is-docker": "cli.js" }, @@ -2920,7 +10422,6 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -2938,6 +10439,23 @@ "node": ">=0.10.0" } }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true, + "license": "MIT" + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -2960,6 +10478,19 @@ "node": ">=4" } }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -2975,7 +10506,6 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "license": "MIT", - "peer": true, "dependencies": { "is-docker": "^2.0.0" }, @@ -2983,6 +10513,27 @@ "node": ">=8" } }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/isbinaryfile": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.7.tgz", + "integrity": "sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -2994,7 +10545,6 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "license": "BSD-3-Clause", - "peer": true, "engines": { "node": ">=8" } @@ -3004,7 +10554,6 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "license": "BSD-3-Clause", - "peer": true, "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -3021,17 +10570,49 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "license": "ISC", - "peer": true, "bin": { "semver": "bin/semver.js" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.9.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.6", + "filelist": "^1.0.4", + "picocolors": "^1.1.1" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest-environment-node": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "license": "MIT", - "peer": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -3049,7 +10630,6 @@ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "license": "MIT", - "peer": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -3059,7 +10639,6 @@ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", @@ -3085,7 +10664,6 @@ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", @@ -3106,7 +10684,6 @@ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -3121,7 +10698,6 @@ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "license": "MIT", - "peer": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -3131,7 +10707,6 @@ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -3149,7 +10724,6 @@ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "license": "MIT", - "peer": true, "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", @@ -3167,7 +10741,6 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -3180,7 +10753,6 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "license": "MIT", - "peer": true, "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -3196,7 +10768,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "license": "MIT", - "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -3207,6 +10778,31 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jimp-compact": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz", + "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==", + "license": "MIT" + }, + "node_modules/joi": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-18.0.2.tgz", + "integrity": "sha512-RuCOQMIt78LWnktPoeBL0GErkNaJPTBGcYuyaBvUOQSpcpcLfWrHPPihYdOGbV5pam9VTWbeoF7TsGiHugcjGA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/address": "^5.1.1", + "@hapi/formula": "^3.0.2", + "@hapi/hoek": "^11.0.7", + "@hapi/pinpoint": "^2.0.1", + "@hapi/tlds": "^1.1.1", + "@hapi/topo": "^6.0.2", + "@standard-schema/spec": "^1.0.0" + }, + "engines": { + "node": ">= 20" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -3230,15 +10826,13 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz", "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==", - "license": "0BSD", - "peer": true + "license": "0BSD" }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "license": "MIT", - "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -3246,12 +10840,33 @@ "node": ">=6" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "license": "MIT", - "peer": true, "bin": { "json5": "lib/cli.js" }, @@ -3269,12 +10884,96 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lan-network": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/lan-network/-/lan-network-0.1.7.tgz", + "integrity": "sha512-mnIlAEMu4OyEvUNdzco9xpuB9YVcPkQec+QsgycBCtPZvEqWPCDPfbAE4OJMdBBWpZWtpCn1xw9jJYlwjWI5zQ==", + "license": "MIT", + "bin": { + "lan-network": "dist/lan-network-cli.js" + } + }, + "node_modules/lazy-val": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -3284,7 +10983,6 @@ "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", "license": "Apache-2.0", - "peer": true, "dependencies": { "debug": "^2.6.9", "marky": "^1.2.2" @@ -3295,7 +10993,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "license": "MIT", - "peer": true, "dependencies": { "ms": "2.0.0" } @@ -3304,8 +11001,262 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT", - "peer": true + "license": "MIT" + }, + "node_modules/lightningcss": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.31.1.tgz", + "integrity": "sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.31.1", + "lightningcss-darwin-arm64": "1.31.1", + "lightningcss-darwin-x64": "1.31.1", + "lightningcss-freebsd-x64": "1.31.1", + "lightningcss-linux-arm-gnueabihf": "1.31.1", + "lightningcss-linux-arm64-gnu": "1.31.1", + "lightningcss-linux-arm64-musl": "1.31.1", + "lightningcss-linux-x64-gnu": "1.31.1", + "lightningcss-linux-x64-musl": "1.31.1", + "lightningcss-win32-arm64-msvc": "1.31.1", + "lightningcss-win32-x64-msvc": "1.31.1" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.31.1.tgz", + "integrity": "sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.31.1.tgz", + "integrity": "sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.31.1.tgz", + "integrity": "sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.31.1.tgz", + "integrity": "sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.31.1.tgz", + "integrity": "sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.31.1.tgz", + "integrity": "sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.31.1.tgz", + "integrity": "sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.31.1.tgz", + "integrity": "sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.31.1.tgz", + "integrity": "sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.31.1.tgz", + "integrity": "sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.31.1.tgz", + "integrity": "sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" }, "node_modules/locate-path": { "version": "5.0.0", @@ -3319,6 +11270,51 @@ "node": ">=8" } }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/lodash.startcase": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", @@ -3330,9 +11326,33 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "license": "MIT" + }, + "node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", + "dev": true, "license": "MIT", "peer": true }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -3345,22 +11365,120 @@ "loose-envify": "cli.js" } }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "license": "ISC", - "peer": true, "dependencies": { "yallist": "^3.0.2" } }, + "node_modules/make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/make-fetch-happen/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "license": "BSD-3-Clause", - "peer": true, "dependencies": { "tmpl": "1.0.5" } @@ -3369,29 +11487,49 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz", "integrity": "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==", - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, "node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true, "license": "CC0-1.0" }, "node_modules/memoize-one": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", @@ -3408,7 +11546,6 @@ "resolved": "https://registry.npmjs.org/metro/-/metro-0.83.5.tgz", "integrity": "sha512-BgsXevY1MBac/3ZYv/RfNFf/4iuW9X7f4H8ZNkiH+r667HD9sVujxcmu4jvEzGCAm4/WyKdZCuyhAcyhTHOucQ==", "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/core": "^7.25.2", @@ -3463,7 +11600,6 @@ "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.83.5.tgz", "integrity": "sha512-d9FfmgUEVejTiSb7bkQeLRGl6aeno2UpuPm3bo3rCYwxewj03ymvOn8s8vnS4fBqAPQ+cE9iQM40wh7nGXR+eA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.25.2", "flow-enums-runtime": "^0.0.6", @@ -3478,15 +11614,13 @@ "version": "0.33.3", "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.33.3.tgz", "integrity": "sha512-6kzYZHCk8Fy1Uc+t3HGYyJn3OL4aeqKLTyina4UFtWl8I0kSL7OmKThaiX+Uh2f8nGw3mo4Ifxg0M5Zk3/Oeqg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/metro-babel-transformer/node_modules/hermes-parser": { "version": "0.33.3", "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.33.3.tgz", "integrity": "sha512-Yg3HgaG4CqgyowtYjX/FsnPAuZdHOqSMtnbpylbptsQ9nwwSKsy6uRWcGO5RK0EqiX12q8HvDWKgeAVajRO5DA==", "license": "MIT", - "peer": true, "dependencies": { "hermes-estree": "0.33.3" } @@ -3496,7 +11630,6 @@ "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.5.tgz", "integrity": "sha512-oH+s4U+IfZyg8J42bne2Skc90rcuESIYf86dYittcdWQtPfcaFXWpByPyTuWk3rR1Zz3Eh5HOrcVImfEhhJLng==", "license": "MIT", - "peer": true, "dependencies": { "exponential-backoff": "^3.1.1", "flow-enums-runtime": "^0.0.6", @@ -3512,7 +11645,6 @@ "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.83.5.tgz", "integrity": "sha512-Ycl8PBajB7bhbAI7Rt0xEyiF8oJ0RWX8EKkolV1KfCUlC++V/GStMSGpPLwnnBZXZWkCC5edBPzv1Hz1Yi0Euw==", "license": "MIT", - "peer": true, "dependencies": { "flow-enums-runtime": "^0.0.6" }, @@ -3525,7 +11657,6 @@ "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.83.5.tgz", "integrity": "sha512-JQ/PAASXH7yczgV6OCUSRhZYME+NU8NYjI2RcaG5ga4QfQ3T/XdiLzpSb3awWZYlDCcQb36l4Vl7i0Zw7/Tf9w==", "license": "MIT", - "peer": true, "dependencies": { "connect": "^3.6.5", "flow-enums-runtime": "^0.0.6", @@ -3545,7 +11676,6 @@ "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.83.5.tgz", "integrity": "sha512-YcVcLCrf0ed4mdLa82Qob0VxYqfhmlRxUS8+TO4gosZo/gLwSvtdeOjc/Vt0pe/lvMNrBap9LlmvZM8FIsMgJQ==", "license": "MIT", - "peer": true, "dependencies": { "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", @@ -3560,7 +11690,6 @@ "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.83.5.tgz", "integrity": "sha512-ZEt8s3a1cnYbn40nyCD+CsZdYSlwtFh2kFym4lo+uvfM+UMMH+r/BsrC6rbNClSrt+B7rU9T+Te/sh/NL8ZZKQ==", "license": "MIT", - "peer": true, "dependencies": { "debug": "^4.4.0", "fb-watchman": "^2.0.0", @@ -3581,7 +11710,6 @@ "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.83.5.tgz", "integrity": "sha512-Toe4Md1wS1PBqbvB0cFxBzKEVyyuYTUb0sgifAZh/mSvLH84qA1NAWik9sISWatzvfWf3rOGoUoO5E3f193a3Q==", "license": "MIT", - "peer": true, "dependencies": { "flow-enums-runtime": "^0.0.6", "terser": "^5.15.0" @@ -3595,7 +11723,6 @@ "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.83.5.tgz", "integrity": "sha512-7p3GtzVUpbAweJeCcUJihJeOQl1bDuimO5ueo1K0BUpUtR41q5EilbQ3klt16UTPPMpA+tISWBtsrqU556mY1A==", "license": "MIT", - "peer": true, "dependencies": { "flow-enums-runtime": "^0.0.6" }, @@ -3608,7 +11735,6 @@ "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.5.tgz", "integrity": "sha512-f+b3ue9AWTVlZe2Xrki6TAoFtKIqw30jwfk7GQ1rDUBQaE0ZQ+NkiMEtb9uwH7uAjJ87U7Tdx1Jg1OJqUfEVlA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" @@ -3622,7 +11748,6 @@ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.5.tgz", "integrity": "sha512-VT9bb2KO2/4tWY9Z2yeZqTUao7CicKAOps9LUg2aQzsz+04QyuXL3qgf1cLUVRjA/D6G5u1RJAlN1w9VNHtODQ==", "license": "MIT", - "peer": true, "dependencies": { "@babel/traverse": "^7.29.0", "@babel/types": "^7.29.0", @@ -3643,7 +11768,6 @@ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.83.5.tgz", "integrity": "sha512-EMIkrjNRz/hF+p0RDdxoE60+dkaTLPN3vaaGkFmX5lvFdO6HPfHA/Ywznzkev+za0VhPQ5KSdz49/MALBRteHA==", "license": "MIT", - "peer": true, "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", @@ -3664,7 +11788,6 @@ "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.83.5.tgz", "integrity": "sha512-KxYKzZL+lt3Os5H2nx7YkbkWVduLZL5kPrE/Yq+Prm/DE1VLhpfnO6HtPs8vimYFKOa58ncl60GpoX0h7Wm0Vw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.25.2", "@babel/generator": "^7.29.1", @@ -3682,7 +11805,6 @@ "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.5.tgz", "integrity": "sha512-8N4pjkNXc6ytlP9oAM6MwqkvUepNSW39LKYl9NjUMpRDazBQ7oBpQDc8Sz4aI8jnH6AGhF7s1m/ayxkN1t04yA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.25.2", "@babel/generator": "^7.29.1", @@ -3706,22 +11828,19 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/metro/node_modules/hermes-estree": { "version": "0.33.3", "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.33.3.tgz", "integrity": "sha512-6kzYZHCk8Fy1Uc+t3HGYyJn3OL4aeqKLTyina4UFtWl8I0kSL7OmKThaiX+Uh2f8nGw3mo4Ifxg0M5Zk3/Oeqg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/metro/node_modules/hermes-parser": { "version": "0.33.3", "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.33.3.tgz", "integrity": "sha512-Yg3HgaG4CqgyowtYjX/FsnPAuZdHOqSMtnbpylbptsQ9nwwSKsy6uRWcGO5RK0EqiX12q8HvDWKgeAVajRO5DA==", "license": "MIT", - "peer": true, "dependencies": { "hermes-estree": "0.33.3" } @@ -3744,7 +11863,6 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "license": "MIT", - "peer": true, "bin": { "mime": "cli.js" }, @@ -3757,7 +11875,6 @@ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.6" } @@ -3767,7 +11884,6 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "license": "MIT", - "peer": true, "dependencies": { "mime-db": "^1.54.0" }, @@ -3779,12 +11895,31 @@ "url": "https://opencollective.com/express" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/minimatch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "license": "ISC", - "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -3792,12 +11927,131 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "license": "MIT", - "peer": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -3819,48 +12073,222 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "license": "MIT", - "peer": true + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, "node_modules/negotiator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.6" } }, + "node_modules/nested-error-stacks": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", + "license": "MIT" + }, + "node_modules/node-abi": { + "version": "3.87.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.87.0.tgz", + "integrity": "sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-api-version": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.2.1.tgz", + "integrity": "sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + } + }, + "node_modules/node-forge": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz", + "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", + "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.0.3", + "nopt": "^6.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^12.13 || ^14.13 || >=16" + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/node-releases": { "version": "2.0.27", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", - "license": "MIT", - "peer": true + "license": "MIT" + }, + "node_modules/nopt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-package-arg": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "license": "ISC", + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" @@ -3880,7 +12308,6 @@ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.83.5.tgz", "integrity": "sha512-vNKPYC8L5ycVANANpF/S+WZHpfnRWKx/F3AYP4QMn6ZJTh+l2HOrId0clNkEmua58NB9vmI9Qh7YOoV/4folYg==", "license": "MIT", - "peer": true, "dependencies": { "flow-enums-runtime": "^0.0.6" }, @@ -3888,12 +12315,31 @@ "node": ">=20.19.4" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "license": "MIT", - "peer": true, "dependencies": { "ee-first": "1.1.1" }, @@ -3901,22 +12347,45 @@ "node": ">= 0.8" } }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "license": "ISC", - "peer": true, "dependencies": { "wrappy": "1" } }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/open": { "version": "7.4.2", "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "license": "MIT", - "peer": true, "dependencies": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" @@ -3928,6 +12397,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/outdent": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", @@ -3935,6 +12428,16 @@ "dev": true, "license": "MIT" }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/p-filter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", @@ -3994,6 +12497,13 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/package-manager-detector": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.11.tgz", @@ -4004,12 +12514,23 @@ "quansync": "^0.2.7" } }, + "node_modules/parse-png": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz", + "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==", + "license": "MIT", + "dependencies": { + "pngjs": "^3.3.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.8" } @@ -4028,7 +12549,6 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -4042,6 +12562,46 @@ "node": ">=8" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -4052,6 +12612,28 @@ "node": ">=8" } }, + "node_modules/pe-library": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pe-library/-/pe-library-0.4.1.tgz", + "integrity": "sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jet2jet" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -4085,11 +12667,61 @@ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "license": "MIT", - "peer": true, "engines": { "node": ">= 6" } }, + "node_modules/plist": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/prettier": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", @@ -4106,12 +12738,23 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "license": "MIT", - "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -4126,7 +12769,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -4134,16 +12776,110 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/promise": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "license": "MIT", - "peer": true, "dependencies": { "asap": "~2.0.6" } }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode-terminal": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz", + "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==", + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, "node_modules/quansync": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", @@ -4161,12 +12897,29 @@ ], "license": "MIT" }, + "node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/queue": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", "license": "MIT", - "peer": true, "dependencies": { "inherits": "~2.0.3" } @@ -4192,16 +12945,43 @@ ], "license": "MIT" }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.6" } }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, "node_modules/react": { "version": "19.2.4", "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", @@ -4217,18 +12997,28 @@ "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-6.1.5.tgz", "integrity": "sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==", "license": "MIT", - "peer": true, "dependencies": { "shell-quote": "^1.6.1", "ws": "^7" } }, + "node_modules/react-freeze": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.4.tgz", + "integrity": "sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=17.0.0" + } + }, "node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/react-native": { "version": "0.84.1", @@ -4289,11 +13079,20 @@ } } }, + "node_modules/react-native-is-edge-to-edge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.3.1.tgz", + "integrity": "sha512-NIXU/iT5+ORyCc7p0z2nnlkouYKX425vuU1OEm6bMMtWWR9yvb+Xg5AZmImTKoF9abxCPqrKC3rOZsKzUYgYZA==", + "license": "MIT", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, "node_modules/react-native-paper": { "version": "5.15.0", "resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-5.15.0.tgz", "integrity": "sha512-I/1CQLfW9VM0Oo5I5dQI/hjgf1I6q2S1wwgzAdsv6whAQ3zO97GWHwtgNh9se9j8zBOJ86afPTQKxxUL0IJd9A==", - "dev": true, "license": "MIT", "workspaces": [ "example", @@ -4314,13 +13113,27 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.7.0.tgz", "integrity": "sha512-/9/MtQz8ODphjsLdZ+GZAIcC/RtoqW9EeShf7Uvnfgm/pzYrJ75y3PV/J1wuAV1T5Dye5ygq4EAW20RoBq0ABQ==", - "dev": true, "license": "MIT", "peerDependencies": { "react": "*", "react-native": "*" } }, + "node_modules/react-native-screens": { + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.16.0.tgz", + "integrity": "sha512-yIAyh7F/9uWkOzCi1/2FqvNvK6Wb9Y1+Kzn16SuGfN9YFJDTbwlzGRvePCNTOX0recpLQF3kc2FmvMUhyTCH1Q==", + "license": "MIT", + "dependencies": { + "react-freeze": "^1.0.0", + "react-native-is-edge-to-edge": "^1.2.1", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, "node_modules/react-native-svg": { "version": "15.15.3", "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.15.3.tgz", @@ -4342,11 +13155,23 @@ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/read-binary-file-arch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/read-binary-file-arch/-/read-binary-file-arch-1.0.6.tgz", + "integrity": "sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "bin": { + "read-binary-file-arch": "cli.js" + } + }, "node_modules/read-yaml-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", @@ -4363,23 +13188,201 @@ "node": ">=6" } }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", "license": "MIT", - "peer": true + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requireg": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", + "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", + "dependencies": { + "nested-error-stacks": "~2.0.1", + "rc": "~1.2.7", + "resolve": "~1.7.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/requireg/node_modules/resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "license": "MIT", + "dependencies": { + "path-parse": "^1.0.5" + } + }, + "node_modules/resedit": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/resedit/-/resedit-1.7.2.tgz", + "integrity": "sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pe-library": "^0.4.1" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jet2jet" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true, + "license": "MIT" + }, "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -4389,6 +13392,58 @@ "node": ">=8" } }, + "node_modules/resolve-workspace-root": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/resolve-workspace-root/-/resolve-workspace-root-2.0.1.tgz", + "integrity": "sha512-nR23LHAvaI6aHtMg6RWoaHpdR4D881Nydkzi2CixINyg9T00KgaJdJI6Vwty+Ps8WLxZHuxsS0BseWjxSA4C+w==", + "license": "MIT" + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -4406,7 +13461,6 @@ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", "license": "ISC", - "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -4417,6 +13471,78 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/roarr/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/rollup": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", + "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.59.0", + "@rollup/rollup-android-arm64": "4.59.0", + "@rollup/rollup-darwin-arm64": "4.59.0", + "@rollup/rollup-darwin-x64": "4.59.0", + "@rollup/rollup-freebsd-arm64": "4.59.0", + "@rollup/rollup-freebsd-x64": "4.59.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", + "@rollup/rollup-linux-arm-musleabihf": "4.59.0", + "@rollup/rollup-linux-arm64-gnu": "4.59.0", + "@rollup/rollup-linux-arm64-musl": "4.59.0", + "@rollup/rollup-linux-loong64-gnu": "4.59.0", + "@rollup/rollup-linux-loong64-musl": "4.59.0", + "@rollup/rollup-linux-ppc64-gnu": "4.59.0", + "@rollup/rollup-linux-ppc64-musl": "4.59.0", + "@rollup/rollup-linux-riscv64-gnu": "4.59.0", + "@rollup/rollup-linux-riscv64-musl": "4.59.0", + "@rollup/rollup-linux-s390x-gnu": "4.59.0", + "@rollup/rollup-linux-x64-gnu": "4.59.0", + "@rollup/rollup-linux-x64-musl": "4.59.0", + "@rollup/rollup-openbsd-x64": "4.59.0", + "@rollup/rollup-openharmony-arm64": "4.59.0", + "@rollup/rollup-win32-arm64-msvc": "4.59.0", + "@rollup/rollup-win32-ia32-msvc": "4.59.0", + "@rollup/rollup-win32-x64-gnu": "4.59.0", + "@rollup/rollup-win32-x64-msvc": "4.59.0", + "fsevents": "~2.3.2" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -4441,6 +13567,36 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -4448,6 +13604,25 @@ "dev": true, "license": "MIT" }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "license": "WTFPL OR ISC", + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.5.0.tgz", + "integrity": "sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, "node_modules/scheduler": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", @@ -4467,12 +13642,19 @@ "node": ">=10" } }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/send": { "version": "0.19.2", "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", "license": "MIT", - "peer": true, "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -4497,7 +13679,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "license": "MIT", - "peer": true, "dependencies": { "ms": "2.0.0" } @@ -4506,15 +13687,13 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/send/node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.8" } @@ -4524,7 +13703,6 @@ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "license": "MIT", - "peer": true, "dependencies": { "ee-first": "1.1.1" }, @@ -4537,7 +13715,6 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.8" } @@ -4547,7 +13724,6 @@ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -4557,7 +13733,6 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", "license": "MIT", - "peer": true, "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", @@ -4573,17 +13748,31 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.8" } }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC", - "peer": true + "license": "ISC" + }, + "node_modules/sf-symbols-typescript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sf-symbols-typescript/-/sf-symbols-typescript-2.2.0.tgz", + "integrity": "sha512-TPbeg0b7ylrswdGCji8FRGFAKuqbpQlLbL8SOle3j1iHSs5Ob5mhvMAxWN2UItOjgALAB5Zp3fmMfj8mbWvXKw==", + "license": "MIT", + "engines": { + "node": ">=10" + } }, "node_modules/shebang-command": { "version": "2.0.0", @@ -4611,7 +13800,6 @@ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.4" }, @@ -4623,19 +13811,59 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC", - "peer": true + "license": "ISC" + }, + "node_modules/simple-plist": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", + "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==", + "license": "MIT", + "dependencies": { + "bplist-creator": "0.1.0", + "bplist-parser": "0.3.1", + "plist": "^3.0.5" + } + }, + "node_modules/simple-plist/node_modules/bplist-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", + "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", + "license": "MIT", + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" + } }, "node_modules/simple-swizzle": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", - "dev": true, "license": "MIT", "dependencies": { "is-arrayish": "^0.3.1" } }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -4645,12 +13873,99 @@ "node": ">=8" } }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "license": "BSD-3-Clause", - "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -4660,7 +13975,6 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "license": "MIT", - "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -4671,7 +13985,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "license": "BSD-3-Clause", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -4700,18 +14013,39 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "license": "BSD-3-Clause" }, + "node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "license": "MIT", - "peer": true, "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -4724,7 +14058,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -4733,15 +14066,13 @@ "version": "1.3.4", "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/stacktrace-parser": { "version": "0.1.11", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz", "integrity": "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==", "license": "MIT", - "peer": true, "dependencies": { "type-fest": "^0.7.1" }, @@ -4749,22 +14080,74 @@ "node": ">=6" } }, + "node_modules/stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.6" } }, + "node_modules/stream-buffers": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", + "integrity": "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==", + "license": "Unlicense", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "license": "MIT", - "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4786,6 +14169,20 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -4796,12 +14193,70 @@ "node": ">=4" } }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/structured-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz", + "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==", + "license": "MIT" + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", - "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -4809,6 +14264,134 @@ "node": ">=8" } }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "deprecated": "Old versions of tar 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", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/temp-file": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^10.0.0" + } + }, + "node_modules/temp-file/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/temp-file/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/temp-file/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", @@ -4822,12 +14405,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/terser": { "version": "5.46.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", "license": "BSD-2-Clause", - "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", @@ -4845,15 +14443,13 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "license": "ISC", - "peer": true, "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -4863,19 +14459,38 @@ "node": ">=8" } }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/throat": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "license": "MIT", - "peer": true, "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" @@ -4892,7 +14507,6 @@ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "license": "MIT", - "peer": true, "engines": { "node": ">=12.0.0" }, @@ -4910,7 +14524,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -4918,12 +14531,31 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/tmp": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tmp": "^0.2.0" + } + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "license": "BSD-3-Clause", - "peer": true + "license": "BSD-3-Clause" }, "node_modules/to-regex-range": { "version": "5.0.1", @@ -4942,11 +14574,43 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.6" } }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/turbo": { "version": "2.8.13", "resolved": "https://registry.npmjs.org/turbo/-/turbo-2.8.13.tgz", @@ -5054,7 +14718,6 @@ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "license": "MIT", - "peer": true, "engines": { "node": ">=4" } @@ -5064,7 +14727,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", "license": "(MIT OR CC0-1.0)", - "peer": true, "engines": { "node": ">=8" } @@ -5083,12 +14745,87 @@ "node": ">=14.17" } }, + "node_modules/undici": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz", + "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, "node_modules/undici-types": { "version": "7.18.2", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "license": "MIT" }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -5104,7 +14841,6 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.8" } @@ -5128,7 +14864,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" @@ -5140,39 +14875,266 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, "node_modules/use-latest-callback": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.6.tgz", "integrity": "sha512-FvRG9i1HSo0wagmX63Vrm8SnlUU3LMM3WyZkQ76RnslpBrX694AdG4A0zQBx2B3ZifFA0yv/BaEHGBnEax5rZg==", - "dev": true, "license": "MIT", "peerDependencies": { "react": ">=16.8" } }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", + "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==", + "dev": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "license": "MIT", - "peer": true, "engines": { "node": ">= 0.4.0" } }, + "node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/vite": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vite/node_modules/postcss": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", + "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/vlq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==", + "license": "MIT" + }, + "node_modules/wait-on": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.5.tgz", + "integrity": "sha512-J3WlS0txVHkhLRb2FsmRg3dkMTCV1+M6Xra3Ho7HzZDHpE7DCOnoSoCJsZotrmW3uRMhvIJGSKUKrh/MeF4iag==", + "dev": true, "license": "MIT", - "peer": true + "dependencies": { + "axios": "^1.12.1", + "joi": "^18.0.1", + "lodash": "^4.17.21", + "minimist": "^1.2.8", + "rxjs": "^7.8.2" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=12.0.0" + } }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "license": "Apache-2.0", - "peer": true, "dependencies": { "makeerror": "1.0.12" } @@ -5181,15 +15143,45 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz", "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==", - "dev": true, "license": "MIT" }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=8" + } + }, "node_modules/whatwg-fetch": { "version": "3.6.20", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT" + }, + "node_modules/whatwg-url-without-unicode": { + "version": "8.0.0-3", + "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz", + "integrity": "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==", "license": "MIT", - "peer": true + "dependencies": { + "buffer": "^5.4.3", + "punycode": "^2.1.1", + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=10" + } }, "node_modules/which": { "version": "2.0.2", @@ -5206,12 +15198,46 @@ "node": ">= 8" } }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wonka": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/wonka/-/wonka-6.3.5.tgz", + "integrity": "sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==", + "license": "MIT" + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "license": "MIT", - "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -5228,15 +15254,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "license": "ISC", - "peer": true, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -5250,7 +15274,6 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=8.3.0" }, @@ -5267,12 +15290,55 @@ } } }, + "node_modules/xcode": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", + "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", + "license": "Apache-2.0", + "dependencies": { + "simple-plist": "^1.1.0", + "uuid": "^7.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/xml2js": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz", + "integrity": "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "license": "ISC", - "peer": true, "engines": { "node": ">=10" } @@ -5281,15 +15347,13 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/yaml": { "version": "2.8.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "license": "ISC", - "peer": true, "bin": { "yaml": "bin.mjs" }, @@ -5305,7 +15369,6 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "license": "MIT", - "peer": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -5324,14 +15387,75 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "license": "ISC", - "peer": true, "engines": { "node": ">=12" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zip-stream": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", + "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "archiver-utils": "^3.0.4", + "compress-commons": "^4.1.2", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/zip-stream/node_modules/archiver-utils": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "glob": "^7.2.3", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, "packages/react-native": { "name": "@dangerousthings/react-native", - "version": "0.1.0", + "version": "0.2.0", "license": "MIT", "dependencies": { "@dangerousthings/tokens": "*" @@ -5357,9 +15481,328 @@ } } }, + "packages/showcase/desktop": { + "name": "@dangerousthings/showcase-desktop", + "version": "0.0.0", + "dependencies": { + "@dangerousthings/tokens": "*", + "@dangerousthings/web": "*" + }, + "devDependencies": { + "concurrently": "^9.0.0", + "electron": "33.4.11", + "electron-builder": "^25.0.0", + "typescript": "^5.8.3", + "vite": "^6.0.0", + "wait-on": "^8.0.0" + } + }, + "packages/showcase/mobile": { + "name": "@dangerousthings/showcase-mobile", + "version": "0.0.0", + "dependencies": { + "@dangerousthings/react-native": "*", + "@dangerousthings/tokens": "*", + "@react-navigation/native": "^7.1.27", + "@react-navigation/native-stack": "^7.9.1", + "babel-preset-expo": "^54.0.10", + "expo": "~54.0.32", + "expo-font": "~14.0.11", + "expo-status-bar": "^3.0.9", + "react": "19.1.0", + "react-native": "0.81.5", + "react-native-paper": "^5.14.5", + "react-native-safe-area-context": "~5.6.0", + "react-native-screens": "~4.16.0", + "react-native-svg": "15.12.1" + }, + "devDependencies": { + "@babel/core": "^7.25.2", + "@types/react": "~19.1.0", + "typescript": "^5.8.3" + } + }, + "packages/showcase/mobile/node_modules/@react-native/assets-registry": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.81.5.tgz", + "integrity": "sha512-705B6x/5Kxm1RKRvSv0ADYWm5JOnoiQ1ufW7h8uu2E6G9Of/eE6hP/Ivw3U5jI16ERqZxiKQwk34VJbB0niX9w==", + "license": "MIT", + "engines": { + "node": ">= 20.19.4" + } + }, + "packages/showcase/mobile/node_modules/@react-native/codegen": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.81.5.tgz", + "integrity": "sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/parser": "^7.25.3", + "glob": "^7.1.1", + "hermes-parser": "0.29.1", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "yargs": "^17.6.2" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "packages/showcase/mobile/node_modules/@react-native/community-cli-plugin": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.81.5.tgz", + "integrity": "sha512-yWRlmEOtcyvSZ4+OvqPabt+NS36vg0K/WADTQLhrYrm9qdZSuXmq8PmdJWz/68wAqKQ+4KTILiq2kjRQwnyhQw==", + "license": "MIT", + "dependencies": { + "@react-native/dev-middleware": "0.81.5", + "debug": "^4.4.0", + "invariant": "^2.2.4", + "metro": "^0.83.1", + "metro-config": "^0.83.1", + "metro-core": "^0.83.1", + "semver": "^7.1.3" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@react-native-community/cli": "*", + "@react-native/metro-config": "*" + }, + "peerDependenciesMeta": { + "@react-native-community/cli": { + "optional": true + }, + "@react-native/metro-config": { + "optional": true + } + } + }, + "packages/showcase/mobile/node_modules/@react-native/debugger-frontend": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.81.5.tgz", + "integrity": "sha512-bnd9FSdWKx2ncklOetCgrlwqSGhMHP2zOxObJbOWXoj7GHEmih4MKarBo5/a8gX8EfA1EwRATdfNBQ81DY+h+w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 20.19.4" + } + }, + "packages/showcase/mobile/node_modules/@react-native/dev-middleware": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.81.5.tgz", + "integrity": "sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA==", + "license": "MIT", + "dependencies": { + "@isaacs/ttlcache": "^1.4.1", + "@react-native/debugger-frontend": "0.81.5", + "chrome-launcher": "^0.15.2", + "chromium-edge-launcher": "^0.2.0", + "connect": "^3.6.5", + "debug": "^4.4.0", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "open": "^7.0.3", + "serve-static": "^1.16.2", + "ws": "^6.2.3" + }, + "engines": { + "node": ">= 20.19.4" + } + }, + "packages/showcase/mobile/node_modules/@react-native/gradle-plugin": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.81.5.tgz", + "integrity": "sha512-hORRlNBj+ReNMLo9jme3yQ6JQf4GZpVEBLxmTXGGlIL78MAezDZr5/uq9dwElSbcGmLEgeiax6e174Fie6qPLg==", + "license": "MIT", + "engines": { + "node": ">= 20.19.4" + } + }, + "packages/showcase/mobile/node_modules/@react-native/js-polyfills": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.81.5.tgz", + "integrity": "sha512-fB7M1CMOCIUudTRuj7kzxIBTVw2KXnsgbQ6+4cbqSxo8NmRRhA0Ul4ZUzZj3rFd3VznTL4Brmocv1oiN0bWZ8w==", + "license": "MIT", + "engines": { + "node": ">= 20.19.4" + } + }, + "packages/showcase/mobile/node_modules/@react-native/normalize-colors": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.81.5.tgz", + "integrity": "sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g==", + "license": "MIT" + }, + "packages/showcase/mobile/node_modules/@types/react": { + "version": "19.1.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.17.tgz", + "integrity": "sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "packages/showcase/mobile/node_modules/babel-plugin-syntax-hermes-parser": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.29.1.tgz", + "integrity": "sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA==", + "license": "MIT", + "dependencies": { + "hermes-parser": "0.29.1" + } + }, + "packages/showcase/mobile/node_modules/hermes-estree": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz", + "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==", + "license": "MIT" + }, + "packages/showcase/mobile/node_modules/hermes-parser": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz", + "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==", + "license": "MIT", + "dependencies": { + "hermes-estree": "0.29.1" + } + }, + "packages/showcase/mobile/node_modules/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "packages/showcase/mobile/node_modules/react-native": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.81.5.tgz", + "integrity": "sha512-1w+/oSjEXZjMqsIvmkCRsOc8UBYv163bTWKTI8+1mxztvQPhCRYGTvZ/PL1w16xXHneIj/SLGfxWg2GWN2uexw==", + "license": "MIT", + "dependencies": { + "@jest/create-cache-key-function": "^29.7.0", + "@react-native/assets-registry": "0.81.5", + "@react-native/codegen": "0.81.5", + "@react-native/community-cli-plugin": "0.81.5", + "@react-native/gradle-plugin": "0.81.5", + "@react-native/js-polyfills": "0.81.5", + "@react-native/normalize-colors": "0.81.5", + "@react-native/virtualized-lists": "0.81.5", + "abort-controller": "^3.0.0", + "anser": "^1.4.9", + "ansi-regex": "^5.0.0", + "babel-jest": "^29.7.0", + "babel-plugin-syntax-hermes-parser": "0.29.1", + "base64-js": "^1.5.1", + "commander": "^12.0.0", + "flow-enums-runtime": "^0.0.6", + "glob": "^7.1.1", + "invariant": "^2.2.4", + "jest-environment-node": "^29.7.0", + "memoize-one": "^5.0.0", + "metro-runtime": "^0.83.1", + "metro-source-map": "^0.83.1", + "nullthrows": "^1.1.1", + "pretty-format": "^29.7.0", + "promise": "^8.3.0", + "react-devtools-core": "^6.1.5", + "react-refresh": "^0.14.0", + "regenerator-runtime": "^0.13.2", + "scheduler": "0.26.0", + "semver": "^7.1.3", + "stacktrace-parser": "^0.1.10", + "whatwg-fetch": "^3.0.0", + "ws": "^6.2.3", + "yargs": "^17.6.2" + }, + "bin": { + "react-native": "cli.js" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@types/react": "^19.1.0", + "react": "^19.1.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "packages/showcase/mobile/node_modules/react-native-safe-area-context": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.6.2.tgz", + "integrity": "sha512-4XGqMNj5qjUTYywJqpdWZ9IG8jgkS3h06sfVjfw5yZQZfWnRFXczi0GnYyFyCc2EBps/qFmoCH8fez//WumdVg==", + "license": "MIT", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "packages/showcase/mobile/node_modules/react-native-svg": { + "version": "15.12.1", + "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.12.1.tgz", + "integrity": "sha512-vCuZJDf8a5aNC2dlMovEv4Z0jjEUET53lm/iILFnFewa15b4atjVxU6Wirm6O9y6dEsdjDZVD7Q3QM4T1wlI8g==", + "license": "MIT", + "dependencies": { + "css-select": "^5.1.0", + "css-tree": "^1.1.3", + "warn-once": "0.1.1" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "packages/showcase/mobile/node_modules/react-native/node_modules/@react-native/virtualized-lists": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.81.5.tgz", + "integrity": "sha512-UVXgV/db25OPIvwZySeToXD/9sKKhOdkcWmmf4Jh8iBZuyfML+/5CasaZ1E7Lqg6g3uqVQq75NqIwkYmORJMPw==", + "license": "MIT", + "dependencies": { + "invariant": "^2.2.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@types/react": "^19.1.0", + "react": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "packages/showcase/mobile/node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "packages/showcase/mobile/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, "packages/tokens": { "name": "@dangerousthings/tokens", - "version": "0.1.0", + "version": "0.2.0", "license": "MIT", "devDependencies": { "@types/node": "^25.3.3", @@ -5368,7 +15811,7 @@ }, "packages/web": { "name": "@dangerousthings/web", - "version": "0.1.0", + "version": "0.2.0", "license": "MIT", "dependencies": { "@dangerousthings/tokens": "*" diff --git a/package.json b/package.json index 9bc52f0..8da07af 100644 --- a/package.json +++ b/package.json @@ -9,13 +9,16 @@ }, "license": "MIT", "workspaces": [ - "packages/*" + "packages/*", + "packages/showcase/*" ], "scripts": { "build": "turbo run build", "build:tokens": "npm run build -w packages/tokens", "build:web": "npm run build -w packages/web", "build:react-native": "npm run build -w packages/react-native", + "start:mobile": "npm run start -w @dangerousthings/showcase-mobile", + "start:desktop": "npm run start -w @dangerousthings/showcase-desktop", "clean": "turbo run clean", "typecheck": "turbo run typecheck", "lint": "turbo run lint", diff --git a/packages/showcase/desktop/electron-builder.yml b/packages/showcase/desktop/electron-builder.yml new file mode 100644 index 0000000..28fefbc --- /dev/null +++ b/packages/showcase/desktop/electron-builder.yml @@ -0,0 +1,18 @@ +appId: com.dangerousthings.showcase-desktop +productName: DT Design System Showcase +directories: + output: release + buildResources: resources +npmRebuild: false +artifactName: "dt-showcase-desktop-${version}-${arch}.${ext}" +files: + - dist/**/* + - package.json + - "!node_modules" +mac: + target: [dmg, zip] +win: + target: [nsis, portable] +linux: + target: [AppImage, deb] + category: Development diff --git a/packages/showcase/desktop/package.json b/packages/showcase/desktop/package.json new file mode 100644 index 0000000..bf8a6b1 --- /dev/null +++ b/packages/showcase/desktop/package.json @@ -0,0 +1,38 @@ +{ + "name": "@dangerousthings/showcase-desktop", + "version": "0.0.0", + "private": true, + "description": "Desktop showcase for the Dangerous Things design system", + "author": { + "name": "Dangerous Things", + "email": "info@dangerousthings.com" + }, + "homepage": "https://github.com/dangerous-tac0s/dt-design-system", + "main": "dist/main/main.js", + "scripts": { + "dev": "vite --config vite.config.ts", + "dev:electron": "npm run build:main && concurrently \"vite --config vite.config.ts\" \"wait-on http://localhost:5173 && electron .\"", + "build": "tsc -p tsconfig.main.json && vite build --config vite.config.ts", + "build:main": "tsc -p tsconfig.main.json", + "start": "electron .", + "package": "npm run build && electron-builder", + "package:dir": "npm run build && electron-builder --dir", + "package:win": "npm run build && electron-builder --win", + "package:mac": "npm run build && electron-builder --mac", + "package:linux": "npm run build && electron-builder --linux", + "typecheck": "tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.main.json", + "clean": "rm -rf dist release" + }, + "dependencies": { + "@dangerousthings/tokens": "*", + "@dangerousthings/web": "*" + }, + "devDependencies": { + "concurrently": "^9.0.0", + "electron": "33.4.11", + "electron-builder": "^25.0.0", + "typescript": "^5.8.3", + "vite": "^6.0.0", + "wait-on": "^8.0.0" + } +} diff --git a/packages/showcase/desktop/src/main/main.ts b/packages/showcase/desktop/src/main/main.ts new file mode 100644 index 0000000..6e445b1 --- /dev/null +++ b/packages/showcase/desktop/src/main/main.ts @@ -0,0 +1,30 @@ +import { app, BrowserWindow } from 'electron'; +import path from 'path'; + +function createWindow() { + const win = new BrowserWindow({ + width: 1200, + height: 800, + backgroundColor: '#000000', + titleBarStyle: 'hiddenInset', + webPreferences: { + preload: path.join(__dirname, 'preload.js'), + }, + }); + + if (process.env.VITE_DEV_SERVER_URL) { + win.loadURL(process.env.VITE_DEV_SERVER_URL); + } else { + win.loadFile(path.join(__dirname, '../renderer/index.html')); + } +} + +app.whenReady().then(createWindow); + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') app.quit(); +}); + +app.on('activate', () => { + if (BrowserWindow.getAllWindows().length === 0) createWindow(); +}); diff --git a/packages/showcase/desktop/src/main/preload.ts b/packages/showcase/desktop/src/main/preload.ts new file mode 100644 index 0000000..624506f --- /dev/null +++ b/packages/showcase/desktop/src/main/preload.ts @@ -0,0 +1 @@ +// Minimal preload — no IPC needed for the showcase diff --git a/packages/showcase/desktop/src/renderer/brand-switcher.ts b/packages/showcase/desktop/src/renderer/brand-switcher.ts new file mode 100644 index 0000000..a4e3820 --- /dev/null +++ b/packages/showcase/desktop/src/renderer/brand-switcher.ts @@ -0,0 +1,77 @@ +import { themes } from '@dangerousthings/tokens'; +import type { ThemeBrand, ThemeMode } from '@dangerousthings/tokens'; + +let currentBrand: ThemeBrand = 'dt'; +let currentMode: ThemeMode = 'dark'; + +export function initBrandSwitcher(container: HTMLElement) { + // Brand buttons + for (const theme of themes) { + const btn = document.createElement('button'); + btn.textContent = theme.name; + btn.className = 'brand-btn'; + btn.dataset.brand = theme.id; + if (theme.id === currentBrand) btn.classList.add('active'); + btn.addEventListener('click', () => switchBrand(theme.id)); + container.appendChild(btn); + } + + // Mode switcher + const modeContainer = document.createElement('div'); + modeContainer.className = 'mode-switcher'; + + const modes: ThemeMode[] = ['dark', 'light', 'auto']; + for (const mode of modes) { + const btn = document.createElement('button'); + btn.textContent = mode; + btn.className = 'mode-btn'; + btn.dataset.mode = mode; + if (mode === currentMode) btn.classList.add('active'); + btn.addEventListener('click', () => switchMode(mode)); + modeContainer.appendChild(btn); + } + + container.appendChild(modeContainer); + + // Set initial state + applyTheme(); +} + +function switchBrand(id: ThemeBrand) { + currentBrand = id; + applyTheme(); + updateBrandButtons(); +} + +function switchMode(mode: ThemeMode) { + currentMode = mode; + applyTheme(); + updateModeButtons(); +} + +function applyTheme() { + document.documentElement.setAttribute('data-brand', currentBrand); + document.documentElement.setAttribute('data-theme', currentMode); +} + +function updateBrandButtons() { + document.querySelectorAll('.brand-btn').forEach((btn) => { + const el = btn as HTMLButtonElement; + el.classList.toggle('active', el.dataset.brand === currentBrand); + }); +} + +function updateModeButtons() { + document.querySelectorAll('.mode-btn').forEach((btn) => { + const el = btn as HTMLButtonElement; + el.classList.toggle('active', el.dataset.mode === currentMode); + }); +} + +export function getCurrentBrand(): ThemeBrand { + return currentBrand; +} + +export function getCurrentMode(): ThemeMode { + return currentMode; +} diff --git a/packages/showcase/desktop/src/renderer/index.html b/packages/showcase/desktop/src/renderer/index.html new file mode 100644 index 0000000..1005b30 --- /dev/null +++ b/packages/showcase/desktop/src/renderer/index.html @@ -0,0 +1,15 @@ + + + + + + DT Design System — Desktop Showcase + + +
+ +
+
+ + + diff --git a/packages/showcase/desktop/src/renderer/main.ts b/packages/showcase/desktop/src/renderer/main.ts new file mode 100644 index 0000000..4c1e410 --- /dev/null +++ b/packages/showcase/desktop/src/renderer/main.ts @@ -0,0 +1,56 @@ +import '@dangerousthings/web/index.css'; +import './style.css'; + +import { initRouter } from './utils/router'; +import { initBrandSwitcher } from './brand-switcher'; +import { renderHomePage } from './pages/home'; +import { renderBevelsPage } from './pages/bevels'; +import { renderGlowsPage } from './pages/glows'; +import { renderFormsPage } from './pages/forms'; +import { renderTokensPage } from './pages/tokens'; + +const routes: Record void> = { + '': renderHomePage, + 'bevels': renderBevelsPage, + 'glows': renderGlowsPage, + 'forms': renderFormsPage, + 'tokens': renderTokensPage, +}; + +const sidebar = document.getElementById('sidebar')!; +const content = document.getElementById('content')!; + +// Build sidebar navigation +const navTitle = document.createElement('div'); +navTitle.className = 'nav-title'; +navTitle.textContent = 'DT DESIGN SYSTEM'; +sidebar.appendChild(navTitle); + +const brandContainer = document.createElement('div'); +brandContainer.className = 'brand-switcher-container'; +sidebar.appendChild(brandContainer); +initBrandSwitcher(brandContainer); + +const navLinks = document.createElement('div'); +navLinks.className = 'nav-links'; + +const pages = [ + { hash: '', label: 'Home' }, + { hash: 'bevels', label: 'Bevels' }, + { hash: 'glows', label: 'Glows' }, + { hash: 'forms', label: 'Forms' }, + { hash: 'tokens', label: 'Tokens' }, +]; + +for (const page of pages) { + const link = document.createElement('a'); + link.href = `#/${page.hash}`; + link.textContent = page.label; + link.className = 'nav-link'; + navLinks.appendChild(link); +} + +sidebar.appendChild(navLinks); + +// Initialize router +initRouter(routes, content); diff --git a/packages/showcase/desktop/src/renderer/pages/bevels.ts b/packages/showcase/desktop/src/renderer/pages/bevels.ts new file mode 100644 index 0000000..e7d1196 --- /dev/null +++ b/packages/showcase/desktop/src/renderer/pages/bevels.ts @@ -0,0 +1,126 @@ +import { el, section, row, label, codeLabel } from '../utils/dom'; + +export function renderBevelsPage(container: HTMLElement) { + container.appendChild(el('h1', { className: 'page-title' }, 'Bevels')); + container.appendChild(el('p', { className: 'page-subtitle' }, 'Angular clip-path patterns from the DT design system. Active on the DT brand.')); + + // Card Bevels + const card1 = el('div', { className: 'card', style: 'padding: var(--space-6);' }); + card1.appendChild(el('div', { className: 'card-title' }, 'CARD TITLE')); + card1.appendChild(el('div', { className: 'card-body' }, 'Dual bottom bevels — bottom-right (bevel-md) and bottom-left (bevel-sm). Uses the dual-element technique with ::before pseudo-element.')); + const card2 = el('div', { className: 'card', style: 'padding: var(--space-6);' }); + card2.appendChild(el('div', { className: 'card-body' }, 'Card without title — no header bar, just the beveled container.')); + + container.appendChild( + section('Card Bevels', 'Dual bottom bevels using clip-path. Outer bg = border color, ::before = surface fill.', + card1, + codeLabel('.card or .dt-bevel-card'), + card2, + codeLabel('.card (no .card-title child)'), + ), + ); + + // Button Bevels + container.appendChild( + section('Button Bevels', 'Top-right corner cut. Filled buttons use direct clip-path, outline uses dual-element.', + row( + el('button', { className: 'btn-primary' }, 'PRIMARY'), + el('button', { className: 'btn-secondary' }, 'SECONDARY'), + el('button', { className: 'btn-danger' }, 'DANGER'), + ), + codeLabel('.btn-primary | .btn-secondary | .btn-danger'), + ), + ); + + // Badge Bevels + container.appendChild( + section('Badge Bevels', 'Top-right bevel with dual-element technique. Color variants via CSS custom properties.', + row( + el('span', { className: 'badge' }, 'Default'), + el('span', { className: 'badge badge-success' }, 'Success'), + el('span', { className: 'badge badge-error' }, 'Error'), + el('span', { className: 'badge badge-warning' }, 'Warning'), + el('span', { className: 'badge badge-info' }, 'Info'), + ), + codeLabel('.badge | .badge-success | .badge-error | .badge-warning | .badge-info'), + ), + ); + + // Media Frame + const mediaFrame = el('div', { + className: 'dt-bevel-media', + style: 'background: var(--color-primary); width: 100%; aspect-ratio: 16/9; display: flex; align-items: center; justify-content: center;', + }); + mediaFrame.appendChild(el('span', { style: 'color: var(--color-bg); font-weight: 700;' }, 'MEDIA FRAME')); + + container.appendChild( + section('Media Frame Bevels', 'Diagonal opposite corners (top-left + bottom-right).', + mediaFrame, + codeLabel('.dt-bevel-media'), + ), + ); + + // Modal Bevel + const modalDemo = el('div', { + className: 'dt-bevel-modal', + style: 'background: var(--color-primary); padding: var(--space-8); text-align: center;', + }); + const modalInner = el('div', { style: 'background: var(--color-surface); padding: var(--space-6);' }); + modalInner.appendChild(el('div', { style: 'font-weight: 700; text-transform: uppercase;' }, 'Modal Content')); + modalInner.appendChild(el('div', { style: 'color: var(--color-text-muted); margin-top: var(--space-2);' }, 'Large dual bottom bevels')); + modalDemo.appendChild(modalInner); + + container.appendChild( + section('Modal Bevels', 'Dual bottom bevels at bevel-lg scale.', + modalDemo, + codeLabel('.dt-bevel-modal'), + ), + ); + + // Drawer Bevels + const drawerRight = el('div', { + className: 'dt-bevel-drawer-right', + style: 'background: var(--color-primary); padding: var(--space-6); width: 200px; height: 120px; display: flex; align-items: center; justify-content: center;', + }); + drawerRight.appendChild(el('span', { style: 'color: var(--color-bg); font-weight: 700;' }, 'RIGHT')); + const drawerLeft = el('div', { + className: 'dt-bevel-drawer-left', + style: 'background: var(--color-primary); padding: var(--space-6); width: 200px; height: 120px; display: flex; align-items: center; justify-content: center;', + }); + drawerLeft.appendChild(el('span', { style: 'color: var(--color-bg); font-weight: 700;' }, 'LEFT')); + + container.appendChild( + section('Drawer Bevels', 'Exposed-edge bevels for sliding panels.', + row(drawerRight, drawerLeft), + codeLabel('.dt-bevel-drawer-right | .dt-bevel-drawer-left'), + ), + ); + + // Small Bevel Utility + const smallBevel = el('div', { + className: 'dt-bevel-sm', + style: 'background: var(--color-primary); width: 60px; height: 60px; display: flex; align-items: center; justify-content: center;', + }); + smallBevel.appendChild(el('span', { style: 'color: var(--color-bg); font-weight: 700; font-size: 0.75rem;' }, 'SM')); + + container.appendChild( + section('Small Bevel Utility', 'For compact elements — arrows, stepper buttons.', + row(smallBevel), + codeLabel('.dt-bevel-sm'), + ), + ); + + // Accent Top + const accentDemo = el('div', { + className: 'dt-accent-top', + style: 'padding: var(--space-4); background: var(--color-surface); border: 1px solid var(--color-border);', + }); + accentDemo.appendChild(el('span', { style: 'font-weight: 600; text-transform: uppercase;' }, 'Thick Top Border Accent')); + + container.appendChild( + section('Accent Top', 'Used on accordion headers and menu items.', + accentDemo, + codeLabel('.dt-accent-top'), + ), + ); +} diff --git a/packages/showcase/desktop/src/renderer/pages/forms.ts b/packages/showcase/desktop/src/renderer/pages/forms.ts new file mode 100644 index 0000000..11584b6 --- /dev/null +++ b/packages/showcase/desktop/src/renderer/pages/forms.ts @@ -0,0 +1,199 @@ +import { el, section, row, label, codeLabel } from '../utils/dom'; + +export function renderFormsPage(container: HTMLElement) { + container.appendChild(el('h1', { className: 'page-title' }, 'Forms')); + container.appendChild(el('p', { className: 'page-subtitle' }, 'DT-branded form components. Angular styling with focus effects.')); + + // Text Inputs + const normalInput = el('input', { type: 'text', placeholder: 'Normal input — click to focus', style: 'max-width: 400px;' }) as HTMLInputElement; + const errorInput = el('input', { type: 'text', className: 'error', placeholder: 'Error state input', style: 'max-width: 400px;' }) as HTMLInputElement; + const textarea = el('textarea', { placeholder: 'Textarea element', style: 'max-width: 400px; min-height: 80px;' }) as HTMLTextAreaElement; + + container.appendChild( + section('Text Input', 'Sharp corners + focus glow bar. 2px solid border, no border-radius.', + normalInput, + codeLabel('input[type="text"] — focus glow bar on [data-brand="dt"]'), + el('br'), + errorInput, + codeLabel('input.error — red focus bar on [data-brand="dt"]'), + el('br'), + textarea, + codeLabel('textarea — same styling'), + ), + ); + + // Checkboxes + function checkbox(labelText: string, checked: boolean, disabled = false): HTMLElement { + const wrapper = el('label', { style: 'display: flex; align-items: center; gap: 12px; cursor: pointer; padding: 4px 0;' }); + const input = document.createElement('input'); + input.type = 'checkbox'; + if (checked) input.checked = true; + if (disabled) input.disabled = true; + wrapper.appendChild(input); + wrapper.appendChild(el('span', {}, labelText)); + return wrapper; + } + + container.appendChild( + section('Checkbox', 'Beveled hexagon shape via clip-path. 30% corner cuts.', + checkbox('Unchecked checkbox', false), + checkbox('Checked checkbox', true), + checkbox('Disabled checked', true, true), + checkbox('Disabled unchecked', false, true), + codeLabel('input[type="checkbox"] — hex bevel on [data-brand="dt"]'), + ), + ); + + // Switch / Toggle + function switchEl(labelText: string, checked: boolean, disabled = false): HTMLElement { + const wrapper = el('div', { style: 'display: flex; align-items: center; gap: 12px; margin-bottom: 8px;' }); + const sw = el('label', { className: 'dt-switch' }); + const input = document.createElement('input'); + input.type = 'checkbox'; + if (checked) input.checked = true; + if (disabled) input.disabled = true; + sw.appendChild(input); + sw.appendChild(el('div', { className: 'dt-switch-track' })); + sw.appendChild(el('div', { className: 'dt-switch-thumb' })); + wrapper.appendChild(sw); + wrapper.appendChild(el('span', {}, labelText)); + return wrapper; + } + + container.appendChild( + section('Switch / Toggle', 'Angular track + sliding square thumb. 48x26 track, 20x20 thumb.', + switchEl('Off', false), + switchEl('On', true), + switchEl('Disabled (on)', true, true), + switchEl('Disabled (off)', false, true), + codeLabel('.dt-switch > input + .dt-switch-track + .dt-switch-thumb'), + ), + ); + + // Radio Buttons + function radioGroup(name: string, options: { value: string; label: string; checked?: boolean; disabled?: boolean }[]): HTMLElement { + const group = el('div', { style: 'display: flex; flex-direction: column; gap: 4px;' }); + for (const opt of options) { + const wrapper = el('label', { className: `dt-radio-option${opt.checked ? ' selected' : ''}`, style: 'cursor: pointer;' }); + const input = document.createElement('input'); + input.type = 'radio'; + input.name = name; + input.value = opt.value; + if (opt.checked) input.checked = true; + if (opt.disabled) input.disabled = true; + + input.addEventListener('change', () => { + group.querySelectorAll('.dt-radio-option').forEach((o) => o.classList.remove('selected')); + if (input.checked) wrapper.classList.add('selected'); + }); + + wrapper.appendChild(input); + wrapper.appendChild(el('span', {}, opt.label)); + group.appendChild(wrapper); + } + return group; + } + + container.appendChild( + section('Radio Button', 'Hexagonal indicator via clip-path. Flat-top hexagon shape.', + radioGroup('demo-radio', [ + { value: 'nfc', label: 'NFC (Near Field Communication)', checked: true }, + { value: 'rfid', label: 'RFID (Radio Frequency ID)' }, + { value: 'ble', label: 'BLE (Bluetooth Low Energy)' }, + ]), + codeLabel('input[type="radio"] — hex indicator on [data-brand="dt"]'), + ), + ); + + // Progress Bar + function progressBar(value: number, showLabel = false): HTMLElement { + const wrapper = el('div'); + const bar = el('div', { className: 'dt-progress' }); + const fill = el('div', { className: 'dt-progress-fill', style: `width: ${value * 100}%;` }); + bar.appendChild(fill); + wrapper.appendChild(bar); + if (showLabel) { + wrapper.appendChild(el('div', { className: 'dt-progress-label' }, `${Math.round(value * 100)}%`)); + } + return wrapper; + } + + container.appendChild( + section('Progress Bar', 'Angular, no border-radius. 4px default height.', + label('25%'), + progressBar(0.25), + label('50% WITH LABEL'), + progressBar(0.5, true), + label('75%'), + progressBar(0.75), + label('100%'), + progressBar(1.0, true), + codeLabel('.dt-progress > .dt-progress-fill'), + ), + ); + + // Accordion + function accordion(items: { title: string; content: string }[]): HTMLElement { + const acc = el('div', { className: 'dt-accordion' }); + for (const item of items) { + const header = el('button', { className: 'dt-accordion-header', 'aria-expanded': 'false' }); + header.appendChild(document.createTextNode(item.title)); + header.appendChild(el('span', { className: 'dt-accordion-chevron' })); + + const content = el('div', { className: 'dt-accordion-content', 'data-open': 'false' }); + content.appendChild(el('div', { style: 'padding: var(--space-4);' }, item.content)); + + header.addEventListener('click', () => { + const expanded = header.getAttribute('aria-expanded') === 'true'; + header.setAttribute('aria-expanded', String(!expanded)); + content.setAttribute('data-open', String(!expanded)); + }); + + acc.appendChild(header); + acc.appendChild(content); + } + return acc; + } + + container.appendChild( + section('Accordion', 'Click headers to expand. 5px top border, chevron rotation.', + accordion([ + { title: 'Size', content: 'Small, Medium, Large options available.' }, + { title: 'Chip Type', content: 'NTAG, DESFire, MIFARE Classic.' }, + { title: 'Frequency', content: '13.56 MHz (HF), 125 kHz (LF).' }, + ]), + codeLabel('.dt-accordion > .dt-accordion-header + .dt-accordion-content'), + ), + ); + + // Quantity Stepper + function stepper(initialValue: number, min: number, max: number): HTMLElement { + let value = initialValue; + const wrapper = el('div', { className: 'dt-stepper' }); + const minusBtn = el('button', { className: 'dt-stepper-btn' }, '\u2212') as HTMLButtonElement; + const valueEl = el('span', { className: 'dt-stepper-value' }, String(value)); + const plusBtn = el('button', { className: 'dt-stepper-btn' }, '+') as HTMLButtonElement; + + function update() { + valueEl.textContent = String(value); + minusBtn.disabled = value <= min; + plusBtn.disabled = value >= max; + } + + minusBtn.addEventListener('click', () => { value = Math.max(min, value - 1); update(); }); + plusBtn.addEventListener('click', () => { value = Math.min(max, value + 1); update(); }); + + wrapper.appendChild(minusBtn); + wrapper.appendChild(valueEl); + wrapper.appendChild(plusBtn); + update(); + return wrapper; + } + + container.appendChild( + section('Quantity Stepper', 'Beveled +/- buttons with center display.', + stepper(1, 0, 10), + codeLabel('.dt-stepper > .dt-stepper-btn + .dt-stepper-value + .dt-stepper-btn'), + ), + ); +} diff --git a/packages/showcase/desktop/src/renderer/pages/glows.ts b/packages/showcase/desktop/src/renderer/pages/glows.ts new file mode 100644 index 0000000..7a2eed4 --- /dev/null +++ b/packages/showcase/desktop/src/renderer/pages/glows.ts @@ -0,0 +1,97 @@ +import { el, section, row, codeLabel } from '../utils/dom'; + +export function renderGlowsPage(container: HTMLElement) { + container.appendChild(el('h1', { className: 'page-title' }, 'Glows')); + container.appendChild(el('p', { className: 'page-subtitle' }, 'Neon drop-shadow and text-shadow effects. Active on the DT brand.')); + + // Button Glows + container.appendChild( + section('Button Glows', 'filter: drop-shadow() follows clip-path shape. Hover for enhanced glow.', + row( + el('button', { className: 'btn-primary' }, 'PRIMARY GLOW'), + el('button', { className: 'btn-danger' }, 'DANGER GLOW'), + ), + codeLabel('.btn-primary / .btn-danger — automatic on [data-brand="dt"]'), + el('br'), + row( + el('button', { className: 'btn-secondary' }, 'SECONDARY (HOVER)'), + ), + codeLabel('.btn-secondary — glow on hover'), + ), + ); + + // Link Glow + const link = el('a', { href: '#', style: 'color: var(--color-primary); font-weight: 600; font-size: 1.125rem;' }, 'Hover this link for text glow'); + + container.appendChild( + section('Link Glow', 'text-shadow on hover for anchor elements.', + row(link), + codeLabel('a:hover — automatic on [data-brand="dt"]'), + ), + ); + + // Terminal Inset + const terminal = el('div', { className: 'terminal dt-accent-top' }); + terminal.appendChild(el('code', {}, '$ dt-web-theme --install\n> Installing design tokens...\n> Applying cyberpunk aesthetic...\n> Done. Welcome to the future.')); + + container.appendChild( + section('Terminal Inset Glow', 'Inset + outer box-shadow. No clip-path so box-shadow works directly.', + terminal, + codeLabel('.terminal — automatic on [data-brand="dt"]'), + ), + ); + + // Card Hover Glow + const card = el('div', { className: 'card', style: 'padding: var(--space-6); cursor: pointer;' }); + card.appendChild(el('div', { className: 'card-title' }, 'HOVER ME')); + card.appendChild(el('div', { className: 'card-body' }, 'Cards get a drop-shadow glow on hover.')); + + container.appendChild( + section('Card Hover Glow', 'filter: drop-shadow() respects the beveled clip-path.', + card, + codeLabel('.card:hover — automatic on [data-brand="dt"]'), + ), + ); + + // Input Focus Glow + const input = el('input', { + type: 'text', + className: 'input', + placeholder: 'Click to focus — see the glow bar', + style: 'max-width: 400px;', + }) as HTMLInputElement; + + container.appendChild( + section('Input Focus Glow', 'box-shadow: 0 4px 0 1px — bright bar beneath the input.', + input, + codeLabel('.input:focus — automatic on [data-brand="dt"]'), + ), + ); + + // Generic Glow Utilities + const glowBox = el('div', { + className: 'dt-glow', + style: 'background: var(--color-primary); padding: var(--space-4) var(--space-6); display: inline-block; font-weight: 700; color: var(--color-bg);', + }, '.dt-glow'); + const glowStrong = el('div', { + className: 'dt-glow-strong', + style: 'background: var(--color-primary); padding: var(--space-4) var(--space-6); display: inline-block; font-weight: 700; color: var(--color-bg);', + }, '.dt-glow-strong'); + const glowInset = el('div', { + className: 'dt-glow-inset', + style: 'padding: var(--space-4) var(--space-6); display: inline-block; font-weight: 700; border: 1px solid var(--color-border);', + }, '.dt-glow-inset'); + const textGlow = el('div', { + className: 'dt-text-glow', + style: 'font-size: 1.25rem; font-weight: 700; color: var(--color-primary); display: inline-block;', + }, '.dt-text-glow'); + + container.appendChild( + section('Glow Utilities', 'Generic utility classes for applying glow effects to any element.', + row(glowBox, glowStrong), + codeLabel('.dt-glow | .dt-glow-strong'), + row(glowInset, textGlow), + codeLabel('.dt-glow-inset | .dt-text-glow'), + ), + ); +} diff --git a/packages/showcase/desktop/src/renderer/pages/home.ts b/packages/showcase/desktop/src/renderer/pages/home.ts new file mode 100644 index 0000000..adbe027 --- /dev/null +++ b/packages/showcase/desktop/src/renderer/pages/home.ts @@ -0,0 +1,33 @@ +import { el, section } from '../utils/dom'; + +export function renderHomePage(container: HTMLElement) { + container.appendChild(el('h1', { className: 'page-title' }, 'DT Design System')); + container.appendChild(el('p', { className: 'page-subtitle' }, 'Web CSS component showcase — switch brands and modes in the sidebar.')); + + const categories = [ + { hash: 'bevels', title: 'Bevels', desc: 'Angular clip-path patterns — cards, buttons, badges, media frames, modals, drawers' }, + { hash: 'glows', title: 'Glows', desc: 'Neon drop-shadow and text-shadow effects for the DT brand' }, + { hash: 'forms', title: 'Forms', desc: 'Text inputs, checkboxes, switches, radios, progress bars, accordions, steppers' }, + { hash: 'tokens', title: 'Tokens', desc: 'Color palette, typography, spacing, and shape values for the active brand' }, + ]; + + for (const cat of categories) { + const link = el('a', { href: `#/${cat.hash}`, className: 'home-card-link' }); + const card = el('div', { className: 'card' }); + card.appendChild(el('div', { className: 'card-title' }, cat.title.toUpperCase())); + card.appendChild(el('div', { className: 'card-body' }, cat.desc)); + link.appendChild(card); + container.appendChild(link); + } + + // Quick overview terminal + container.appendChild( + section('Quick Start', 'Include the CSS and set data attributes on your HTML element.', + el('div', { className: 'terminal dt-accent-top' }, + el('code', {}, + '\n' + ), + ), + ), + ); +} diff --git a/packages/showcase/desktop/src/renderer/pages/tokens.ts b/packages/showcase/desktop/src/renderer/pages/tokens.ts new file mode 100644 index 0000000..7da84b8 --- /dev/null +++ b/packages/showcase/desktop/src/renderer/pages/tokens.ts @@ -0,0 +1,141 @@ +import { brands } from '@dangerousthings/tokens'; +import type { ThemeBrand } from '@dangerousthings/tokens'; +import { el, section, codeLabel } from '../utils/dom'; +import { getCurrentBrand } from '../brand-switcher'; + +export function renderTokensPage(container: HTMLElement) { + container.appendChild(el('h1', { className: 'page-title' }, 'Tokens')); + container.appendChild(el('p', { className: 'page-subtitle' }, 'Design token values for the active brand. Switch brands in the sidebar.')); + + const brandId = getCurrentBrand(); + const brand = brands[brandId]; + + if (!brand) return; + + // Color Palette — Dark Mode + const darkColors = brand.dark; + const colorEntries: [string, string][] = Object.entries(darkColors); + + const colorsGrid = el('div', { style: 'display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: var(--space-3);' }); + + for (const [name, hex] of colorEntries) { + const swatch = el('div', { style: 'display: flex; align-items: center; gap: var(--space-3);' }); + const colorBox = el('div', { style: `width: 32px; height: 32px; background: ${hex}; border: 1px solid rgba(255,255,255,0.15); flex-shrink: 0;` }); + const info = el('div'); + info.appendChild(el('div', { style: 'font-weight: 600; font-size: 0.8125rem;' }, name)); + info.appendChild(el('div', { style: 'font-family: var(--font-mono); font-size: 0.6875rem; opacity: 0.5;' }, hex)); + swatch.appendChild(colorBox); + swatch.appendChild(info); + colorsGrid.appendChild(swatch); + } + + container.appendChild( + section(`Color Palette — ${brand.name} (Dark Mode)`, brand.description, + colorsGrid, + ), + ); + + // Light Mode + const lightColors = brand.light; + const lightEntries: [string, string][] = Object.entries(lightColors); + + const lightGrid = el('div', { style: 'display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: var(--space-3);' }); + + for (const [name, hex] of lightEntries) { + const swatch = el('div', { style: 'display: flex; align-items: center; gap: var(--space-3);' }); + const colorBox = el('div', { style: `width: 32px; height: 32px; background: ${hex}; border: 1px solid rgba(255,255,255,0.15); flex-shrink: 0;` }); + const info = el('div'); + info.appendChild(el('div', { style: 'font-weight: 600; font-size: 0.8125rem;' }, name)); + info.appendChild(el('div', { style: 'font-family: var(--font-mono); font-size: 0.6875rem; opacity: 0.5;' }, hex)); + swatch.appendChild(colorBox); + swatch.appendChild(info); + lightGrid.appendChild(swatch); + } + + container.appendChild( + section(`Color Palette — ${brand.name} (Light Mode)`, 'Light mode color tokens.', + lightGrid, + ), + ); + + // Typography + const typo = el('div', { className: 'terminal', style: 'margin-bottom: var(--space-4);' }); + typo.appendChild(el('code', {}, + `heading: ${brand.typography.heading}\nbody: ${brand.typography.body}\nmono: ${brand.typography.mono}` + )); + + container.appendChild( + section('Typography', 'Font family tokens for headings, body text, and monospace.', + typo, + ), + ); + + // Typography Scale Demo + const scaleItems = [ + { tag: 'h1', label: 'Heading 1', style: 'font-family: var(--font-heading); font-size: 2rem; font-weight: 900;' }, + { tag: 'h2', label: 'Heading 2', style: 'font-family: var(--font-heading); font-size: 1.5rem; font-weight: 700;' }, + { tag: 'h3', label: 'Heading 3', style: 'font-family: var(--font-heading); font-size: 1.25rem; font-weight: 600;' }, + { tag: 'p', label: 'Body text — the quick brown fox jumps over the lazy dog', style: 'font-family: var(--font-body); font-size: 1rem;' }, + { tag: 'code', label: 'const monospace = "code";', style: 'font-family: var(--font-mono); font-size: 0.875rem;' }, + ]; + + const scaleDemo = el('div', { style: 'display: flex; flex-direction: column; gap: var(--space-3);' }); + for (const item of scaleItems) { + scaleDemo.appendChild(el(item.tag, { style: item.style }, item.label)); + } + + container.appendChild( + section('Typography Scale', 'Live rendering with the current brand\'s font families.', + scaleDemo, + ), + ); + + // Shape Tokens + const shape = el('div', { className: 'terminal', style: 'margin-bottom: var(--space-4);' }); + shape.appendChild(el('code', {}, + `bevelSm: ${brand.shape.bevelSm}\nbevelMd: ${brand.shape.bevelMd}\nbevelLg: ${brand.shape.bevelLg}\nradiusSm: ${brand.shape.radiusSm}\nradius: ${brand.shape.radius}\nradiusLg: ${brand.shape.radiusLg}` + )); + + container.appendChild( + section('Shape Tokens', 'Bevel and radius values determine the visual language — angular (DT) vs rounded (Classic).', + shape, + ), + ); + + // Spacing Scale + const spacings = [ + { name: '--space-1', value: '0.25rem (4px)' }, + { name: '--space-2', value: '0.5rem (8px)' }, + { name: '--space-3', value: '0.75rem (12px)' }, + { name: '--space-4', value: '1rem (16px)' }, + { name: '--space-6', value: '1.5rem (24px)' }, + { name: '--space-8', value: '2rem (32px)' }, + ]; + + const spacingDemo = el('div', { style: 'display: flex; flex-direction: column; gap: var(--space-2);' }); + for (const sp of spacings) { + const row = el('div', { style: 'display: flex; align-items: center; gap: var(--space-3);' }); + row.appendChild(el('div', { style: `width: ${sp.name.replace('--', 'var(--') + ')'}; width: calc(${sp.value.split(' ')[0]} * 6); height: 12px; background: var(--color-primary); opacity: 0.6;` })); + row.appendChild(el('span', { style: 'font-family: var(--font-mono); font-size: 0.75rem; opacity: 0.6;' }, `${sp.name}: ${sp.value}`)); + spacingDemo.appendChild(row); + } + + container.appendChild( + section('Spacing Scale', 'Shared spacing tokens across all brands.', + spacingDemo, + ), + ); + + // CSS Custom Properties reference + const cssRef = el('div', { className: 'terminal' }); + cssRef.appendChild(el('code', {}, + `/* Generated CSS custom properties */\n--color-bg: ${darkColors.bg};\n--color-primary: ${darkColors.primary};\n--color-secondary: ${darkColors.secondary};\n--color-error: ${darkColors.error};\n--color-success: ${darkColors.success};\n--bevel-sm: ${brand.shape.bevelSm};\n--bevel-md: ${brand.shape.bevelMd};\n--font-heading: ${brand.typography.heading};` + )); + + container.appendChild( + section('CSS Custom Properties', 'These are generated from TypeScript tokens and applied per-brand via data-brand attribute.', + cssRef, + codeLabel('See packages/tokens/src/scripts/generate-css.ts'), + ), + ); +} diff --git a/packages/showcase/desktop/src/renderer/style.css b/packages/showcase/desktop/src/renderer/style.css new file mode 100644 index 0000000..f152636 --- /dev/null +++ b/packages/showcase/desktop/src/renderer/style.css @@ -0,0 +1,305 @@ +/* Showcase App Layout */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + background: var(--color-bg); + color: var(--color-text-primary); + font-family: var(--font-body); + min-height: 100vh; +} + +#app { + display: flex; + min-height: 100vh; +} + +/* ---- Sidebar ---- */ +#sidebar { + width: 220px; + min-height: 100vh; + background: var(--color-surface); + border-right: 2px solid var(--color-border); + padding: var(--space-6); + display: flex; + flex-direction: column; + gap: var(--space-4); + position: fixed; + top: 0; + left: 0; + overflow-y: auto; +} + +.nav-title { + font-family: var(--font-heading); + font-weight: 900; + font-size: 0.875rem; + letter-spacing: 0.1em; + color: var(--color-primary); + text-transform: uppercase; + padding-bottom: var(--space-4); + border-bottom: 2px solid var(--color-primary); +} + +.brand-switcher-container { + display: flex; + flex-direction: column; + gap: var(--space-2); +} + +.brand-btn { + display: block; + width: 100%; + padding: var(--space-2) var(--space-3); + border: 2px solid var(--color-primary); + background: transparent; + color: var(--color-primary); + font-weight: 700; + font-size: 0.75rem; + letter-spacing: 0.05em; + cursor: pointer; + text-transform: uppercase; + transition: all var(--transition-fast); +} + +.brand-btn:hover { + background: rgba(var(--color-primary-rgb), 0.1); +} + +.brand-btn.active { + background: var(--color-primary); + color: var(--color-bg); +} + +.mode-switcher { + display: flex; + gap: var(--space-1); + margin-top: var(--space-2); +} + +.mode-btn { + flex: 1; + padding: var(--space-1) var(--space-2); + border: 1px solid var(--color-border); + background: transparent; + color: var(--color-text-secondary); + font-size: 0.625rem; + font-weight: 600; + cursor: pointer; + text-transform: uppercase; + transition: all var(--transition-fast); +} + +.mode-btn.active { + background: var(--color-primary); + color: var(--color-bg); + border-color: var(--color-primary); +} + +.nav-links { + display: flex; + flex-direction: column; + gap: var(--space-1); +} + +.nav-link { + display: block; + padding: var(--space-2) var(--space-3); + color: var(--color-text-secondary); + text-decoration: none; + font-weight: 600; + font-size: 0.875rem; + letter-spacing: 0.02em; + text-transform: uppercase; + border-left: 3px solid transparent; + transition: all var(--transition-fast); +} + +.nav-link:hover { + color: var(--color-primary); + border-left-color: var(--color-primary); + background: rgba(var(--color-primary-rgb), 0.05); +} + +.nav-link.active { + color: var(--color-primary); + border-left-color: var(--color-primary); +} + +/* ---- Main Content ---- */ +#content { + flex: 1; + margin-left: 220px; + padding: var(--space-8); + max-width: 900px; +} + +/* ---- Demo Sections ---- */ +.demo-section { + margin-bottom: var(--space-8); +} + +.demo-section h2 { + font-family: var(--font-heading); + font-weight: 700; + font-size: 1.125rem; + color: var(--color-primary); + text-transform: uppercase; + letter-spacing: 0.05em; + margin-bottom: var(--space-2); + padding-bottom: var(--space-2); + border-bottom: 2px solid var(--color-primary); +} + +.demo-description { + color: var(--color-text-muted); + font-size: 0.875rem; + margin-bottom: var(--space-4); +} + +.demo-row { + display: flex; + flex-wrap: wrap; + gap: var(--space-3); + align-items: center; + margin-bottom: var(--space-4); +} + +.demo-label { + color: var(--color-text-muted); + font-size: 0.6875rem; + text-transform: uppercase; + letter-spacing: 0.05em; + margin-bottom: var(--space-2); + margin-top: var(--space-4); +} + +.code-label { + color: rgba(var(--color-text-primary-rgb, 255, 255, 255), 0.35); + font-size: 0.625rem; + font-family: var(--font-mono); + margin-top: var(--space-1); +} + +/* ---- Shared Component Base Styles ---- */ + +/* Buttons */ +.btn-primary, +.btn-secondary, +.btn-danger { + display: inline-flex; + align-items: center; + justify-content: center; + padding: var(--space-3) var(--space-6); + font-weight: 700; + font-size: 0.875rem; + text-transform: uppercase; + letter-spacing: 0.05em; + cursor: pointer; + transition: all var(--transition-fast); + border: none; +} + +.btn-primary { + background: var(--color-primary); + color: var(--color-bg); +} + +.btn-primary:hover { + opacity: 0.9; +} + +.btn-secondary { + background: transparent; + color: var(--color-primary); + border: 2px solid var(--color-primary); +} + +.btn-danger { + background: var(--color-error); + color: var(--color-bg); +} + +.btn-danger:hover { + opacity: 0.9; +} + +/* Cards */ +.card { + padding: var(--space-6); + margin-bottom: var(--space-4); +} + +.card-title { + font-weight: 900; + font-size: 1rem; + text-transform: uppercase; + letter-spacing: 0.05em; +} + +.card-body { + color: var(--color-text-secondary); + font-size: 0.875rem; + line-height: 1.5; +} + +/* Badges */ +.badge { + display: inline-block; + padding: var(--space-2) var(--space-3); + font-weight: 600; + font-size: 0.75rem; + text-transform: uppercase; + letter-spacing: 0.05em; +} + +/* Inputs */ +.input, +input[type="text"], +input[type="email"], +input[type="password"] { + padding: var(--space-3) var(--space-4); + font-size: 0.875rem; + width: 100%; + max-width: 400px; + border: 2px solid var(--color-border); + background: var(--color-bg); + color: var(--color-text-primary); +} + +.input:focus, +input:focus { + outline: none; +} + +/* Terminal */ +.terminal { + background: var(--color-surface); + border: 1px solid var(--color-border); + padding: var(--space-6); + font-family: var(--font-mono); + font-size: 0.8125rem; + color: var(--color-accent, var(--color-primary)); + line-height: 1.6; +} + +/* Page title */ +.page-title { + font-family: var(--font-heading); + font-weight: 900; + font-size: 1.75rem; + color: var(--color-primary); + text-transform: uppercase; + letter-spacing: 0.1em; + margin-bottom: var(--space-2); +} + +.page-subtitle { + color: var(--color-text-muted); + font-size: 0.875rem; + margin-bottom: var(--space-8); +} diff --git a/packages/showcase/desktop/src/renderer/utils/dom.ts b/packages/showcase/desktop/src/renderer/utils/dom.ts new file mode 100644 index 0000000..8fbbd5a --- /dev/null +++ b/packages/showcase/desktop/src/renderer/utils/dom.ts @@ -0,0 +1,46 @@ +export function el( + tag: string, + attrs?: Record, + ...children: (string | HTMLElement)[] +): HTMLElement { + const element = document.createElement(tag); + if (attrs) { + for (const [key, value] of Object.entries(attrs)) { + if (key === 'className') { + element.className = value; + } else { + element.setAttribute(key, value); + } + } + } + for (const child of children) { + if (typeof child === 'string') { + element.appendChild(document.createTextNode(child)); + } else { + element.appendChild(child); + } + } + return element; +} + +export function section(title: string, description: string, ...children: HTMLElement[]): HTMLElement { + const container = el('div', { className: 'demo-section' }); + container.appendChild(el('h2', {}, title)); + container.appendChild(el('p', { className: 'demo-description' }, description)); + for (const child of children) { + container.appendChild(child); + } + return container; +} + +export function row(...children: HTMLElement[]): HTMLElement { + return el('div', { className: 'demo-row' }, ...children); +} + +export function label(text: string): HTMLElement { + return el('div', { className: 'demo-label' }, text); +} + +export function codeLabel(text: string): HTMLElement { + return el('div', { className: 'code-label' }, text); +} diff --git a/packages/showcase/desktop/src/renderer/utils/router.ts b/packages/showcase/desktop/src/renderer/utils/router.ts new file mode 100644 index 0000000..bcb52ef --- /dev/null +++ b/packages/showcase/desktop/src/renderer/utils/router.ts @@ -0,0 +1,28 @@ +export function initRouter( + routes: Record void>, + container: HTMLElement, +) { + function navigate() { + const hash = window.location.hash.replace('#/', '').replace('#', ''); + const render = routes[hash] || routes['']; + + // Update active nav link + document.querySelectorAll('.nav-link').forEach((link) => { + const href = (link as HTMLAnchorElement).getAttribute('href') || ''; + const linkHash = href.replace('#/', '').replace('#', ''); + link.classList.toggle('active', linkHash === hash); + }); + + // Clear content safely + while (container.firstChild) { + container.removeChild(container.firstChild); + } + + if (render) { + render(container); + } + } + + window.addEventListener('hashchange', navigate); + navigate(); +} diff --git a/packages/showcase/desktop/tsconfig.json b/packages/showcase/desktop/tsconfig.json new file mode 100644 index 0000000..a32c1a5 --- /dev/null +++ b/packages/showcase/desktop/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist/renderer", + "rootDir": "src/renderer", + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "noEmit": true + }, + "include": ["src/renderer"] +} diff --git a/packages/showcase/desktop/tsconfig.main.json b/packages/showcase/desktop/tsconfig.main.json new file mode 100644 index 0000000..233b933 --- /dev/null +++ b/packages/showcase/desktop/tsconfig.main.json @@ -0,0 +1,14 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist/main", + "rootDir": "src/main", + "module": "CommonJS", + "moduleResolution": "node", + "lib": ["ES2022"], + "declaration": false, + "declarationMap": false, + "sourceMap": false + }, + "include": ["src/main"] +} diff --git a/packages/showcase/desktop/vite.config.ts b/packages/showcase/desktop/vite.config.ts new file mode 100644 index 0000000..9a1079e --- /dev/null +++ b/packages/showcase/desktop/vite.config.ts @@ -0,0 +1,16 @@ +import { defineConfig } from 'vite'; +import path from 'path'; + +export default defineConfig({ + root: 'src/renderer', + base: './', + build: { + outDir: '../../dist/renderer', + emptyOutDir: true, + }, + resolve: { + alias: { + '@dangerousthings/web': path.resolve(__dirname, '../../web/dist'), + }, + }, +}); diff --git a/packages/showcase/mobile/App.tsx b/packages/showcase/mobile/App.tsx new file mode 100644 index 0000000..bcfd46b --- /dev/null +++ b/packages/showcase/mobile/App.tsx @@ -0,0 +1,45 @@ +import React from 'react'; +import { ActivityIndicator, View } from 'react-native'; +import { useFonts } from 'expo-font'; +import { NavigationContainer } from '@react-navigation/native'; +import { DTThemeProvider } from '@dangerousthings/react-native'; +import { BrandProvider, useBrand } from './src/brand/BrandContext'; +import { RootNavigator } from './src/navigation/RootNavigator'; +import { useNavigationTheme } from './src/navigation/navigationTheme'; + +function AppContent() { + const { theme } = useBrand(); + const navigationTheme = useNavigationTheme(); + + return ( + + + + + + ); +} + +export default function App() { + const [fontsLoaded] = useFonts({ + Tektur: require('./assets/fonts/Tektur-VariableFont_wdth,wght.ttf'), + 'Tektur-Regular': require('./assets/fonts/Tektur-Regular.ttf'), + 'Tektur-Medium': require('./assets/fonts/Tektur-Medium.ttf'), + 'Tektur-SemiBold': require('./assets/fonts/Tektur-SemiBold.ttf'), + 'Tektur-Bold': require('./assets/fonts/Tektur-Bold.ttf'), + }); + + if (!fontsLoaded) { + return ( + + + + ); + } + + return ( + + + + ); +} diff --git a/packages/showcase/mobile/android/.gitignore b/packages/showcase/mobile/android/.gitignore new file mode 100644 index 0000000..8a6be07 --- /dev/null +++ b/packages/showcase/mobile/android/.gitignore @@ -0,0 +1,16 @@ +# OSX +# +.DS_Store + +# Android/IntelliJ +# +build/ +.idea +.gradle +local.properties +*.iml +*.hprof +.cxx/ + +# Bundle artifacts +*.jsbundle diff --git a/packages/showcase/mobile/android/app/build.gradle b/packages/showcase/mobile/android/app/build.gradle new file mode 100644 index 0000000..6cfa6f7 --- /dev/null +++ b/packages/showcase/mobile/android/app/build.gradle @@ -0,0 +1,182 @@ +apply plugin: "com.android.application" +apply plugin: "org.jetbrains.kotlin.android" +apply plugin: "com.facebook.react" + +def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath() + +/** + * This is the configuration block to customize your React Native Android app. + * By default you don't need to apply any configuration, just uncomment the lines you need. + */ +react { + entryFile = file(["node", "-e", "require('expo/scripts/resolveAppEntry')", projectRoot, "android", "absolute"].execute(null, rootDir).text.trim()) + reactNativeDir = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile() + hermesCommand = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + "/sdks/hermesc/%OS-BIN%/hermesc" + codegenDir = new File(["node", "--print", "require.resolve('@react-native/codegen/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile() + + enableBundleCompression = (findProperty('android.enableBundleCompression') ?: false).toBoolean() + // Use Expo CLI to bundle the app, this ensures the Metro config + // works correctly with Expo projects. + cliFile = new File(["node", "--print", "require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })"].execute(null, rootDir).text.trim()) + bundleCommand = "export:embed" + + /* Folders */ + // The root of your project, i.e. where "package.json" lives. Default is '../..' + // root = file("../../") + // The folder where the react-native NPM package is. Default is ../../node_modules/react-native + // reactNativeDir = file("../../node_modules/react-native") + // The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen + // codegenDir = file("../../node_modules/@react-native/codegen") + + /* Variants */ + // The list of variants to that are debuggable. For those we're going to + // skip the bundling of the JS bundle and the assets. By default is just 'debug'. + // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. + // debuggableVariants = ["liteDebug", "prodDebug"] + + /* Bundling */ + // A list containing the node command and its flags. Default is just 'node'. + // nodeExecutableAndArgs = ["node"] + + // + // The path to the CLI configuration file. Default is empty. + // bundleConfig = file(../rn-cli.config.js) + // + // The name of the generated asset file containing your JS bundle + // bundleAssetName = "MyApplication.android.bundle" + // + // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' + // entryFile = file("../js/MyApplication.android.js") + // + // A list of extra flags to pass to the 'bundle' commands. + // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle + // extraPackagerArgs = [] + + /* Hermes Commands */ + // The hermes compiler command to run. By default it is 'hermesc' + // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" + // + // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" + // hermesFlags = ["-O", "-output-source-map"] + + /* Autolinking */ + autolinkLibrariesWithApp() +} + +/** + * Set this to true in release builds to optimize the app using [R8](https://developer.android.com/topic/performance/app-optimization/enable-app-optimization). + */ +def enableMinifyInReleaseBuilds = (findProperty('android.enableMinifyInReleaseBuilds') ?: false).toBoolean() + +/** + * The preferred build flavor of JavaScriptCore (JSC) + * + * For example, to use the international variant, you can use: + * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` + * + * The international variant includes ICU i18n library and necessary data + * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that + * give correct results when using with locales other than en-US. Note that + * this variant is about 6MiB larger per architecture than default. + */ +def jscFlavor = 'io.github.react-native-community:jsc-android:2026004.+' + +android { + ndkVersion rootProject.ext.ndkVersion + + buildToolsVersion rootProject.ext.buildToolsVersion + compileSdk rootProject.ext.compileSdkVersion + + namespace 'com.dangerousthings.showcase' + defaultConfig { + applicationId 'com.dangerousthings.showcase' + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0.0" + + buildConfigField "String", "REACT_NATIVE_RELEASE_LEVEL", "\"${findProperty('reactNativeReleaseLevel') ?: 'stable'}\"" + } + signingConfigs { + debug { + storeFile file('debug.keystore') + storePassword 'android' + keyAlias 'androiddebugkey' + keyPassword 'android' + } + } + buildTypes { + debug { + signingConfig signingConfigs.debug + } + release { + // Caution! In production, you need to generate your own keystore file. + // see https://reactnative.dev/docs/signed-apk-android. + signingConfig signingConfigs.debug + def enableShrinkResources = findProperty('android.enableShrinkResourcesInReleaseBuilds') ?: 'false' + shrinkResources enableShrinkResources.toBoolean() + minifyEnabled enableMinifyInReleaseBuilds + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + def enablePngCrunchInRelease = findProperty('android.enablePngCrunchInReleaseBuilds') ?: 'true' + crunchPngs enablePngCrunchInRelease.toBoolean() + } + } + packagingOptions { + jniLibs { + def enableLegacyPackaging = findProperty('expo.useLegacyPackaging') ?: 'false' + useLegacyPackaging enableLegacyPackaging.toBoolean() + } + } + androidResources { + ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~' + } +} + +// Apply static values from `gradle.properties` to the `android.packagingOptions` +// Accepts values in comma delimited lists, example: +// android.packagingOptions.pickFirsts=/LICENSE,**/picasa.ini +["pickFirsts", "excludes", "merges", "doNotStrip"].each { prop -> + // Split option: 'foo,bar' -> ['foo', 'bar'] + def options = (findProperty("android.packagingOptions.$prop") ?: "").split(","); + // Trim all elements in place. + for (i in 0.. 0) { + println "android.packagingOptions.$prop += $options ($options.length)" + // Ex: android.packagingOptions.pickFirsts += '**/SCCS/**' + options.each { + android.packagingOptions[prop] += it + } + } +} + +dependencies { + // The version of react-native is set by the React Native Gradle Plugin + implementation("com.facebook.react:react-android") + + def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true"; + def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true"; + def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true"; + + if (isGifEnabled) { + // For animated gif support + implementation("com.facebook.fresco:animated-gif:${expoLibs.versions.fresco.get()}") + } + + if (isWebpEnabled) { + // For webp support + implementation("com.facebook.fresco:webpsupport:${expoLibs.versions.fresco.get()}") + if (isWebpAnimatedEnabled) { + // Animated webp support + implementation("com.facebook.fresco:animated-webp:${expoLibs.versions.fresco.get()}") + } + } + + if (hermesEnabled.toBoolean()) { + implementation("com.facebook.react:hermes-android") + } else { + implementation jscFlavor + } +} diff --git a/packages/showcase/mobile/android/app/debug.keystore b/packages/showcase/mobile/android/app/debug.keystore new file mode 100644 index 0000000000000000000000000000000000000000..364e105ed39fbfd62001429a68140672b06ec0de GIT binary patch literal 2257 zcmchYXEfYt8;7T1^dLH$VOTZ%2NOdOH5j5LYLtZ0q7x-V8_6gU5)#7dkq{HTmsfNq zB3ZqcAxeY^G10@?efK?Q&)M(qInVv!xjx+IKEL}p*K@LYvIzo#AZG>st5|P)KF1_Z;y){W{<7K{nl!CPuE z_^(!C(Ol0n8 zK13*rzAtW>(wULKPRYLd7G18F8#1P`V*9`(Poj26eOXYyBVZPno~Cvvhx7vPjAuZo zF?VD!zB~QG(!zbw#qsxT8%BSpqMZ4f70ZPn-3y$L8{EVbbN9$H`B&Z1quk9tgp5FM zuxp3pJ0b8u|3+#5bkJ4SRnCF2l7#DyLYXYY8*?OuAwK4E6J{0N=O3QNVzQ$L#FKkR zi-c@&!nDvezOV$i$Lr}iF$XEcwnybQ6WZrMKuw8gCL^U#D;q3t&HpTbqyD%vG=TeDlzCT~MXUPC|Leb-Uk+ z=vnMd(|>ld?Fh>V8poP;q;;nc@en$|rnP0ytzD&fFkCeUE^kG9Kx4wUh!!rpjwKDP zyw_e|a^x_w3E zP}}@$g>*LLJ4i0`Gx)qltL}@;mDv}D*xR^oeWcWdPkW@Uu)B^X&4W1$p6}ze!zudJ zyiLg@uggoMIArBr*27EZV7djDg@W1MaL+rcZ-lrANJQ%%>u8)ZMWU@R2qtnmG(acP z0d_^!t>}5W zpT`*2NR+0+SpTHb+6Js4b;%LJB;B_-ChhnU5py}iJtku*hm5F0!iql8Hrpcy1aYbT z1*dKC5ua6pMX@@iONI?Hpr%h;&YaXp9n!ND7-=a%BD7v&g zOO41M6EbE24mJ#S$Ui0-brR5ML%@|ndz^)YLMMV1atna{Fw<;TF@>d&F|!Z>8eg>>hkFrV)W+uv=`^F9^e zzzM2*oOjT9%gLoub%(R57p-`TXFe#oh1_{&N-YN z<}artH|m=d8TQuKSWE)Z%puU|g|^^NFwC#N=@dPhasyYjoy(fdEVfKR@cXKHZV-`06HsP`|Ftx;8(YD$fFXumLWbGnu$GMqRncXYY9mwz9$ap zQtfZB^_BeNYITh^hA7+(XNFox5WMeG_LtJ%*Q}$8VKDI_p8^pqX)}NMb`0e|wgF7D zuQACY_Ua<1ri{;Jwt@_1sW9zzdgnyh_O#8y+C;LcZq6=4e^cs6KvmK@$vVpKFGbQ= z$)Eux5C|Fx;Gtmv9^#Y-g@7Rt7*eLp5n!gJmn7&B_L$G?NCN`AP>cXQEz}%F%K;vUs{+l4Q{}eWW;ATe2 zqvXzxoIDy(u;F2q1JH7Sf;{jy_j})F+cKlIOmNfjBGHoG^CN zM|Ho&&X|L-36f}Q-obEACz`sI%2f&k>z5c$2TyTSj~vmO)BW~+N^kt`Jt@R|s!){H ze1_eCrlNaPkJQhL$WG&iRvF*YG=gXd1IyYQ9ew|iYn7r~g!wOnw;@n42>enAxBv*A zEmV*N#sxdicyNM=A4|yaOC5MByts}s_Hpfj|y<6G=o=!3S@eIFKDdpR7|FY>L&Wat&oW&cm&X~ z5Bt>Fcq(fgnvlvLSYg&o6>&fY`ODg4`V^lWWD=%oJ#Kbad2u~! zLECFS*??>|vDsNR&pH=Ze0Eo`sC_G`OjoEKVHY|wmwlX&(XBE<@sx3Hd^gtd-fNwUHsylg06p`U2y_={u}Bc + + + + + diff --git a/packages/showcase/mobile/android/app/src/debugOptimized/AndroidManifest.xml b/packages/showcase/mobile/android/app/src/debugOptimized/AndroidManifest.xml new file mode 100644 index 0000000..3ec2507 --- /dev/null +++ b/packages/showcase/mobile/android/app/src/debugOptimized/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/packages/showcase/mobile/android/app/src/main/AndroidManifest.xml b/packages/showcase/mobile/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..b94f6e3 --- /dev/null +++ b/packages/showcase/mobile/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/showcase/mobile/android/app/src/main/java/com/dangerousthings/showcase/MainActivity.kt b/packages/showcase/mobile/android/app/src/main/java/com/dangerousthings/showcase/MainActivity.kt new file mode 100644 index 0000000..5ffa609 --- /dev/null +++ b/packages/showcase/mobile/android/app/src/main/java/com/dangerousthings/showcase/MainActivity.kt @@ -0,0 +1,61 @@ +package com.dangerousthings.showcase + +import android.os.Build +import android.os.Bundle + +import com.facebook.react.ReactActivity +import com.facebook.react.ReactActivityDelegate +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled +import com.facebook.react.defaults.DefaultReactActivityDelegate + +import expo.modules.ReactActivityDelegateWrapper + +class MainActivity : ReactActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + // Set the theme to AppTheme BEFORE onCreate to support + // coloring the background, status bar, and navigation bar. + // This is required for expo-splash-screen. + setTheme(R.style.AppTheme); + super.onCreate(null) + } + + /** + * Returns the name of the main component registered from JavaScript. This is used to schedule + * rendering of the component. + */ + override fun getMainComponentName(): String = "main" + + /** + * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] + * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] + */ + override fun createReactActivityDelegate(): ReactActivityDelegate { + return ReactActivityDelegateWrapper( + this, + BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, + object : DefaultReactActivityDelegate( + this, + mainComponentName, + fabricEnabled + ){}) + } + + /** + * Align the back button behavior with Android S + * where moving root activities to background instead of finishing activities. + * @see onBackPressed + */ + override fun invokeDefaultOnBackPressed() { + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) { + if (!moveTaskToBack(false)) { + // For non-root activities, use the default implementation to finish them. + super.invokeDefaultOnBackPressed() + } + return + } + + // Use the default back button implementation on Android S + // because it's doing more than [Activity.moveTaskToBack] in fact. + super.invokeDefaultOnBackPressed() + } +} diff --git a/packages/showcase/mobile/android/app/src/main/java/com/dangerousthings/showcase/MainApplication.kt b/packages/showcase/mobile/android/app/src/main/java/com/dangerousthings/showcase/MainApplication.kt new file mode 100644 index 0000000..325a298 --- /dev/null +++ b/packages/showcase/mobile/android/app/src/main/java/com/dangerousthings/showcase/MainApplication.kt @@ -0,0 +1,56 @@ +package com.dangerousthings.showcase + +import android.app.Application +import android.content.res.Configuration + +import com.facebook.react.PackageList +import com.facebook.react.ReactApplication +import com.facebook.react.ReactNativeApplicationEntryPoint.loadReactNative +import com.facebook.react.ReactNativeHost +import com.facebook.react.ReactPackage +import com.facebook.react.ReactHost +import com.facebook.react.common.ReleaseLevel +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint +import com.facebook.react.defaults.DefaultReactNativeHost + +import expo.modules.ApplicationLifecycleDispatcher +import expo.modules.ReactNativeHostWrapper + +class MainApplication : Application(), ReactApplication { + + override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper( + this, + object : DefaultReactNativeHost(this) { + override fun getPackages(): List = + PackageList(this).packages.apply { + // Packages that cannot be autolinked yet can be added manually here, for example: + // add(MyReactNativePackage()) + } + + override fun getJSMainModuleName(): String = ".expo/.virtual-metro-entry" + + override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG + + override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED + } + ) + + override val reactHost: ReactHost + get() = ReactNativeHostWrapper.createReactHost(applicationContext, reactNativeHost) + + override fun onCreate() { + super.onCreate() + DefaultNewArchitectureEntryPoint.releaseLevel = try { + ReleaseLevel.valueOf(BuildConfig.REACT_NATIVE_RELEASE_LEVEL.uppercase()) + } catch (e: IllegalArgumentException) { + ReleaseLevel.STABLE + } + loadReactNative(this) + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } + + override fun onConfigurationChanged(newConfig: Configuration) { + super.onConfigurationChanged(newConfig) + ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig) + } +} diff --git a/packages/showcase/mobile/android/app/src/main/res/drawable/ic_launcher_background.xml b/packages/showcase/mobile/android/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..c8568e1 --- /dev/null +++ b/packages/showcase/mobile/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/packages/showcase/mobile/android/app/src/main/res/drawable/rn_edit_text_material.xml b/packages/showcase/mobile/android/app/src/main/res/drawable/rn_edit_text_material.xml new file mode 100644 index 0000000..5c25e72 --- /dev/null +++ b/packages/showcase/mobile/android/app/src/main/res/drawable/rn_edit_text_material.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + diff --git a/packages/showcase/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/packages/showcase/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..a2f5908281d070150700378b64a84c7db1f97aa1 GIT binary patch literal 3056 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 axPAxe%7rDusX+w*00006jj zwslyNbxW4-gAj;v!J{u#G1>?8h`uw{1?o<0nB+tYjKOW@kQM}bUbgE7^CRD4K zgurXDRXWsX-Q$uVZ0o5KpKdOl5?!YGV|1Cict&~YiG*r%TU43m2Hf99&})mPEvepe z0_$L1e8*kL@h2~YPCajw6Kkw%Bh1Pp)6B|t06|1rR3xRYjBxjSEUmZk@7wX+2&-~! z!V&EdUw!o7hqZI=T4a)^N1D|a=2scW6oZU|Q=}_)gz4pu#43{muRW1cW2WC&m-ik? zskL0dHaVZ5X4PN*v4ZEAB9m;^6r-#eJH?TnU#SN&MO`Aj%)ybFYE+Pf8Vg^T3ybTl zu50EU=3Q60vA7xg@YQ$UKD-7(jf%}8gWS$_9%)wD1O2xB!_VxzcJdN!_qQ9j8#o^Kb$2+XTKxM8p>Ve{O8LcI(e2O zeg{tPSvIFaM+_Ivk&^FEk!WiV^;s?v8fmLglKG<7EO3ezShZ_0J-`(fM;C#i5~B@w zzx;4Hu{-SKq1{ftxbjc(dX3rj46zWzu02-kR>tAoFYDaylWMJ`>FO2QR%cfi+*^9A z54;@nFhVJEQ{88Q7n&mUvLn33icX`a355bQ=TDRS4Uud|cnpZ?a5X|cXgeBhYN7btgj zfrwP+iKdz4?L7PUDFA_HqCI~GMy`trF@g!KZ#+y6U%p5#-nm5{bUh>vhr^77p~ zq~UTK6@uhDVAQcL4g#8p-`vS4CnD9M_USvfi(M-;7nXjlk)~pr>zOI`{;$VXt;?VTNcCePv4 zgZm`^)VCx8{D=H2c!%Y*Sj3qbx z3Bcvv7qRAl|BGZCts{+>FZrE;#w(Yo2zD#>s3a*Bm!6{}vF_;i)6sl_+)pUj?b%BL!T1ELx|Q*Gi=7{Z_>n0I(uv>N^kh|~nJfab z-B6Q6i-x>YYa_42Hv&m>NNuPj31wOaHZ2`_8f~BtbXc@`9CZpHzaE@9sme%_D-HH! z_+C&VZ5tjE65?}X&u-D4AHRJ|7M{hR!}PYPpANP?7wnur`Z(&LFwzUmDz}m6%m#_` zN1ihq8f|zZ&zTL92M2b-hMpPyjp;j(qwgP9x)qI?EZx@<$g#>i7(MC}@*J1VGXm6J ztz1=RK@?%Qz^vmWNydd0K7oyrXw`TLb`z;fP6eV|NZ@9kKH zIyMqzZ9Y_)PZnC#UgW6&o7RiGXSCtSQvnrvJ07P9WCuE5TE27za*L6r1qX7pIDFiP znSaHYJF8sl^n0|3j!i{?fD%?fpQ8-}VX4%STy1t@8)G-8??Fy}j}~2_iJ79Y<9BW~ z!~)T{3Y|lwcVD5s4z^GP5M=~t`V?*Wng7gTvC9%p>ErZpM)pQVx57>AIcf1j4QFg^w>YYB%MypIj2syoXw9$K!N8%s=iPIw!LE-+6v6*Rm zvCqdN&kwI+@pEX0FTb&P)ujD9Td-sLBVV=A$;?RiFOROnT^LC^+PZR*u<3yl z7b%>viF-e48L=c`4Yhgb^U=+w7snP$R-gzx379%&q-0#fsMgvQlo>14~`1YOv{?^ z*^VYyiSJO8fE65P0FORgqSz#mi#9@40VO@TaPOT7pJq3WTK9*n;Niogu+4zte1FUa zyN7rIFbaQxeK{^RC3Iu@_J~ii&CvyWn^W}4wpexHwV9>GKO$zR3a&*L9&AgL=QfA$ z+G-YMq;1D{;N38`jTdN}Pw77sDCR|$2s+->;9gh-ObE_muwxq>sEpX)ywtgCHKIATY}p&%F4bRV>R9rYpeWbT(xnE7}?(HDXFgNDdC^@gUdK& zk=MolYT3>rpR*$Ell2!`c zjrIZftl&PUxlH2EgV+3VfQy&FjhL&5*Zg&R8xrSx?WgB?YuLO-JDaP3jr*I~qiywy z`-52AwB_6L#X ztms{{yRkRfQLbsb#Ov%`)acN(OCewI3Ex__xed17hg#g4c1blx?sK}UQg%PM@N;5d zsg{y6(|`H1Xfbz@5x{1688tu7TGkzFEBhOPDdFK(H_NQIFf|(>)ltFd!WdnkrY&mp z0y@5yU2;u1_enx%+U9tyY-LNWrd4^Wi?x<^r`QbaLBngWL`HzX@G550 zrdyNjhPTknrrJn#jT0WD0Z)WJRi&3FKJ#Sa&|883%QxM-?S%4niK{~k81<(c11sLk|!_7%s zH>c$`*nP-wA8Dx-K(HE~JG_@Yxxa;J+2yr+*iVlh;2Eiw?e`D1vu6*qY1+XTe8RVu z?RV%L|Mk!wO}j^S)p4H%?G37StD0Rx{_Y00%3a+V^SyOkfV@ZuFlEc;vR9r-D>cYU&plUkXL|M%1AYBQ3DI;;hF%_X@m*cTQAMZ4+FO74@AQB{A*_HtoXT@}l=8awaa7{RHC>07s?E%G{iSeRbh z?h#NM)bP`z`zdp5lij!N*df;4+sgz&U_JEr?N9#1{+UG3^11oQUOvU4W%tD1Cie3; z4zcz0SIrK-PG0(mp9gTYr(4ngx;ieH{NLq{* z;Pd=vS6KZYPV?DLbo^)~2dTpiKVBOh?|v2XNA)li)4V6B6PA!iq#XV5eO{{vL%OmU z0z3ZE2kcEkZ`kK(g^#s)#&#Zn5zw!R93cW^4+g0D=ydf&j4o_ti<@2WbzC>{(QhCL z(=%Zb;Ax8U=sdec9pkk|cW)1Ko;gK{-575HsDZ!w@WOQ^Up)GGorc38cGxe<$8O!6 zmQ`=@;TG{FjWq(s0eBn5I~vVgoE}un8+#YuR$Asq?lobvVAO-`SBs3!&;QEKT>gZ0T)jG^Foo~J2YkV&mi-axlvC}-(J4S2 z;opuO)+FIV#}&4;wwisb>{XU+FJ~tyK7UaG@ZD^C1^brazu7Xkh5Od}&P)GufW=u# zMxOwfWJ3a^MZha>9OmQ)@!Y;v*4@+dg~s~NQ;q@hV~l>lw`P)d`4XF9rE?aEFe(JV zI>11}Ny%^CkO=VN>wCV?P!-?VdT3vWe4zBLV*?6XPqsC%n93bQXvydh0Mo+tXHO4^ zxQ{x0?CG{fmToCyYny7>*-tNh;Sh9=THLzkS~lBiV9)IKa^C~_p8MVZWAUb)Btjt< zVZ;l7?_KnLHelj>)M1|Q_%pk5b?Bod_&86o-#36xIEag%b+8JqlDy@B^*YS*1; zGYT`@5nPgt)S^6Ap@b160C4d9do0iE;wYdn_Tr(vY{MS!ja!t*Z7G=Vz-=j5Z⁣ zwiG+x#%j}{0gU~J8;<|!B1@-XaB@{KORFwrYg_8rOv({b0EO#DbeQRm;B6_9=mXGf z-x|VL{zd`)#@yN}HkCSJbjbNlE|zL3Wm9Q8HY`sV)}3%pgN>cL^67{Z;PPL(*wT8N zUjXU{@|*hvm}({wsAC=x0^ok0%UAz0;sogW{B!nDqk|JJ5x~4NfTDgP49^zeu`csl?5mY@JdQdISc zFs!E{^grmkLnUk9 zny~m)1vws@5BFI<-0Tuo2JWX(0v`W|t(wg;s--L47WTvTMz-8l#TL^=OJNRS2?_Qj z3AKT+gvbyBi#H*-tJ%tWD|>EV3wy|8qxfzS!5RW;Jpl5*zo&^UBU=fG#2}UvRyNkK zA06Dy9;K1ca@r2T>yThYgI!ont$(G{6q#2QT+00r_x0(b)gsE`lBB?2gr55gq^D3Fi&p%E(p9>U%bv zkg1Jco(RbyTX7FDHOnl7-O@ zI$AaIl?9NJKPm(WiBP`1-#CB1QzU>&hKm)fpa5DKE{2$X0hGz-0uZ?cyTk(YC!Y&| zL=1VrNERSA5NA2jq7FACfX4JfPyj5XXl1yv0>~s;eF7L2$>&oMqeTFT2m$y7FlkON z_yurD1yIOvA;5C6016pyxBznGUt0kJ&k5r#;&>Jow`r)sp9R~PmK~lz$3xH%LT*1U zJdOyABZ3!FvNoR*vN$5ykHS8f`jA4zV+|L}i1C4`B2c{R0;UdYxaU|H)2avz@ z=mEYc|2S<+(B2Tj+FkX+2D+yFI!k9lWMA61DJ{)e;lum$(;O87?vGJJe!KtK04+N_ zI*P~t@dUb>9Xh{dbyl{-ZQ(UMgz7$|QfL5XSPkskt^NgctYC#;4WcZB1@%@wy@2t3 z2z0DI7&%b$*Aw~abe?GxE`ez@+6hOh-6*8fHRV{1os$EL@}uUZeG4h1&Be`98q*7j z=3-v+lhIjfWVo12!<>%V^a6lTgW3+_#W6n|p*~==zOH7z$0{LSZk(Tpd7EaD04hnA zL;#fxS0aD{`5^&D`}>0Uq?byDD-l2=!wm_bLcUl4gc(% za1p|itVANvFF>hghAS07Im1;IK;|b*W)}VDyI;BIp2=K*yu2a)j?B|f<44NI$NbmJ z#dE0>jI$fMr&@>4kN8MLFb4&2O9fEKaQg%(QO$4_1rVQywG^CmBLh#}_7gKW3vd?| z2?1^&KWq8}8I^_S0|)MowU_pw$q@nl@Nkn$z>BQq_KA^9yaR`(R3u{{Ig;cwt z@AJ^{ODQCm^neroM9nKNUAXi9RCK`OsP_LuR0PUR(YZCCX5dNF6VzcoK&=b^r`W?ltt|*F zpkoae%ZT{C1h~EcFui~b7fF`vb<<~j_VquuUA$}QqIKYELPp#;{u?q8Dz}WAG-(3; zjrm$i%7UbyZMM(Y{>!uJ#vNB?R~B{6Htp=>e*<{fQQ5W7V(1coCWlOON!MzZxhum| ztZBQpGR z;~#ur^&PockKdV{Q6R>o`Pl{0x!DEbpZ7y9Y;*ZvE!*gU`V1W3znva{f=?WO5I&>B z&hw6}tjECtaghm5z|C#%M;Yf_*pI^};h}Vl=^r9EN=tVDj86D;C$jIJ?K7VP+00000NkvXXu0mjf D5i!M* literal 0 HcmV?d00001 diff --git a/packages/showcase/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/packages/showcase/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..459ca609d3ae0d3943ab44cdc27feef9256dc6d7 GIT binary patch literal 7098 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 literal 0 HcmV?d00001 diff --git a/packages/showcase/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/packages/showcase/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..8ca12fe024be86e868d14e91120a6902f8e88ac6 GIT binary patch literal 6464 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 B0*L?s literal 0 HcmV?d00001 diff --git a/packages/showcase/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/packages/showcase/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..8e19b410a1b15ff180f3dacac19395fe3046cdec GIT binary patch literal 10676 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 literal 0 HcmV?d00001 diff --git a/packages/showcase/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/packages/showcase/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..4c19a13c239cb67b8a2134ddd5f325db1d2d5bee GIT binary patch literal 15523 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 BIP(Ai literal 0 HcmV?d00001 diff --git a/packages/showcase/mobile/android/app/src/main/res/values-night/colors.xml b/packages/showcase/mobile/android/app/src/main/res/values-night/colors.xml new file mode 100644 index 0000000..3c05de5 --- /dev/null +++ b/packages/showcase/mobile/android/app/src/main/res/values-night/colors.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/showcase/mobile/android/app/src/main/res/values/colors.xml b/packages/showcase/mobile/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..ea44092 --- /dev/null +++ b/packages/showcase/mobile/android/app/src/main/res/values/colors.xml @@ -0,0 +1,5 @@ + + #000000 + #023c69 + #000000 + \ No newline at end of file diff --git a/packages/showcase/mobile/android/app/src/main/res/values/strings.xml b/packages/showcase/mobile/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..f4d61e8 --- /dev/null +++ b/packages/showcase/mobile/android/app/src/main/res/values/strings.xml @@ -0,0 +1,5 @@ + + DT Design System Showcase + contain + false + \ No newline at end of file diff --git a/packages/showcase/mobile/android/app/src/main/res/values/styles.xml b/packages/showcase/mobile/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..b0123f4 --- /dev/null +++ b/packages/showcase/mobile/android/app/src/main/res/values/styles.xml @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/packages/showcase/mobile/android/build.gradle b/packages/showcase/mobile/android/build.gradle new file mode 100644 index 0000000..0554dd1 --- /dev/null +++ b/packages/showcase/mobile/android/build.gradle @@ -0,0 +1,24 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + google() + mavenCentral() + } + dependencies { + classpath('com.android.tools.build:gradle') + classpath('com.facebook.react:react-native-gradle-plugin') + classpath('org.jetbrains.kotlin:kotlin-gradle-plugin') + } +} + +allprojects { + repositories { + google() + mavenCentral() + maven { url 'https://www.jitpack.io' } + } +} + +apply plugin: "expo-root-project" +apply plugin: "com.facebook.react.rootproject" diff --git a/packages/showcase/mobile/android/gradle.properties b/packages/showcase/mobile/android/gradle.properties new file mode 100644 index 0000000..8e39f82 --- /dev/null +++ b/packages/showcase/mobile/android/gradle.properties @@ -0,0 +1,65 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m +org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true + +# Enable AAPT2 PNG crunching +android.enablePngCrunchInReleaseBuilds=true + +# Use this property to specify which architecture you want to build. +# You can also override it from the CLI using +# ./gradlew -PreactNativeArchitectures=x86_64 +reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 + +# Use this property to enable support to the new architecture. +# This will allow you to use TurboModules and the Fabric render in +# your application. You should enable this flag either if you want +# to write custom TurboModules/Fabric components OR use libraries that +# are providing them. +newArchEnabled=true + +# Use this property to enable or disable the Hermes JS engine. +# If set to false, you will be using JSC instead. +hermesEnabled=true + +# Use this property to enable edge-to-edge display support. +# This allows your app to draw behind system bars for an immersive UI. +# Note: Only works with ReactActivity and should not be used with custom Activity. +edgeToEdgeEnabled=true + +# Enable GIF support in React Native images (~200 B increase) +expo.gif.enabled=true +# Enable webp support in React Native images (~85 KB increase) +expo.webp.enabled=true +# Enable animated webp support (~3.4 MB increase) +# Disabled by default because iOS doesn't support animated webp +expo.webp.animated=false + +# Enable network inspector +EX_DEV_CLIENT_NETWORK_INSPECTOR=true + +# Use legacy packaging to compress native libraries in the resulting APK. +expo.useLegacyPackaging=false + +# Specifies whether the app is configured to use edge-to-edge via the app config or plugin +# WARNING: This property has been deprecated and will be removed in Expo SDK 55. Use `edgeToEdgeEnabled` or `react.edgeToEdgeEnabled` to determine whether the project is using edge-to-edge. +expo.edgeToEdgeEnabled=true diff --git a/packages/showcase/mobile/android/gradle/wrapper/gradle-wrapper.jar b/packages/showcase/mobile/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..1b33c55baabb587c669f562ae36f953de2481846 GIT binary patch literal 43764 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH="\\\"\\\"" + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/packages/showcase/mobile/android/gradlew.bat b/packages/showcase/mobile/android/gradlew.bat new file mode 100644 index 0000000..5eed7ee --- /dev/null +++ b/packages/showcase/mobile/android/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH= + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/packages/showcase/mobile/android/settings.gradle b/packages/showcase/mobile/android/settings.gradle new file mode 100644 index 0000000..75bf8e8 --- /dev/null +++ b/packages/showcase/mobile/android/settings.gradle @@ -0,0 +1,39 @@ +pluginManagement { + def reactNativeGradlePlugin = new File( + providers.exec { + workingDir(rootDir) + commandLine("node", "--print", "require.resolve('@react-native/gradle-plugin/package.json', { paths: [require.resolve('react-native/package.json')] })") + }.standardOutput.asText.get().trim() + ).getParentFile().absolutePath + includeBuild(reactNativeGradlePlugin) + + def expoPluginsPath = new File( + providers.exec { + workingDir(rootDir) + commandLine("node", "--print", "require.resolve('expo-modules-autolinking/package.json', { paths: [require.resolve('expo/package.json')] })") + }.standardOutput.asText.get().trim(), + "../android/expo-gradle-plugin" + ).absolutePath + includeBuild(expoPluginsPath) +} + +plugins { + id("com.facebook.react.settings") + id("expo-autolinking-settings") +} + +extensions.configure(com.facebook.react.ReactSettingsExtension) { ex -> + if (System.getenv('EXPO_USE_COMMUNITY_AUTOLINKING') == '1') { + ex.autolinkLibrariesFromCommand() + } else { + ex.autolinkLibrariesFromCommand(expoAutolinking.rnConfigCommand) + } +} +expoAutolinking.useExpoModules() + +rootProject.name = 'DT Design System Showcase' + +expoAutolinking.useExpoVersionCatalog() + +include ':app' +includeBuild(expoAutolinking.reactNativeGradlePlugin) diff --git a/packages/showcase/mobile/app.json b/packages/showcase/mobile/app.json new file mode 100644 index 0000000..ad5b680 --- /dev/null +++ b/packages/showcase/mobile/app.json @@ -0,0 +1,23 @@ +{ + "expo": { + "name": "DT Design System Showcase", + "slug": "dt-showcase", + "version": "1.0.0", + "orientation": "portrait", + "userInterfaceStyle": "dark", + "newArchEnabled": true, + "splash": { + "backgroundColor": "#000000" + }, + "ios": { + "supportsTablet": true, + "bundleIdentifier": "com.dangerousthings.showcase" + }, + "android": { + "adaptiveIcon": { + "backgroundColor": "#000000" + }, + "package": "com.dangerousthings.showcase" + } + } +} diff --git a/packages/showcase/mobile/assets/fonts/Tektur-Bold.ttf b/packages/showcase/mobile/assets/fonts/Tektur-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..73317f02ea36a65570a6bf1e4e2bd9b4e2929ceb GIT binary patch literal 75880 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 L+?CtMU9SHN(z-Ku literal 0 HcmV?d00001 diff --git a/packages/showcase/mobile/assets/fonts/Tektur-Medium.ttf b/packages/showcase/mobile/assets/fonts/Tektur-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..34fc797195169923bad8e76181d60ae02019fef0 GIT binary patch literal 76248 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
  • cHEqa9AH!ee?-ydsA4i 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 literal 0 HcmV?d00001 diff --git a/packages/showcase/mobile/assets/fonts/Tektur-Regular.ttf b/packages/showcase/mobile/assets/fonts/Tektur-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f280fba407441453779b16f7021a286219421486 GIT binary patch literal 75604 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
    Lc}N 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 z
    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 literal 0 HcmV?d00001 diff --git a/packages/showcase/mobile/babel.config.js b/packages/showcase/mobile/babel.config.js new file mode 100644 index 0000000..9d89e13 --- /dev/null +++ b/packages/showcase/mobile/babel.config.js @@ -0,0 +1,6 @@ +module.exports = function (api) { + api.cache(true); + return { + presets: ['babel-preset-expo'], + }; +}; diff --git a/packages/showcase/mobile/eas.json b/packages/showcase/mobile/eas.json new file mode 100644 index 0000000..1c79864 --- /dev/null +++ b/packages/showcase/mobile/eas.json @@ -0,0 +1,24 @@ +{ + "cli": { + "version": ">= 12.0.0" + }, + "build": { + "preview": { + "android": { + "buildType": "apk" + }, + "ios": { + "simulator": true + }, + "distribution": "internal" + }, + "production": { + "android": { + "buildType": "apk" + }, + "ios": { + "distribution": "store" + } + } + } +} diff --git a/packages/showcase/mobile/index.js b/packages/showcase/mobile/index.js new file mode 100644 index 0000000..d2bae22 --- /dev/null +++ b/packages/showcase/mobile/index.js @@ -0,0 +1,4 @@ +import { registerRootComponent } from "expo"; +import App from "./App"; + +registerRootComponent(App); diff --git a/packages/showcase/mobile/ios/.gitignore b/packages/showcase/mobile/ios/.gitignore new file mode 100644 index 0000000..8beb344 --- /dev/null +++ b/packages/showcase/mobile/ios/.gitignore @@ -0,0 +1,30 @@ +# OSX +# +.DS_Store + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace +.xcode.env.local + +# Bundle artifacts +*.jsbundle + +# CocoaPods +/Pods/ diff --git a/packages/showcase/mobile/ios/.xcode.env b/packages/showcase/mobile/ios/.xcode.env new file mode 100644 index 0000000..3d5782c --- /dev/null +++ b/packages/showcase/mobile/ios/.xcode.env @@ -0,0 +1,11 @@ +# This `.xcode.env` file is versioned and is used to source the environment +# used when running script phases inside Xcode. +# To customize your local environment, you can create an `.xcode.env.local` +# file that is not versioned. + +# NODE_BINARY variable contains the PATH to the node executable. +# +# Customize the NODE_BINARY variable here. +# For example, to use nvm with brew, add the following line +# . "$(brew --prefix nvm)/nvm.sh" --no-use +export NODE_BINARY=$(command -v node) diff --git a/packages/showcase/mobile/ios/DTDesignSystemShowcase.xcodeproj/project.pbxproj b/packages/showcase/mobile/ios/DTDesignSystemShowcase.xcodeproj/project.pbxproj new file mode 100644 index 0000000..108b5fd --- /dev/null +++ b/packages/showcase/mobile/ios/DTDesignSystemShowcase.xcodeproj/project.pbxproj @@ -0,0 +1,436 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; + BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; + F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F11748412D0307B40044C1D9 /* AppDelegate.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 13B07F961A680F5B00A75B9A /* DTDesignSystemShowcase.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DTDesignSystemShowcase.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = DTDesignSystemShowcase/Images.xcassets; sourceTree = ""; }; + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = DTDesignSystemShowcase/Info.plist; sourceTree = ""; }; + AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = DTDesignSystemShowcase/SplashScreen.storyboard; sourceTree = ""; }; + BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; + ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; + F11748412D0307B40044C1D9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = DTDesignSystemShowcase/AppDelegate.swift; sourceTree = ""; }; + F11748442D0722820044C1D9 /* DTDesignSystemShowcase-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "DTDesignSystemShowcase-Bridging-Header.h"; path = "DTDesignSystemShowcase/DTDesignSystemShowcase-Bridging-Header.h"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 13B07FAE1A68108700A75B9A /* DTDesignSystemShowcase */ = { + isa = PBXGroup; + children = ( + F11748412D0307B40044C1D9 /* AppDelegate.swift */, + F11748442D0722820044C1D9 /* DTDesignSystemShowcase-Bridging-Header.h */, + BB2F792B24A3F905000567C9 /* Supporting */, + 13B07FB51A68108700A75B9A /* Images.xcassets */, + 13B07FB61A68108700A75B9A /* Info.plist */, + AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */, + ); + name = DTDesignSystemShowcase; + sourceTree = ""; + }; + 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { + isa = PBXGroup; + children = ( + ED297162215061F000B7C4FE /* JavaScriptCore.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { + isa = PBXGroup; + children = ( + ); + name = Libraries; + sourceTree = ""; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + 13B07FAE1A68108700A75B9A /* DTDesignSystemShowcase */, + 832341AE1AAA6A7D00B99B32 /* Libraries */, + 83CBBA001A601CBA00E9B192 /* Products */, + 2D16E6871FA4F8E400B85C8A /* Frameworks */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + usesTabs = 0; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 13B07F961A680F5B00A75B9A /* DTDesignSystemShowcase.app */, + ); + name = Products; + sourceTree = ""; + }; + BB2F792B24A3F905000567C9 /* Supporting */ = { + isa = PBXGroup; + children = ( + BB2F792C24A3F905000567C9 /* Expo.plist */, + ); + name = Supporting; + path = DTDesignSystemShowcase/Supporting; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 13B07F861A680F5B00A75B9A /* DTDesignSystemShowcase */ = { + isa = PBXNativeTarget; + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "DTDesignSystemShowcase" */; + buildPhases = ( + 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */, + 13B07F871A680F5B00A75B9A /* Sources */, + 13B07F8C1A680F5B00A75B9A /* Frameworks */, + 13B07F8E1A680F5B00A75B9A /* Resources */, + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, + 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DTDesignSystemShowcase; + productName = DTDesignSystemShowcase; + productReference = 13B07F961A680F5B00A75B9A /* DTDesignSystemShowcase.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1130; + TargetAttributes = { + 13B07F861A680F5B00A75B9A = { + LastSwiftMigration = 1250; + }; + }; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "DTDesignSystemShowcase" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 13B07F861A680F5B00A75B9A /* DTDesignSystemShowcase */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 13B07F8E1A680F5B00A75B9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB2F792D24A3F905000567C9 /* Expo.plist in Resources */, + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/.xcode.env", + "$(SRCROOT)/.xcode.env.local", + ); + name = "Bundle React Native code and images"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios absolute | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n# Source .xcode.env.updates if it exists to allow\n# SKIP_BUNDLING to be unset if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.updates\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.updates\"\nfi\n# Source local changes to allow overrides\n# if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n"; + }; + 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-DTDesignSystemShowcase-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-DTDesignSystemShowcase/Pods-DTDesignSystemShowcase-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/EXUpdates/EXUpdates.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXUpdates.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-DTDesignSystemShowcase/Pods-DTDesignSystemShowcase-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 13B07F871A680F5B00A75B9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 13B07F941A680F5B00A75B9A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = 1; + ENABLE_BITCODE = NO; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "FB_SONARKIT_ENABLED=1", + ); + INFOPLIST_FILE = DTDesignSystemShowcase/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.dangerousthings.showcase"; + PRODUCT_NAME = "DTDesignSystemShowcase"; + SWIFT_OBJC_BRIDGING_HEADER = "DTDesignSystemShowcase/DTDesignSystemShowcase-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + TARGETED_DEVICE_FAMILY = "1,2"; + CODE_SIGN_ENTITLEMENTS = DTDesignSystemShowcase/DTDesignSystemShowcase.entitlements; + }; + name = Debug; + }; + 13B07F951A680F5B00A75B9A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = DTDesignSystemShowcase/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.dangerousthings.showcase"; + PRODUCT_NAME = "DTDesignSystemShowcase"; + SWIFT_OBJC_BRIDGING_HEADER = "DTDesignSystemShowcase/DTDesignSystemShowcase-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + TARGETED_DEVICE_FAMILY = "1,2"; + CODE_SIGN_ENTITLEMENTS = DTDesignSystemShowcase/DTDesignSystemShowcase.entitlements; + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = "\"$(inherited)\""; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = "\"$(inherited)\""; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "DTDesignSystemShowcase" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "DTDesignSystemShowcase" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; +} diff --git a/packages/showcase/mobile/ios/DTDesignSystemShowcase.xcodeproj/xcshareddata/xcschemes/DTDesignSystemShowcase.xcscheme b/packages/showcase/mobile/ios/DTDesignSystemShowcase.xcodeproj/xcshareddata/xcschemes/DTDesignSystemShowcase.xcscheme new file mode 100644 index 0000000..a6f5a4a --- /dev/null +++ b/packages/showcase/mobile/ios/DTDesignSystemShowcase.xcodeproj/xcshareddata/xcschemes/DTDesignSystemShowcase.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/showcase/mobile/ios/DTDesignSystemShowcase/AppDelegate.swift b/packages/showcase/mobile/ios/DTDesignSystemShowcase/AppDelegate.swift new file mode 100644 index 0000000..a7887e1 --- /dev/null +++ b/packages/showcase/mobile/ios/DTDesignSystemShowcase/AppDelegate.swift @@ -0,0 +1,70 @@ +import Expo +import React +import ReactAppDependencyProvider + +@UIApplicationMain +public class AppDelegate: ExpoAppDelegate { + var window: UIWindow? + + var reactNativeDelegate: ExpoReactNativeFactoryDelegate? + var reactNativeFactory: RCTReactNativeFactory? + + public override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil + ) -> Bool { + let delegate = ReactNativeDelegate() + let factory = ExpoReactNativeFactory(delegate: delegate) + delegate.dependencyProvider = RCTAppDependencyProvider() + + reactNativeDelegate = delegate + reactNativeFactory = factory + bindReactNativeFactory(factory) + +#if os(iOS) || os(tvOS) + window = UIWindow(frame: UIScreen.main.bounds) + factory.startReactNative( + withModuleName: "main", + in: window, + launchOptions: launchOptions) +#endif + + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } + + // Linking API + public override func application( + _ app: UIApplication, + open url: URL, + options: [UIApplication.OpenURLOptionsKey: Any] = [:] + ) -> Bool { + return super.application(app, open: url, options: options) || RCTLinkingManager.application(app, open: url, options: options) + } + + // Universal Links + public override func application( + _ application: UIApplication, + continue userActivity: NSUserActivity, + restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void + ) -> Bool { + let result = RCTLinkingManager.application(application, continue: userActivity, restorationHandler: restorationHandler) + return super.application(application, continue: userActivity, restorationHandler: restorationHandler) || result + } +} + +class ReactNativeDelegate: ExpoReactNativeFactoryDelegate { + // Extension point for config-plugins + + override func sourceURL(for bridge: RCTBridge) -> URL? { + // needed to return the correct URL for expo-dev-client. + bridge.bundleURL ?? bundleURL() + } + + override func bundleURL() -> URL? { +#if DEBUG + return RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: ".expo/.virtual-metro-entry") +#else + return Bundle.main.url(forResource: "main", withExtension: "jsbundle") +#endif + } +} diff --git a/packages/showcase/mobile/ios/DTDesignSystemShowcase/DTDesignSystemShowcase-Bridging-Header.h b/packages/showcase/mobile/ios/DTDesignSystemShowcase/DTDesignSystemShowcase-Bridging-Header.h new file mode 100644 index 0000000..8361941 --- /dev/null +++ b/packages/showcase/mobile/ios/DTDesignSystemShowcase/DTDesignSystemShowcase-Bridging-Header.h @@ -0,0 +1,3 @@ +// +// Use this file to import your target's public headers that you would like to expose to Swift. +// diff --git a/packages/showcase/mobile/ios/DTDesignSystemShowcase/DTDesignSystemShowcase.entitlements b/packages/showcase/mobile/ios/DTDesignSystemShowcase/DTDesignSystemShowcase.entitlements new file mode 100644 index 0000000..f683276 --- /dev/null +++ b/packages/showcase/mobile/ios/DTDesignSystemShowcase/DTDesignSystemShowcase.entitlements @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png b/packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..ac881f6063fdf449befe03c655b937ae58472728 GIT binary patch literal 5856 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7&zE~RK2WrGXsOza!(h>kP5~(2OD`A6d0Hk zKL4M;+FGXIoj6cQLKHKQJd+J18Y+2#q``VdAocxjVc}u zjnT9*no~xLg3*EzSRsrS1*1j5Xi+d)6pR)Hzz`TM3Py{9(V}3qC>SjYM#l<9M@~k^ zkp}yy+P-fO8bE`Ei~(QjOYEIMgMS6!!M}Il!N0wr!M`2g;jZtX4E+E+_;&|9Qdm8z gcr-Mqoi=zM#d80VU4Lc)FtIUsy85}Sb4q9e06!I^tN;K2 literal 0 HcmV?d00001 diff --git a/packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/AppIcon.appiconset/Contents.json b/packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..90d8d4c --- /dev/null +++ b/packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images": [ + { + "filename": "App-Icon-1024x1024@1x.png", + "idiom": "universal", + "platform": "ios", + "size": "1024x1024" + } + ], + "info": { + "version": 1, + "author": "expo" + } +} \ No newline at end of file diff --git a/packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/Contents.json b/packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/Contents.json new file mode 100644 index 0000000..ed285c2 --- /dev/null +++ b/packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "expo" + } +} diff --git a/packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/SplashScreenBackground.colorset/Contents.json b/packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/SplashScreenBackground.colorset/Contents.json new file mode 100644 index 0000000..fe54c3c --- /dev/null +++ b/packages/showcase/mobile/ios/DTDesignSystemShowcase/Images.xcassets/SplashScreenBackground.colorset/Contents.json @@ -0,0 +1,20 @@ +{ + "colors": [ + { + "color": { + "components": { + "alpha": "1.000", + "blue": "0.00000000000000", + "green": "0.00000000000000", + "red": "0.00000000000000" + }, + "color-space": "srgb" + }, + "idiom": "universal" + } + ], + "info": { + "version": 1, + "author": "expo" + } +} \ No newline at end of file diff --git a/packages/showcase/mobile/ios/DTDesignSystemShowcase/Info.plist b/packages/showcase/mobile/ios/DTDesignSystemShowcase/Info.plist new file mode 100644 index 0000000..c9661e1 --- /dev/null +++ b/packages/showcase/mobile/ios/DTDesignSystemShowcase/Info.plist @@ -0,0 +1,76 @@ + + + + + CADisableMinimumFrameDurationOnPhone + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + DT Design System Showcase + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleURLTypes + + + CFBundleURLSchemes + + com.dangerousthings.showcase + + + + CFBundleVersion + 1 + LSMinimumSystemVersion + 12.0 + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSAllowsLocalNetworking + + + RCTNewArchEnabled + + UILaunchStoryboardName + SplashScreen + UIRequiredDeviceCapabilities + + arm64 + + UIRequiresFullScreen + + UIStatusBarStyle + UIStatusBarStyleDefault + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIUserInterfaceStyle + Dark + UIViewControllerBasedStatusBarAppearance + + + \ No newline at end of file diff --git a/packages/showcase/mobile/ios/DTDesignSystemShowcase/SplashScreen.storyboard b/packages/showcase/mobile/ios/DTDesignSystemShowcase/SplashScreen.storyboard new file mode 100644 index 0000000..6c99b2a --- /dev/null +++ b/packages/showcase/mobile/ios/DTDesignSystemShowcase/SplashScreen.storyboard @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/showcase/mobile/ios/DTDesignSystemShowcase/Supporting/Expo.plist b/packages/showcase/mobile/ios/DTDesignSystemShowcase/Supporting/Expo.plist new file mode 100644 index 0000000..750be02 --- /dev/null +++ b/packages/showcase/mobile/ios/DTDesignSystemShowcase/Supporting/Expo.plist @@ -0,0 +1,12 @@ + + + + + EXUpdatesCheckOnLaunch + ALWAYS + EXUpdatesEnabled + + EXUpdatesLaunchWaitMs + 0 + + \ No newline at end of file diff --git a/packages/showcase/mobile/ios/Podfile b/packages/showcase/mobile/ios/Podfile new file mode 100644 index 0000000..b255c80 --- /dev/null +++ b/packages/showcase/mobile/ios/Podfile @@ -0,0 +1,63 @@ +require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking") +require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods") + +require 'json' +podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {} + +def ccache_enabled?(podfile_properties) + # Environment variable takes precedence + return ENV['USE_CCACHE'] == '1' if ENV['USE_CCACHE'] + + # Fall back to Podfile properties + podfile_properties['apple.ccacheEnabled'] == 'true' +end + +ENV['RCT_NEW_ARCH_ENABLED'] ||= '0' if podfile_properties['newArchEnabled'] == 'false' +ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] ||= podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] +ENV['RCT_USE_RN_DEP'] ||= '1' if podfile_properties['ios.buildReactNativeFromSource'] != 'true' && podfile_properties['newArchEnabled'] != 'false' +ENV['RCT_USE_PREBUILT_RNCORE'] ||= '1' if podfile_properties['ios.buildReactNativeFromSource'] != 'true' && podfile_properties['newArchEnabled'] != 'false' +platform :ios, podfile_properties['ios.deploymentTarget'] || '15.1' + +prepare_react_native_project! + +target 'DTDesignSystemShowcase' do + use_expo_modules! + + if ENV['EXPO_USE_COMMUNITY_AUTOLINKING'] == '1' + config_command = ['node', '-e', "process.argv=['', '', 'config'];require('@react-native-community/cli').run()"]; + else + config_command = [ + 'node', + '--no-warnings', + '--eval', + 'require(\'expo/bin/autolinking\')', + 'expo-modules-autolinking', + 'react-native-config', + '--json', + '--platform', + 'ios' + ] + end + + config = use_native_modules!(config_command) + + use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks'] + use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS'] + + use_react_native!( + :path => config[:reactNativePath], + :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes', + # An absolute path to your application root. + :app_path => "#{Pod::Config.instance.installation_root}/..", + :privacy_file_aggregation_enabled => podfile_properties['apple.privacyManifestAggregationEnabled'] != 'false', + ) + + post_install do |installer| + react_native_post_install( + installer, + config[:reactNativePath], + :mac_catalyst_enabled => false, + :ccache_enabled => ccache_enabled?(podfile_properties), + ) + end +end diff --git a/packages/showcase/mobile/ios/Podfile.properties.json b/packages/showcase/mobile/ios/Podfile.properties.json new file mode 100644 index 0000000..417e2e5 --- /dev/null +++ b/packages/showcase/mobile/ios/Podfile.properties.json @@ -0,0 +1,5 @@ +{ + "expo.jsEngine": "hermes", + "EX_DEV_CLIENT_NETWORK_INSPECTOR": "true", + "newArchEnabled": "true" +} diff --git a/packages/showcase/mobile/metro.config.js b/packages/showcase/mobile/metro.config.js new file mode 100644 index 0000000..7ba9cfc --- /dev/null +++ b/packages/showcase/mobile/metro.config.js @@ -0,0 +1,27 @@ +const { getDefaultConfig } = require('expo/metro-config'); +const path = require('path'); + +const projectRoot = __dirname; +const monorepoRoot = path.resolve(projectRoot, '..', '..', '..'); + +const config = getDefaultConfig(projectRoot); + +// Watch the monorepo root for live changes to sibling packages +config.watchFolders = [monorepoRoot]; + +// Resolve node_modules from both the project and monorepo root (hoisted) +config.resolver.nodeModulesPaths = [ + path.resolve(projectRoot, 'node_modules'), + path.resolve(monorepoRoot, 'node_modules'), +]; + +// Block sibling packages' node_modules to prevent duplicate native modules +const packagesDir = path.join(monorepoRoot, 'packages'); +const escapedPath = packagesDir.replace(/[/\\]/g, '[/\\\\]'); +config.resolver.blockList = [ + new RegExp( + `^${escapedPath}[/\\\\](?!showcase[/\\\\]mobile)[^/\\\\]+[/\\\\]node_modules[/\\\\].*$` + ), +]; + +module.exports = config; diff --git a/packages/showcase/mobile/package.json b/packages/showcase/mobile/package.json new file mode 100644 index 0000000..68cfea2 --- /dev/null +++ b/packages/showcase/mobile/package.json @@ -0,0 +1,41 @@ +{ + "name": "@dangerousthings/showcase-mobile", + "version": "0.0.0", + "private": true, + "main": "./index.js", + "scripts": { + "start": "expo start", + "android": "expo run:android", + "ios": "expo run:ios", + "build": "echo 'No build step for Expo dev'", + "prebuild": "expo prebuild --clean", + "build:android": "expo prebuild --clean --platform android && cd android && ./gradlew assembleRelease && echo 'APK: android/app/build/outputs/apk/release/'", + "build:android:debug": "expo prebuild --clean --platform android && cd android && ./gradlew assembleDebug && echo 'Debug APK (requires Metro): android/app/build/outputs/apk/debug/'", + "build:ios": "expo prebuild --clean --platform ios && cd ios && xcodebuild -workspace DtShowcase.xcworkspace -scheme DtShowcase -configuration Release -sdk iphoneos -archivePath build/DtShowcase.xcarchive archive", + "build:ios:debug": "expo prebuild --clean --platform ios && cd ios && xcodebuild -workspace DtShowcase.xcworkspace -scheme DtShowcase -configuration Debug -sdk iphonesimulator", + "build:android:cloud": "eas build -p android --profile preview", + "build:ios:cloud": "eas build -p ios --profile preview", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@dangerousthings/react-native": "*", + "@dangerousthings/tokens": "*", + "@react-navigation/native": "^7.1.27", + "@react-navigation/native-stack": "^7.9.1", + "babel-preset-expo": "^54.0.10", + "expo": "~54.0.32", + "expo-font": "~14.0.11", + "expo-status-bar": "^3.0.9", + "react": "19.1.0", + "react-native": "0.81.5", + "react-native-paper": "^5.14.5", + "react-native-safe-area-context": "~5.6.0", + "react-native-screens": "~4.16.0", + "react-native-svg": "15.12.1" + }, + "devDependencies": { + "@babel/core": "^7.25.2", + "@types/react": "~19.1.0", + "typescript": "^5.8.3" + } +} diff --git a/packages/showcase/mobile/src/brand/BrandContext.tsx b/packages/showcase/mobile/src/brand/BrandContext.tsx new file mode 100644 index 0000000..f809dbf --- /dev/null +++ b/packages/showcase/mobile/src/brand/BrandContext.tsx @@ -0,0 +1,42 @@ +import React, { createContext, useContext, useState, useMemo, ReactNode } from 'react'; +import { brands, themes } from '@dangerousthings/tokens'; +import type { ThemeBrand, BrandTokens } from '@dangerousthings/tokens'; +import { buildThemeFromBrand } from './buildTheme'; +import type { DTExtendedTheme } from '@dangerousthings/react-native'; + +interface BrandContextValue { + brandId: ThemeBrand; + brand: BrandTokens; + theme: DTExtendedTheme; + setBrand: (id: ThemeBrand) => void; + availableBrands: typeof themes; +} + +const BrandContext = createContext(null!); + +export function useBrand() { + return useContext(BrandContext); +} + +interface BrandProviderProps { + children: ReactNode; + initialBrand?: ThemeBrand; +} + +export function BrandProvider({ children, initialBrand = 'dt' }: BrandProviderProps) { + const [brandId, setBrandId] = useState(initialBrand); + + const value = useMemo(() => { + const brand = brands[brandId] as BrandTokens; + const theme = buildThemeFromBrand(brand); + return { + brandId, + brand, + theme, + setBrand: setBrandId, + availableBrands: themes, + }; + }, [brandId]); + + return {children}; +} diff --git a/packages/showcase/mobile/src/brand/buildTheme.ts b/packages/showcase/mobile/src/brand/buildTheme.ts new file mode 100644 index 0000000..2e93e51 --- /dev/null +++ b/packages/showcase/mobile/src/brand/buildTheme.ts @@ -0,0 +1,68 @@ +import { MD3DarkTheme } from 'react-native-paper'; +import type { BrandTokens } from '@dangerousthings/tokens'; +import type { DTExtendedTheme } from '@dangerousthings/react-native'; + +export function buildThemeFromBrand(brand: BrandTokens): DTExtendedTheme { + const colors = brand.dark; + + return { + ...MD3DarkTheme, + dark: true, + roundness: brand.shape.radiusSm === '0' || brand.shape.radiusSm === '0px' ? 0 : 4, + fonts: MD3DarkTheme.fonts, + colors: { + ...MD3DarkTheme.colors, + primary: colors.primary, + onPrimary: colors.bg, + primaryContainer: colors.primaryDim, + onPrimaryContainer: colors.bg, + secondary: colors.secondary, + onSecondary: colors.bg, + secondaryContainer: colors.secondary, + onSecondaryContainer: colors.bg, + tertiary: colors.other, + onTertiary: colors.bg, + tertiaryContainer: colors.other, + onTertiaryContainer: colors.textPrimary, + error: colors.error, + onError: colors.bg, + errorContainer: colors.error, + onErrorContainer: colors.textPrimary, + background: colors.bg, + onBackground: colors.textPrimary, + surface: colors.surface, + onSurface: colors.textPrimary, + surfaceVariant: colors.surface, + onSurfaceVariant: colors.textPrimary, + outline: colors.primary, + outlineVariant: colors.border, + inverseSurface: colors.textPrimary, + inverseOnSurface: colors.bg, + inversePrimary: colors.primaryDim, + shadow: colors.bg, + scrim: 'rgba(0,0,0,0.7)', + elevation: { + level0: 'transparent', + level1: colors.surface, + level2: colors.surfaceHover, + level3: colors.surfaceHover, + level4: colors.surfaceHover, + level5: colors.surfaceHover, + }, + surfaceDisabled: 'rgba(255,255,255,0.1)', + onSurfaceDisabled: 'rgba(255,255,255,0.3)', + backdrop: 'rgba(0,0,0,0.7)', + }, + custom: { + success: colors.success, + warning: colors.warning, + modeNormal: colors.primary, + modeEmphasis: colors.secondary, + modeWarning: colors.error, + modeSuccess: colors.success, + modeOther: colors.other, + border: colors.border, + borderEmphasis: colors.secondary, + }, + }; +} diff --git a/packages/showcase/mobile/src/components/BrandSwitcher.tsx b/packages/showcase/mobile/src/components/BrandSwitcher.tsx new file mode 100644 index 0000000..92c3a7f --- /dev/null +++ b/packages/showcase/mobile/src/components/BrandSwitcher.tsx @@ -0,0 +1,70 @@ +import React from 'react'; +import { View, Pressable, StyleSheet } from 'react-native'; +import { Text } from 'react-native-paper'; +import { useBrand } from '../brand/BrandContext'; +import type { ThemeBrand } from '@dangerousthings/tokens'; + +const brandLabels: Record = { + dt: 'DT', + classic: 'CLASSIC', +}; + +const brandColors: Record = { + dt: '#00FFFF', + classic: '#FF00FF', +}; + +export function BrandSwitcher() { + const { brandId, setBrand, availableBrands } = useBrand(); + + return ( + + {availableBrands.map((def) => { + const isActive = def.id === brandId; + const color = brandColors[def.id]; + + return ( + setBrand(def.id)} + style={[ + styles.chip, + { + borderColor: color, + backgroundColor: isActive ? color : 'transparent', + }, + ]} + > + + {brandLabels[def.id]} + + + ); + })} + + ); +} + +const styles = StyleSheet.create({ + container: { + flexDirection: 'row', + justifyContent: 'center', + gap: 12, + marginVertical: 16, + }, + chip: { + paddingHorizontal: 16, + paddingVertical: 8, + borderWidth: 2, + }, + chipText: { + fontSize: 12, + fontWeight: '700', + letterSpacing: 1, + }, +}); diff --git a/packages/showcase/mobile/src/components/CodeLabel.tsx b/packages/showcase/mobile/src/components/CodeLabel.tsx new file mode 100644 index 0000000..27abe11 --- /dev/null +++ b/packages/showcase/mobile/src/components/CodeLabel.tsx @@ -0,0 +1,21 @@ +import React from 'react'; +import { StyleSheet } from 'react-native'; +import { Text } from 'react-native-paper'; + +interface CodeLabelProps { + text: string; +} + +export function CodeLabel({ text }: CodeLabelProps) { + return {text}; +} + +const styles = StyleSheet.create({ + code: { + color: 'rgba(255, 255, 255, 0.35)', + fontSize: 10, + fontFamily: 'monospace', + marginTop: 4, + marginBottom: 4, + }, +}); diff --git a/packages/showcase/mobile/src/components/DemoRow.tsx b/packages/showcase/mobile/src/components/DemoRow.tsx new file mode 100644 index 0000000..c4a12fa --- /dev/null +++ b/packages/showcase/mobile/src/components/DemoRow.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import { View, StyleSheet } from 'react-native'; + +interface DemoRowProps { + children: React.ReactNode; +} + +export function DemoRow({ children }: DemoRowProps) { + return {children}; +} + +const styles = StyleSheet.create({ + row: { + flexDirection: 'row', + flexWrap: 'wrap', + gap: 12, + alignItems: 'center', + }, +}); diff --git a/packages/showcase/mobile/src/components/DemoSection.tsx b/packages/showcase/mobile/src/components/DemoSection.tsx new file mode 100644 index 0000000..d378bc0 --- /dev/null +++ b/packages/showcase/mobile/src/components/DemoSection.tsx @@ -0,0 +1,45 @@ +import React from 'react'; +import { View, StyleSheet } from 'react-native'; +import { Text } from 'react-native-paper'; +import { DTLabel } from '@dangerousthings/react-native'; +import type { DTVariant } from '@dangerousthings/react-native'; + +interface DemoSectionProps { + title: string; + description?: string; + variant?: DTVariant; + children: React.ReactNode; +} + +export function DemoSection({ title, description, variant = 'normal', children }: DemoSectionProps) { + return ( + + + {description ? ( + + {description} + + ) : null} + {children} + + ); +} + +const styles = StyleSheet.create({ + container: { + marginBottom: 32, + }, + description: { + color: 'rgba(255,255,255,0.6)', + marginTop: 8, + }, + content: { + marginTop: 16, + }, +}); diff --git a/packages/showcase/mobile/src/components/ScreenContainer.tsx b/packages/showcase/mobile/src/components/ScreenContainer.tsx new file mode 100644 index 0000000..3743902 --- /dev/null +++ b/packages/showcase/mobile/src/components/ScreenContainer.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import { ScrollView, StyleProp, ViewStyle } from 'react-native'; +import { useDTTheme } from '@dangerousthings/react-native'; + +interface ScreenContainerProps { + children: React.ReactNode; + style?: StyleProp; +} + +export function ScreenContainer({ children, style }: ScreenContainerProps) { + const theme = useDTTheme(); + + return ( + + {children} + + ); +} diff --git a/packages/showcase/mobile/src/data/sampleData.ts b/packages/showcase/mobile/src/data/sampleData.ts new file mode 100644 index 0000000..d7dc42e --- /dev/null +++ b/packages/showcase/mobile/src/data/sampleData.ts @@ -0,0 +1,48 @@ +export const galleryItems = [ + { id: '1', uri: 'https://picsum.photos/seed/dt-gallery1/800/800', alt: 'Sample image 1' }, + { id: '2', uri: 'https://picsum.photos/seed/dt-gallery2/800/800', alt: 'Sample image 2' }, + { id: '3', uri: 'https://picsum.photos/seed/dt-gallery3/800/800', alt: 'Sample image 3' }, + { id: '4', uri: 'https://picsum.photos/seed/dt-gallery4/800/800', alt: 'Sample image 4' }, + { id: '5', uri: 'https://picsum.photos/seed/dt-gallery5/800/800', alt: 'Sample image 5' }, +]; + +export const menuItems = [ + { + id: 'home', + title: 'Home', + isActive: true, + onPress: () => {}, + }, + { + id: 'products', + title: 'Products', + items: [ + { id: 'nfc', title: 'NFC Implants', onPress: () => {} }, + { id: 'rfid', title: 'RFID Implants', onPress: () => {} }, + { + id: 'accessories', + title: 'Accessories', + items: [ + { id: 'readers', title: 'Readers', onPress: () => {} }, + { id: 'tools', title: 'Tools', onPress: () => {} }, + ], + }, + ], + }, + { id: 'about', title: 'About', onPress: () => {} }, + { id: 'contact', title: 'Contact', onPress: () => {} }, +]; + +export const horizontalMenuItems = [ + { id: 'h1', title: 'Home', onPress: () => {}, isActive: true }, + { id: 'h2', title: 'Shop', onPress: () => {} }, + { id: 'h3', title: 'Blog', onPress: () => {} }, + { id: 'h4', title: 'FAQ', onPress: () => {} }, +]; + +export const dropdownItems = [ + { id: 'd1', title: 'Edit', onPress: () => {} }, + { id: 'd2', title: 'Duplicate', onPress: () => {} }, + { id: 'd3', title: 'Archive', onPress: () => {} }, + { id: 'd4', title: 'Delete', onPress: () => {} }, +]; diff --git a/packages/showcase/mobile/src/navigation/RootNavigator.tsx b/packages/showcase/mobile/src/navigation/RootNavigator.tsx new file mode 100644 index 0000000..deee232 --- /dev/null +++ b/packages/showcase/mobile/src/navigation/RootNavigator.tsx @@ -0,0 +1,67 @@ +import React from 'react'; +import { createNativeStackNavigator } from '@react-navigation/native-stack'; +import { useDTTheme } from '@dangerousthings/react-native'; +import type { RootStackParamList } from './types'; + +import { HomeScreen } from '../screens/HomeScreen'; +import { ButtonsScreen } from '../screens/ButtonsScreen'; +import { CardsScreen } from '../screens/CardsScreen'; +import { FormsScreen } from '../screens/FormsScreen'; +import { FeedbackScreen } from '../screens/FeedbackScreen'; +import { OverlaysScreen } from '../screens/OverlaysScreen'; +import { ThemeScreen } from '../screens/ThemeScreen'; + +const Stack = createNativeStackNavigator(); + +export function RootNavigator() { + const theme = useDTTheme(); + + return ( + + + + + + + + + + ); +} diff --git a/packages/showcase/mobile/src/navigation/navigationTheme.ts b/packages/showcase/mobile/src/navigation/navigationTheme.ts new file mode 100644 index 0000000..da81815 --- /dev/null +++ b/packages/showcase/mobile/src/navigation/navigationTheme.ts @@ -0,0 +1,21 @@ +import { DefaultTheme } from '@react-navigation/native'; +import { useBrand } from '../brand/BrandContext'; + +export function useNavigationTheme() { + const { brand } = useBrand(); + const colors = brand.dark; + + return { + ...DefaultTheme, + dark: true, + colors: { + ...DefaultTheme.colors, + primary: colors.primary, + background: colors.bg, + card: colors.bg, + text: colors.textPrimary, + border: colors.primary, + notification: colors.secondary, + }, + }; +} diff --git a/packages/showcase/mobile/src/navigation/types.ts b/packages/showcase/mobile/src/navigation/types.ts new file mode 100644 index 0000000..cd3e510 --- /dev/null +++ b/packages/showcase/mobile/src/navigation/types.ts @@ -0,0 +1,9 @@ +export type RootStackParamList = { + Home: undefined; + Buttons: undefined; + Cards: undefined; + Forms: undefined; + Feedback: undefined; + Overlays: undefined; + Theme: undefined; +}; diff --git a/packages/showcase/mobile/src/screens/ButtonsScreen.tsx b/packages/showcase/mobile/src/screens/ButtonsScreen.tsx new file mode 100644 index 0000000..67eeeb6 --- /dev/null +++ b/packages/showcase/mobile/src/screens/ButtonsScreen.tsx @@ -0,0 +1,178 @@ +import React from 'react'; +import { View } from 'react-native'; +import { Text } from 'react-native-paper'; +import { DTButton, DTChip, DTHexagon, useDTTheme } from '@dangerousthings/react-native'; +import { ScreenContainer } from '../components/ScreenContainer'; +import { DemoSection } from '../components/DemoSection'; +import { DemoRow } from '../components/DemoRow'; +import { CodeLabel } from '../components/CodeLabel'; + +export function ButtonsScreen() { + const theme = useDTTheme(); + + return ( + + {/* DTButton - Outlined */} + + + {}}>NORMAL + + + {}}>EMPHASIS + + + {}}>WARNING + + + {}}>SUCCESS + + + {}}>OTHER + + + + + {/* DTButton - Contained */} + + + {}}> + CONTAINED NORMAL + + {}}> + CONTAINED EMPHASIS + + {}}> + CONTAINED WARNING + + {}}> + CONTAINED SUCCESS + + {}}> + CONTAINED OTHER + + + + + {/* DTButton - States */} + + + {}}> + DISABLED + + + + {}}> + LARGE BEVEL (16px) + + + + {}}> + NO BEVEL (0px) + + + + {}}> + THICK BORDER (4px) + + + + + + {/* DTChip */} + + + ALL VARIANTS: + + + NTAG215 + FEATURED + DEPRECATED + ACTIVE + BETA + + + + SELECTED: + + + SELECTED + SELECTED + SELECTED + + + + {/* DTHexagon */} + + + FILLED: + + + + + + + + + + + OUTLINE: + + + + + + + + + ANIMATED: + + + + + + + + + + + + + + + + + + WITH CONTENT: + + + + DT + + + SCAN + + + + + ); +} diff --git a/packages/showcase/mobile/src/screens/CardsScreen.tsx b/packages/showcase/mobile/src/screens/CardsScreen.tsx new file mode 100644 index 0000000..4f8bc12 --- /dev/null +++ b/packages/showcase/mobile/src/screens/CardsScreen.tsx @@ -0,0 +1,180 @@ +import React from 'react'; +import { View, Image, Alert } from 'react-native'; +import { Text } from 'react-native-paper'; +import { DTCard, DTLabel, DTMediaFrame, useDTTheme } from '@dangerousthings/react-native'; +import { ScreenContainer } from '../components/ScreenContainer'; +import { DemoSection } from '../components/DemoSection'; +import { CodeLabel } from '../components/CodeLabel'; + +export function CardsScreen() { + const theme = useDTTheme(); + + return ( + + {/* DTCard - All Modes */} + + + + Primary border with beveled bottom-right and bottom-left corners. + + + + + + Secondary border. Used for highlighted or important content. + + + + + + Error border. Used for errors and destructive actions. + + + + + + Success border. Used for confirmations and success states. + + + + + + Tertiary border. Used for secondary or miscellaneous info. + + + + + {/* DTCard - Variations */} + + + + Card without title (no header bar). + + + + Alert.alert('Card Pressed', 'You tapped the card!')} + style={{ marginBottom: 16 }} + > + + Tap me! Cards with onPress get press feedback. + + + + + + bevelSize=48, bevelSizeSmall=24, borderWidth=4 + + + + + {/* DTLabel - Sizes and Modes */} + + + SIZES: + + + + + + + + + WITH SECONDARY TEXT: + + + + + + + + + ALL VARIANTS: + + + + + + + + + + + FULL WIDTH: + + + + + + + OPTIONS: + + + + + + + + {/* DTMediaFrame */} + + + + + + + + + + + + + + + + + + + PLACEHOLDER CONTENT + + + + + + ); +} diff --git a/packages/showcase/mobile/src/screens/FeedbackScreen.tsx b/packages/showcase/mobile/src/screens/FeedbackScreen.tsx new file mode 100644 index 0000000..a2c8686 --- /dev/null +++ b/packages/showcase/mobile/src/screens/FeedbackScreen.tsx @@ -0,0 +1,139 @@ +import React, { useState, useEffect } from 'react'; +import { View } from 'react-native'; +import { Text } from 'react-native-paper'; +import { DTProgressBar, DTSearchInput, useDTTheme } from '@dangerousthings/react-native'; +import { ScreenContainer } from '../components/ScreenContainer'; +import { DemoSection } from '../components/DemoSection'; +import { CodeLabel } from '../components/CodeLabel'; + +export function FeedbackScreen() { + const theme = useDTTheme(); + const [progress, setProgress] = useState(0); + const [searchQuery, setSearchQuery] = useState(''); + const [loadingQuery, setLoadingQuery] = useState('NFC implants'); + + // Animate progress bar + useEffect(() => { + const interval = setInterval(() => { + setProgress((prev) => (prev >= 1 ? 0 : prev + 0.01)); + }, 100); + return () => clearInterval(interval); + }, []); + + return ( + + {/* DTProgressBar - Horizontal */} + + + + + 25% + + + + + + + 50% WITH LABEL + + + + + + + + 75% + + + + + + + 100% (WARNING) + + + + + + + ANIMATED ({Math.round(progress * 100)}%) + + + + + + + + {/* DTProgressBar - Vertical */} + + + + + + + + + + + + {/* DTSearchInput */} + + + + + + + + + + + + + + {}} + variant="warning" + placeholder="Disabled search" + disabled + /> + + + + + {}} + variant="other" + placeholder="Other variant..." + /> + + + + + + ); +} diff --git a/packages/showcase/mobile/src/screens/FormsScreen.tsx b/packages/showcase/mobile/src/screens/FormsScreen.tsx new file mode 100644 index 0000000..9c79938 --- /dev/null +++ b/packages/showcase/mobile/src/screens/FormsScreen.tsx @@ -0,0 +1,290 @@ +import React, { useState } from 'react'; +import { View } from 'react-native'; +import { Text } from 'react-native-paper'; +import { + DTTextInput, + DTCheckbox, + DTSwitch, + DTRadioGroup, + DTRadioOption, + DTQuantityStepper, + useDTTheme, +} from '@dangerousthings/react-native'; +import { ScreenContainer } from '../components/ScreenContainer'; +import { DemoSection } from '../components/DemoSection'; +import { CodeLabel } from '../components/CodeLabel'; + +export function FormsScreen() { + const theme = useDTTheme(); + + // TextInput state + const [username, setUsername] = useState(''); + const [search, setSearch] = useState(''); + const [errorField, setErrorField] = useState(''); + + // Checkbox state + const [check1, setCheck1] = useState(false); + const [check2, setCheck2] = useState(true); + const [check3, setCheck3] = useState(false); + + // Switch state + const [switch1, setSwitch1] = useState(false); + const [switch2, setSwitch2] = useState(true); + const [switch3, setSwitch3] = useState(false); + + // Radio state + const [radio1, setRadio1] = useState('nfc'); + const [radio2, setRadio2] = useState(null); + + // Stepper state + const [qty1, setQty1] = useState(1); + const [qty2, setQty2] = useState(5); + const [qty3, setQty3] = useState(0); + + return ( + + {/* DTTextInput */} + + + + + + + + + + + + + + + + + + + {}} + /> + + + + + + {/* DTCheckbox */} + + + setCheck1(!check1)} + label="Accept terms and conditions" + variant="normal" + /> + setCheck2(!check2)} + label="Remember me" + variant="success" + /> + setCheck3(!check3)} + label="Enable notifications" + variant="emphasis" + /> + {}} + label="Disabled checked" + variant="normal" + disabled + /> + {}} + label="Disabled unchecked" + variant="normal" + disabled + /> + {}} + label="Large checkbox (size=32)" + variant="warning" + size={32} + /> + + + + {/* DTSwitch */} + + + + + + {}} + label="Disabled (on)" + variant="normal" + disabled + /> + {}} + label="Disabled (off)" + variant="normal" + disabled + /> + + + + {/* DTRadioGroup */} + + + BASIC: + + + + + + + + + WITH DESCRIPTIONS: + + + + + + + + + {/* DTQuantityStepper */} + + + + + + + + + + + + + + + + + + + {}} + label="Disabled" + variant="normal" + disabled + /> + + + + + + ); +} diff --git a/packages/showcase/mobile/src/screens/HomeScreen.tsx b/packages/showcase/mobile/src/screens/HomeScreen.tsx new file mode 100644 index 0000000..0e2fc61 --- /dev/null +++ b/packages/showcase/mobile/src/screens/HomeScreen.tsx @@ -0,0 +1,160 @@ +import React from 'react'; +import { View, StyleSheet } from 'react-native'; +import { Text } from 'react-native-paper'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import type { NativeStackNavigationProp } from '@react-navigation/native-stack'; +import { DTCard, DTHexagon, useDTTheme } from '@dangerousthings/react-native'; +import type { DTVariant } from '@dangerousthings/react-native'; +import type { RootStackParamList } from '../navigation/types'; +import { ScreenContainer } from '../components/ScreenContainer'; +import { BrandSwitcher } from '../components/BrandSwitcher'; +import { useBrand } from '../brand/BrandContext'; + +type HomeScreenProps = { + navigation: NativeStackNavigationProp; +}; + +const categories: { + title: string; + subtitle: string; + mode: DTVariant; + route: keyof RootStackParamList; + count: number; +}[] = [ + { + title: 'BUTTONS & ACTIONS', + subtitle: 'DTButton, DTChip, DTHexagon', + mode: 'normal', + route: 'Buttons', + count: 3, + }, + { + title: 'CARDS & LABELS', + subtitle: 'DTCard, DTLabel, DTMediaFrame', + mode: 'emphasis', + route: 'Cards', + count: 3, + }, + { + title: 'FORM CONTROLS', + subtitle: 'DTTextInput, DTCheckbox, DTSwitch, DTRadioGroup, DTQuantityStepper', + mode: 'success', + route: 'Forms', + count: 5, + }, + { + title: 'PROGRESS & FEEDBACK', + subtitle: 'DTProgressBar, DTSearchInput', + mode: 'other', + route: 'Feedback', + count: 2, + }, + { + title: 'OVERLAYS & NAVIGATION', + subtitle: 'DTModal, DTDrawer, DTAccordion, DTMenu, DTGallery', + mode: 'warning', + route: 'Overlays', + count: 5, + }, + { + title: 'THEME REFERENCE', + subtitle: 'Colors, Typography, Spacing', + mode: 'normal', + route: 'Theme', + count: 0, + }, +]; + +export function HomeScreen({ navigation }: HomeScreenProps) { + const insets = useSafeAreaInsets(); + const theme = useDTTheme(); + const { brand } = useBrand(); + + return ( + + + + DANGEROUS THINGS + + + DESIGN SYSTEM + + + {brand.name} theme + + + + + + + + + + + + + + + COMPONENT CATALOG + + + {categories.map((cat) => ( + navigation.navigate(cat.route)} + style={styles.card} + > + + {cat.subtitle} + + {cat.count > 0 && ( + + {cat.count} components + + )} + + ))} + + ); +} + +const styles = StyleSheet.create({ + header: { + alignItems: 'center', + marginBottom: 8, + }, + title: { + letterSpacing: 2, + }, + subtitle: { + letterSpacing: 3, + marginTop: 4, + }, + version: { + color: 'rgba(255,255,255,0.4)', + marginTop: 8, + }, + hexRow: { + flexDirection: 'row', + justifyContent: 'center', + gap: 10, + marginVertical: 24, + }, + sectionLabel: { + color: 'rgba(255,255,255,0.5)', + letterSpacing: 2, + marginBottom: 16, + }, + card: { + marginBottom: 16, + }, + cardSubtitle: { + color: 'rgba(255,255,255,0.7)', + }, + cardCount: { + color: 'rgba(255,255,255,0.4)', + marginTop: 8, + }, +}); diff --git a/packages/showcase/mobile/src/screens/OverlaysScreen.tsx b/packages/showcase/mobile/src/screens/OverlaysScreen.tsx new file mode 100644 index 0000000..5e14abe --- /dev/null +++ b/packages/showcase/mobile/src/screens/OverlaysScreen.tsx @@ -0,0 +1,298 @@ +import React, { useState } from 'react'; +import { View } from 'react-native'; +import { Text } from 'react-native-paper'; +import { + DTButton, + DTCard, + DTChip, + DTModal, + DTDrawer, + DTAccordion, + DTMenu, + DTMenuDropdown, + DTGallery, + useDTTheme, +} from '@dangerousthings/react-native'; +import { ScreenContainer } from '../components/ScreenContainer'; +import { DemoSection } from '../components/DemoSection'; +import { CodeLabel } from '../components/CodeLabel'; +import { galleryItems, menuItems, horizontalMenuItems, dropdownItems } from '../data/sampleData'; + +export function OverlaysScreen() { + const theme = useDTTheme(); + + // Modal state + const [modalVisible, setModalVisible] = useState(false); + const [warningModalVisible, setWarningModalVisible] = useState(false); + + // Drawer state + const [rightDrawer, setRightDrawer] = useState(false); + const [leftDrawer, setLeftDrawer] = useState(false); + + // Menu dropdown state + const [menuDropdownVisible, setMenuDropdownVisible] = useState(false); + + // Gallery state + const [galleryIndex, setGalleryIndex] = useState(0); + + return ( + + {/* DTModal */} + + + setModalVisible(true)}> + OPEN NORMAL MODAL + + setWarningModalVisible(true)}> + OPEN WARNING MODAL + + + + setModalVisible(false)} + title="CONFIRM ACTION" + variant="normal" + > + + Are you sure you want to proceed with this action? + + + setModalVisible(false)} + style={{ flex: 1 }} + > + CONFIRM + + setModalVisible(false)} + style={{ flex: 1 }} + > + CANCEL + + + + + setWarningModalVisible(false)} + title="DELETE ITEM" + variant="warning" + > + + This action cannot be undone. All data will be permanently removed. + + setWarningModalVisible(false)} + > + DELETE + + + + + {/* DTDrawer */} + + + setRightDrawer(true)}> + OPEN RIGHT DRAWER + + setLeftDrawer(true)}> + OPEN LEFT DRAWER + + + + setRightDrawer(false)} + heading="CART" + headingVariant="emphasis" + position="right" + > + + xNT NFC Implant + + + xDF2 DESFire Implant + + setRightDrawer(false)} + > + CHECKOUT + + + + setLeftDrawer(false)} + heading="MENU" + headingVariant="normal" + position="left" + > + + setLeftDrawer(false)}> + HOME + + setLeftDrawer(false)}> + PRODUCTS + + setLeftDrawer(false)}> + ABOUT + + setLeftDrawer(false)}> + CONTACT + + + + + + {/* DTAccordion */} + + + SINGLE EXPAND: + + + Small + Medium + Large + + ), + }, + { + key: 'type', + title: 'Chip Type', + children: ( + + NTAG + DESFire + MIFARE Classic + + ), + }, + { + key: 'freq', + title: 'Frequency', + children: ( + + 13.56 MHz (HF) + 125 kHz (LF) + + ), + }, + ]} + /> + + + MULTI EXPAND: + + + Dangerous Things makes NFC and RFID implants for human use. + + ), + }, + { + key: 'faq', + title: 'FAQ', + children: ( + + Frequently asked questions about biohacking and body implants. + + ), + }, + ]} + /> + + + {/* DTMenu */} + + + VERTICAL (default): + + + + + HORIZONTAL: + + + + + DROPDOWN (DTMenuDropdown): + + setMenuDropdownVisible(false)} + variant="normal" + anchor={ + setMenuDropdownVisible(true)}> + OPEN DROPDOWN + + } + items={dropdownItems} + /> + + + {/* DTGallery */} + + + + + ); +} diff --git a/packages/showcase/mobile/src/screens/ThemeScreen.tsx b/packages/showcase/mobile/src/screens/ThemeScreen.tsx new file mode 100644 index 0000000..4cb4f0a --- /dev/null +++ b/packages/showcase/mobile/src/screens/ThemeScreen.tsx @@ -0,0 +1,201 @@ +import React from 'react'; +import { View, StyleSheet } from 'react-native'; +import { Text } from 'react-native-paper'; +import { useDTTheme } from '@dangerousthings/react-native'; +import { ScreenContainer } from '../components/ScreenContainer'; +import { DemoSection } from '../components/DemoSection'; +import { BrandSwitcher } from '../components/BrandSwitcher'; +import { useBrand } from '../brand/BrandContext'; + +const typographyScale = [ + { variant: 'displaySmall' as const, label: 'Display Small (36px)' }, + { variant: 'headlineMedium' as const, label: 'Headline Medium (28px)' }, + { variant: 'headlineSmall' as const, label: 'Headline Small (24px)' }, + { variant: 'titleLarge' as const, label: 'Title Large (22px)' }, + { variant: 'titleMedium' as const, label: 'Title Medium (16px)' }, + { variant: 'bodyLarge' as const, label: 'Body Large (16px)' }, + { variant: 'bodyMedium' as const, label: 'Body Medium (14px)' }, + { variant: 'bodySmall' as const, label: 'Body Small (12px)' }, + { variant: 'labelLarge' as const, label: 'Label Large (14px)' }, + { variant: 'labelSmall' as const, label: 'Label Small (11px)' }, +]; + +export function ThemeScreen() { + const theme = useDTTheme(); + const { brand } = useBrand(); + const colors = brand.dark; + + const colorSwatches = [ + { name: 'primary', hex: colors.primary, label: 'Primary interactive' }, + { name: 'secondary', hex: colors.secondary, label: 'Highlights, attention' }, + { name: 'error', hex: colors.error, label: 'Errors, destructive' }, + { name: 'success', hex: colors.success, label: 'Confirmations' }, + { name: 'other', hex: colors.other, label: 'Secondary, misc' }, + ]; + + const baseColors = [ + { name: 'bg', hex: colors.bg, label: 'Background', textColor: colors.textPrimary }, + { name: 'textPrimary', hex: colors.textPrimary, label: 'Text', textColor: colors.bg }, + { name: 'surface', hex: colors.surface, label: 'Surface', textColor: colors.textPrimary }, + { name: 'border', hex: colors.border, label: 'Border', textColor: colors.bg }, + ]; + + return ( + + {/* Brand Switcher */} + + + + Current: {brand.name} — {brand.description} + + + + {/* Color Palette */} + + MODE COLORS: + {colorSwatches.map((swatch) => ( + + + + {swatch.name} + {swatch.hex} + {swatch.label} + + + ))} + + BASE COLORS: + {baseColors.map((color) => ( + + + + {color.name} + {color.hex} + {color.label} + + + ))} + + + {/* Typography */} + + + {typographyScale.map((item) => ( + + + {item.label} + + + ))} + + + + {/* Shape Tokens */} + + + + {`bevelSm: ${brand.shape.bevelSm}\nbevelMd: ${brand.shape.bevelMd}\nbevelLg: ${brand.shape.bevelLg}\nradiusSm: ${brand.shape.radiusSm}\nradius: ${brand.shape.radius}\nradiusLg: ${brand.shape.radiusLg}`} + + + + + {/* Spacing */} + + {[4, 8, 12, 16, 24, 32, 48].map((size) => ( + + + {size}px + + ))} + + + ); +} + +const styles = StyleSheet.create({ + subLabel: { + color: 'rgba(255,255,255,0.6)', + marginBottom: 12, + }, + swatchRow: { + flexDirection: 'row', + alignItems: 'center', + gap: 12, + marginBottom: 12, + }, + swatch: { + width: 40, + height: 40, + }, + swatchInfo: { + flex: 1, + }, + swatchName: { + fontWeight: '600', + fontSize: 14, + }, + swatchHex: { + color: 'rgba(255,255,255,0.5)', + fontSize: 11, + fontFamily: 'monospace', + }, + swatchDesc: { + color: 'rgba(255,255,255,0.35)', + fontSize: 11, + }, + typeRow: { + paddingVertical: 4, + borderBottomWidth: 1, + borderBottomColor: 'rgba(255,255,255,0.05)', + }, + codeBlock: { + backgroundColor: '#0a0a0a', + padding: 16, + borderWidth: 1, + borderColor: 'rgba(255,255,255,0.1)', + }, + codeText: { + fontFamily: 'monospace', + fontSize: 12, + lineHeight: 20, + }, + spacingRow: { + flexDirection: 'row', + alignItems: 'center', + gap: 12, + marginBottom: 8, + }, + spacingBar: { + height: 12, + }, + spacingLabel: { + color: 'rgba(255,255,255,0.5)', + fontSize: 11, + fontFamily: 'monospace', + }, +}); diff --git a/packages/showcase/mobile/tsconfig.json b/packages/showcase/mobile/tsconfig.json new file mode 100644 index 0000000..b9567f6 --- /dev/null +++ b/packages/showcase/mobile/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "expo/tsconfig.base", + "compilerOptions": { + "strict": true + } +} diff --git a/turbo.json b/turbo.json index d35f080..5aae961 100644 --- a/turbo.json +++ b/turbo.json @@ -5,6 +5,16 @@ "dependsOn": ["^build"], "outputs": ["dist/**"] }, + "dev": { + "dependsOn": ["^build"], + "cache": false, + "persistent": true + }, + "start": { + "dependsOn": ["^build"], + "cache": false, + "persistent": true + }, "clean": { "cache": false },