Full Code of toss/granite for AI

main b87ca27e7b6b cached
1574 files
6.5 MB
1.8M tokens
8486 symbols
1 requests
Download .txt
Showing preview only (7,259K chars total). Download the full file or copy to clipboard to get everything.
Repository: toss/granite
Branch: main
Commit: b87ca27e7b6b
Files: 1574
Total size: 6.5 MB

Directory structure:
gitextract_nxiy5m7q/

├── .changeset/
│   └── config.json
├── .cursorignore
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── CODEOWNERS
│   ├── actions/
│   │   └── setup-node-yarn/
│   │       └── action.yml
│   ├── labeler.yml
│   └── workflows/
│       ├── docs-workflow.yaml
│       ├── integrations.yaml
│       ├── labeler.yml
│       └── release.yaml
├── .gitignore
├── .nvmrc
├── .prettierignore
├── .prettierrc
├── .scripts/
│   ├── check-constraints-yarn-4.sh
│   ├── check-exports.mts
│   ├── check-peer.sh
│   ├── check-platform-specific-files.js
│   ├── licenses.mjs
│   ├── publish-dev.sh
│   ├── publish-packages.sh
│   ├── typecheck-rn-68.sh
│   ├── utils/
│   │   ├── license-templates.mjs
│   │   ├── licenses.mjs
│   │   └── parse-licenses.spec.ts
│   └── version.sh
├── .vscode/
│   ├── extensions.json
│   └── settings.json
├── .yarn/
│   ├── plugins/
│   │   ├── @yarnpkg/
│   │   │   └── plugin-catalogs.cjs
│   │   └── plugin-licenses.js
│   ├── releases/
│   │   └── yarn-4.12.0.cjs
│   └── sdks/
│       ├── eslint/
│       │   ├── bin/
│       │   │   └── eslint.js
│       │   ├── lib/
│       │   │   ├── api.js
│       │   │   └── unsupported-api.js
│       │   └── package.json
│       ├── integrations.yml
│       ├── prettier/
│       │   ├── bin/
│       │   │   └── prettier.cjs
│       │   ├── index.cjs
│       │   └── package.json
│       └── typescript/
│           ├── bin/
│           │   ├── tsc
│           │   └── tsserver
│           ├── lib/
│           │   ├── tsc.js
│           │   ├── tsserver.js
│           │   ├── tsserverlibrary.js
│           │   └── typescript.js
│           └── package.json
├── .yarnrc.yml
├── LICENSE
├── README-ko_kr.md
├── README.md
├── bin/
│   └── tools
├── docs/
│   ├── .gitignore
│   ├── .gitkeep
│   ├── .vitepress/
│   │   ├── config.mts
│   │   ├── en.mts
│   │   ├── ko.mts
│   │   ├── shared.mts
│   │   ├── theme/
│   │   │   ├── custom.css
│   │   │   ├── index.ts
│   │   │   └── style.css
│   │   └── utils.ts
│   ├── components/
│   │   └── UsageSection.vue
│   ├── guides/
│   │   ├── comparison.md
│   │   ├── granite-router/
│   │   │   ├── layouts.md
│   │   │   ├── params.md
│   │   │   ├── plugin-router.md
│   │   │   └── routing.md
│   │   ├── introduction.md
│   │   ├── miscellaneous/
│   │   │   └── install-native-app.md
│   │   └── quick-start/
│   │       ├── create-your-app.md
│   │       ├── deploy-your-app.md
│   │       └── setup-aws.md
│   ├── index.md
│   ├── ko/
│   │   ├── guides/
│   │   │   ├── comparison.md
│   │   │   ├── granite-router/
│   │   │   │   ├── layouts.md
│   │   │   │   ├── params.md
│   │   │   │   ├── plugin-router.md
│   │   │   │   └── routing.md
│   │   │   ├── introduction.md
│   │   │   ├── miscellaneous/
│   │   │   │   └── install-native-app.md
│   │   │   └── quick-start/
│   │   │       ├── create-your-app.md
│   │   │       ├── deploy-your-app.md
│   │   │       └── setup-aws.md
│   │   ├── index.md
│   │   └── reference/
│   │       ├── image/
│   │       │   └── ui/
│   │       │       └── Image.md
│   │       ├── manifest.json
│   │       ├── react-native/
│   │       │   ├── config/
│   │       │   │   └── defineConfig.md
│   │       │   ├── core/
│   │       │   │   ├── Granite.md
│   │       │   │   ├── InitialProps.md
│   │       │   │   ├── useInitialProps.md
│   │       │   │   └── useIsInitialScreen.md
│   │       │   ├── environment-check/
│   │       │   │   ├── getSchemeUri.md
│   │       │   │   └── useInitialSearchParams.md
│   │       │   ├── screen-control/
│   │       │   │   ├── IOFlatList.md
│   │       │   │   ├── IOScrollView.md
│   │       │   │   ├── ImpressionArea.md
│   │       │   │   ├── InView.md
│   │       │   │   ├── closeView.md
│   │       │   │   ├── useBackEvent.md
│   │       │   │   ├── useParams.md
│   │       │   │   ├── useRouterBackHandler.md
│   │       │   │   ├── useVisibility.md
│   │       │   │   └── useVisibilityChange.md
│   │       │   ├── screen-navigation/
│   │       │   │   └── openURL.md
│   │       │   └── ui/
│   │       │       ├── BackButton.md
│   │       │       ├── BlurView.md
│   │       │       ├── ColorPreference.md
│   │       │       ├── KeyboardAboveView.md
│   │       │       ├── OnAudioFocusChanged.md
│   │       │       ├── ScrollViewInertialBackground.md
│   │       │       └── Video.md
│   │       └── style-utils/
│   │           └── ui/
│   │               ├── Flex.md
│   │               ├── FlexCenter.md
│   │               ├── FlexCenterHorizontal.md
│   │               ├── FlexCenterVertical.md
│   │               ├── Spacing.md
│   │               ├── Stack.md
│   │               ├── StackHorizontal.md
│   │               ├── StackVertical.md
│   │               ├── margin.md
│   │               └── padding.md
│   ├── package.json
│   └── reference/
│       ├── image/
│       │   └── ui/
│       │       └── Image.md
│       ├── manifest.json
│       ├── react-native/
│       │   ├── config/
│       │   │   └── defineConfig.md
│       │   ├── core/
│       │   │   ├── Granite.md
│       │   │   ├── InitialProps.md
│       │   │   ├── useInitialProps.md
│       │   │   └── useIsInitialScreen.md
│       │   ├── environment-check/
│       │   │   ├── getSchemeUri.md
│       │   │   └── useInitialSearchParams.md
│       │   ├── screen-control/
│       │   │   ├── IOFlatList.md
│       │   │   ├── IOScrollView.md
│       │   │   ├── ImpressionArea.md
│       │   │   ├── InView.md
│       │   │   ├── closeView.md
│       │   │   ├── useBackEvent.md
│       │   │   ├── useParams.md
│       │   │   ├── useRouterBackHandler.md
│       │   │   ├── useVisibility.md
│       │   │   └── useVisibilityChange.md
│       │   ├── screen-navigation/
│       │   │   └── openURL.md
│       │   └── ui/
│       │       ├── BackButton.md
│       │       ├── BlurView.md
│       │       ├── ColorPreference.md
│       │       ├── KeyboardAboveView.md
│       │       ├── OnAudioFocusChanged.md
│       │       ├── ScrollViewInertialBackground.md
│       │       └── Video.md
│       └── style-utils/
│           └── ui/
│               ├── Flex.md
│               ├── FlexCenter.md
│               ├── FlexCenterHorizontal.md
│               ├── FlexCenterVertical.md
│               ├── Spacing.md
│               ├── Stack.md
│               ├── StackHorizontal.md
│               ├── StackVertical.md
│               ├── margin.md
│               └── padding.md
├── eslint.config.cjs
├── infra/
│   ├── deployment-manager/
│   │   ├── CHANGELOG.md
│   │   ├── NOTICE
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── DeployManager.spec.ts
│   │   │   ├── DeployManager.ts
│   │   │   ├── constants.ts
│   │   │   ├── errors/
│   │   │   │   ├── InternalServerError.ts
│   │   │   │   ├── InvalidRequest.ts
│   │   │   │   ├── NotFoundError.ts
│   │   │   │   └── index.ts
│   │   │   ├── index.ts
│   │   │   ├── planCanaryRollout.ts
│   │   │   ├── planRollout.ts
│   │   │   ├── planStableRollout.ts
│   │   │   ├── readBundleList.ts
│   │   │   ├── readCluster.ts
│   │   │   ├── readDeploymentState.ts
│   │   │   ├── resolveBundle.ts
│   │   │   ├── resolveDeploymentId.ts
│   │   │   ├── rollout.ts
│   │   │   ├── rolloutCluster.ts
│   │   │   ├── s3/
│   │   │   │   ├── client.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── paths.ts
│   │   │   │   └── utils.ts
│   │   │   ├── types.ts
│   │   │   ├── updateBundleList.ts
│   │   │   ├── uploadBundle.ts
│   │   │   ├── utils/
│   │   │   │   ├── toDeployedAtString.ts
│   │   │   │   └── toRuntimeString.ts
│   │   │   └── writeBundleList.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── tsup.config.ts
│   ├── forge-cli/
│   │   ├── CHANGELOG.md
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── bin/
│   │   │   └── index.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── commands/
│   │   │   │   ├── deploy.ts
│   │   │   │   └── deployList.ts
│   │   │   ├── helpers/
│   │   │   │   └── command.ts
│   │   │   ├── index.ts
│   │   │   ├── operations/
│   │   │   │   ├── deploy.ts
│   │   │   │   └── deployList.ts
│   │   │   └── utils/
│   │   │       ├── generateDeploymentId.ts
│   │   │       ├── gzip.ts
│   │   │       └── handlePrompts.ts
│   │   ├── tsconfig.json
│   │   └── tsdown.config.ts
│   └── pulumi-aws/
│       ├── CHANGELOG.md
│       ├── NOTICE
│       ├── README.md
│       ├── lambda/
│       │   ├── auto-cache-removal.d.ts
│       │   ├── origin-request.d.ts
│       │   └── origin-response.d.ts
│       ├── package.json
│       ├── pulumi/
│       │   └── index.ts
│       ├── src/
│       │   ├── index.ts
│       │   ├── lambda/
│       │   │   ├── auto-cache-removal.ts
│       │   │   ├── constants.ts
│       │   │   ├── context.ts
│       │   │   ├── origin-request.ts
│       │   │   ├── origin-response.ts
│       │   │   └── utils/
│       │   │       ├── getBundleKey.spec.ts
│       │   │       ├── getBundleKey.ts
│       │   │       ├── invalidation.spec.ts
│       │   │       ├── invalidation.ts
│       │   │       ├── parseAppName.spec.ts
│       │   │       ├── parseAppName.ts
│       │   │       ├── parseGroupId.spec.ts
│       │   │       ├── parseGroupId.ts
│       │   │       ├── parsePlatform.spec.ts
│       │   │       ├── parsePlatform.ts
│       │   │       ├── parseSuffix.spec.ts
│       │   │       ├── parseSuffix.ts
│       │   │       ├── pathParser.spec.ts
│       │   │       └── pathParser.ts
│       │   ├── react-native-cdn.ts
│       │   └── utils/
│       │       └── getTimestampByUUIDv7.ts
│       ├── tsconfig.json
│       └── tsup.config.ts
├── knip.json
├── mise.toml
├── nx.json
├── package.json
├── packages/
│   ├── babel-preset-granite/
│   │   ├── CHANGELOG.md
│   │   ├── NOTICE
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── __tests__/
│   │   │   │   └── preset.spec.ts
│   │   │   └── index.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── vitest.config.mts
│   ├── blur-view/
│   │   ├── CHANGELOG.md
│   │   ├── NOTICE
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── BlurView.tsx
│   │   │   ├── ReactNativeBlurModule.ts
│   │   │   ├── constants.ts
│   │   │   └── index.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── brownfield-module/
│   │   ├── CHANGELOG.md
│   │   ├── GraniteBrownfield.podspec
│   │   ├── android/
│   │   │   └── src/
│   │   │       └── main/
│   │   │           └── kotlin/
│   │   │               └── run/
│   │   │                   └── granite/
│   │   │                       └── brownfield/
│   │   │                           └── typegen/
│   │   │                               ├── GraniteBrownfieldModuleSpec.kt
│   │   │                               └── GraniteBrownfieldModuleTypes.kt
│   │   ├── ios/
│   │   │   └── typegen/
│   │   │       ├── GraniteBrownfieldModuleSpec.swift
│   │   │       └── GraniteBrownfieldModuleTypes.swift
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── spec/
│   │   │       └── GraniteBrownfieldModule.brick.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── cli/
│   │   ├── .ts-prunerc.json
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── babel.config.js
│   │   ├── cli.code-workspace
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   └── run.js
│   │   ├── src/
│   │   │   ├── commands/
│   │   │   │   ├── BuildCommand/
│   │   │   │   │   ├── BuildCommand.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── DevCommand/
│   │   │   │   │   ├── DevCommand.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── HermesCommand/
│   │   │   │   │   ├── HermesCommand.ts
│   │   │   │   │   └── index.ts
│   │   │   │   └── index.ts
│   │   │   ├── constants.ts
│   │   │   ├── errors.ts
│   │   │   ├── index.ts
│   │   │   └── utils/
│   │   │       ├── command.ts
│   │   │       ├── compileHbc.ts
│   │   │       ├── compressToGzip.ts
│   │   │       ├── isExist.ts
│   │   │       └── parseError.ts
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   └── tsup.config.ts
│   ├── cookies/
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── GraniteCookies.podspec
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── android/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       └── main/
│   │   │           ├── AndroidManifest.xml
│   │   │           └── kotlin/
│   │   │               └── run/
│   │   │                   └── granite/
│   │   │                       └── cookies/
│   │   │                           ├── CookiesModule.kt
│   │   │                           └── typegen/
│   │   │                               ├── CookiesSpec.kt
│   │   │                               └── CookiesTypes.kt
│   │   ├── ios/
│   │   │   ├── CookiesModule.swift
│   │   │   └── typegen/
│   │   │       ├── CookiesSpec.swift
│   │   │       └── CookiesTypes.swift
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── spec/
│   │   │       └── cookies.brick.ts
│   │   ├── tsconfig.json
│   │   └── tsdown.config.ts
│   ├── create-granite-app/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── bin.js
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   ├── postpack.js
│   │   │   ├── prepack.js
│   │   │   └── utils/
│   │   │       └── updateWorkspaceProtocol.js
│   │   ├── src/
│   │   │   ├── __test__/
│   │   │   │   ├── cli.spec.ts
│   │   │   │   └── createTmpDir.ts
│   │   │   ├── copyTemplate.ts
│   │   │   ├── copyToolTemplate.ts
│   │   │   ├── cwd.ts
│   │   │   ├── getPackageManager.ts
│   │   │   ├── index.ts
│   │   │   ├── resolveFallback.spec.ts
│   │   │   ├── resolveFallback.ts
│   │   │   ├── transformTemplate.spec.ts
│   │   │   └── transformTemplate.ts
│   │   ├── templates/
│   │   │   └── granite-app/
│   │   │       ├── README.md
│   │   │       ├── _gitignore
│   │   │       ├── babel.config.js
│   │   │       ├── granite.config.ts
│   │   │       ├── index.ts
│   │   │       ├── jest.config.js
│   │   │       ├── jest.setup.ts
│   │   │       ├── package.json
│   │   │       ├── pages/
│   │   │       │   ├── _404.tsx
│   │   │       │   ├── about.tsx
│   │   │       │   └── index.tsx
│   │   │       ├── react-native.config.js
│   │   │       ├── require.context.ts
│   │   │       ├── src/
│   │   │       │   ├── _app.tsx
│   │   │       │   ├── pages/
│   │   │       │   │   ├── about.tsx
│   │   │       │   │   └── index.tsx
│   │   │       │   └── router.gen.ts
│   │   │       └── tsconfig.json
│   │   ├── tool-templates/
│   │   │   ├── biome/
│   │   │   │   ├── biome.json
│   │   │   │   └── package.json
│   │   │   └── eslint-prettier/
│   │   │       ├── .prettierrc
│   │   │       ├── eslint.config.mjs
│   │   │       └── package.json
│   │   ├── tsconfig.json
│   │   ├── vitest.config.mts
│   │   └── vitest.global-setup.mts
│   ├── granite-screen/
│   │   ├── CHANGELOG.md
│   │   ├── GraniteScreen.podspec
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── android/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── build.gradle
│   │   │   ├── src/
│   │   │   │   ├── main/
│   │   │   │   │   ├── AndroidManifest.xml
│   │   │   │   │   ├── cpp/
│   │   │   │   │   │   ├── BundleEvaluator.cpp
│   │   │   │   │   │   ├── BundleEvaluator.h
│   │   │   │   │   │   ├── FileReader.cpp
│   │   │   │   │   │   ├── FileReader.h
│   │   │   │   │   │   └── onLoad.cpp
│   │   │   │   │   └── kotlin/
│   │   │   │   │       └── run/
│   │   │   │   │           └── granite/
│   │   │   │   │               ├── BundleEvaluator.kt
│   │   │   │   │               ├── BundleLoader.kt
│   │   │   │   │               ├── DefaultBundleLoader.kt
│   │   │   │   │               ├── DefaultErrorView.kt
│   │   │   │   │               ├── DefaultLoadingView.kt
│   │   │   │   │               ├── GraniteReactDelegate.kt
│   │   │   │   │               ├── GraniteReactDelegateImpl.kt
│   │   │   │   │               ├── GraniteReactHost.kt
│   │   │   │   │               └── ReactHostFactory.kt
│   │   │   │   └── test/
│   │   │   │       └── cpp/
│   │   │   │           ├── CMakeLists.txt
│   │   │   │           └── FileReaderTest.cpp
│   │   │   └── test-cpp.sh
│   │   ├── gradle-plugin/
│   │   │   ├── .gitignore
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   ├── build.gradle.kts
│   │   │   ├── gradle/
│   │   │   │   ├── libs.versions.toml
│   │   │   │   └── wrapper/
│   │   │   │       ├── gradle-wrapper.jar
│   │   │   │       └── gradle-wrapper.properties
│   │   │   ├── gradle.properties
│   │   │   ├── gradlew
│   │   │   ├── gradlew.bat
│   │   │   ├── settings.gradle.kts
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   └── kotlin/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── gradle/
│   │   │       │                   ├── GraniteExtension.kt
│   │   │       │                   ├── GranitePlugin.kt
│   │   │       │                   ├── GraniteRootExtension.kt
│   │   │       │                   ├── GraniteRootProjectPlugin.kt
│   │   │       │                   ├── config/
│   │   │       │                   │   ├── BuildConfigConfigurator.kt
│   │   │       │                   │   ├── DependencyConfigurator.kt
│   │   │       │                   │   ├── DependencyCoordinates.kt
│   │   │       │                   │   ├── DevServerResourceConfigurator.kt
│   │   │       │                   │   ├── JniPackagingConfigurator.kt
│   │   │       │                   │   ├── NdkConfigurator.kt
│   │   │       │                   │   ├── RepositoryConfigurator.kt
│   │   │       │                   │   └── ResourceConfigurator.kt
│   │   │       │                   ├── generators/
│   │   │       │                   │   ├── CMakeGenerator.kt
│   │   │       │                   │   ├── CppAutolinkingGenerator.kt
│   │   │       │                   │   └── EntryPointGenerator.kt
│   │   │       │                   ├── models/
│   │   │       │                   │   ├── AndroidDependencyConfig.kt
│   │   │       │                   │   ├── AutolinkingConfig.kt
│   │   │       │                   │   ├── CMakeEntry.kt
│   │   │       │                   │   └── NativeModule.kt
│   │   │       │                   ├── tasks/
│   │   │       │                   │   ├── AssetPackagingTask.kt
│   │   │       │                   │   ├── AutolinkingTask.kt
│   │   │       │                   │   ├── BundleTask.kt
│   │   │       │                   │   ├── CodegenArtifactsTask.kt
│   │   │       │                   │   └── CodegenSchemaTask.kt
│   │   │       │                   └── utils/
│   │   │       │                       ├── AutolinkingParser.kt
│   │   │       │                       ├── ConflictDetector.kt
│   │   │       │                       ├── JdkValidator.kt
│   │   │       │                       ├── NodeExecutableFinder.kt
│   │   │       │                       ├── ReactNativeVersionReader.kt
│   │   │       │                       └── TaskDependencyValidator.kt
│   │   │       └── test/
│   │   │           ├── kotlin/
│   │   │           │   └── run/
│   │   │           │       └── granite/
│   │   │           │           └── gradle/
│   │   │           │               ├── GraniteExtensionTest.kt
│   │   │           │               ├── GranitePluginTest.kt
│   │   │           │               ├── GraniteRootProjectPluginTest.kt
│   │   │           │               ├── config/
│   │   │           │               │   ├── BuildConfigConfiguratorTest.kt
│   │   │           │               │   ├── DependencyConfiguratorTest.kt
│   │   │           │               │   ├── DevServerResourceConfiguratorTest.kt
│   │   │           │               │   └── ResourceConfiguratorTest.kt
│   │   │           │               ├── fixtures/
│   │   │           │               │   └── NativeModuleFixtures.kt
│   │   │           │               ├── generators/
│   │   │           │               │   ├── CMakeGeneratorTest.kt
│   │   │           │               │   ├── CppAutolinkingGeneratorTest.kt
│   │   │           │               │   └── EntryPointGeneratorTest.kt
│   │   │           │               ├── models/
│   │   │           │               │   ├── AutolinkingConfigTest.kt
│   │   │           │               │   ├── CMakeEntryTest.kt
│   │   │           │               │   └── NativeModuleTest.kt
│   │   │           │               ├── tasks/
│   │   │           │               │   ├── AssetPackagingTaskTest.kt
│   │   │           │               │   ├── AutolinkingTaskTest.kt
│   │   │           │               │   ├── BundleTaskTest.kt
│   │   │           │               │   └── CodegenTasksTest.kt
│   │   │           │               └── utils/
│   │   │           │                   ├── AutolinkingParserTest.kt
│   │   │           │                   ├── ConflictDetectorTest.kt
│   │   │           │                   ├── JdkValidatorTest.kt
│   │   │           │                   ├── ReactNativeVersionReaderTest.kt
│   │   │           │                   ├── TaskDependencyValidatorTest.kt
│   │   │           │                   └── TaskTestUtils.kt
│   │   │           └── resources/
│   │   │               └── fixtures/
│   │   │                   └── sample-rn-config.json
│   │   ├── ios/
│   │   │   ├── BundleLoader/
│   │   │   │   ├── BundleEvaluator.h
│   │   │   │   ├── BundleEvaluator.mm
│   │   │   │   └── BundleLoadable.swift
│   │   │   ├── GraniteBundleLoaderTypes.swift
│   │   │   ├── GraniteScreen.h
│   │   │   └── ReactNativeHosting/
│   │   │       ├── DefaultViews.swift
│   │   │       ├── GraniteDefaultModuleProvider.h
│   │   │       ├── GraniteDefaultModuleProvider.mm
│   │   │       ├── GraniteHostingHelper.swift
│   │   │       ├── GraniteNativeFactory.swift
│   │   │       ├── GraniteNativeFactoryDelegateImpl.swift
│   │   │       ├── GraniteNativeFactoryImpl.swift
│   │   │       ├── GraniteReactHost.swift
│   │   │       └── GraniteScreen-Bridging-Header.h
│   │   ├── package.json
│   │   └── react-native.config.js
│   ├── image/
│   │   ├── CHANGELOG.md
│   │   ├── GraniteImage.podspec
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── android/
│   │   │   ├── build.gradle
│   │   │   ├── gradle.properties
│   │   │   └── src/
│   │   │       ├── coil/
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── image/
│   │   │       │                   └── providers/
│   │   │       │                       └── CoilImageProvider.kt
│   │   │       ├── glide/
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── image/
│   │   │       │                   └── providers/
│   │   │       │                       └── GlideImageProvider.kt
│   │   │       ├── main/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── image/
│   │   │       │                   ├── GraniteImage.kt
│   │   │       │                   ├── GraniteImageEvents.kt
│   │   │       │                   ├── GraniteImageManager.kt
│   │   │       │                   ├── GraniteImageModule.kt
│   │   │       │                   ├── GraniteImagePackage.kt
│   │   │       │                   ├── GraniteImageProvider.kt
│   │   │       │                   └── GraniteImageRegistry.kt
│   │   │       └── okhttp/
│   │   │           └── java/
│   │   │               └── run/
│   │   │                   └── granite/
│   │   │                       └── image/
│   │   │                           └── providers/
│   │   │                               └── OkHttpImageProvider.kt
│   │   ├── example/
│   │   │   ├── .bundle/
│   │   │   │   └── config
│   │   │   ├── .detoxrc.js
│   │   │   ├── .watchmanconfig
│   │   │   ├── Gemfile
│   │   │   ├── README.md
│   │   │   ├── android/
│   │   │   │   ├── app/
│   │   │   │   │   ├── build.gradle
│   │   │   │   │   ├── debug.keystore
│   │   │   │   │   ├── proguard-rules.pro
│   │   │   │   │   └── src/
│   │   │   │   │       ├── androidTest/
│   │   │   │   │       │   └── java/
│   │   │   │   │       │       └── run/
│   │   │   │   │       │           └── granite/
│   │   │   │   │       │               └── image/
│   │   │   │   │       │                   └── example/
│   │   │   │   │       │                       └── DetoxTest.java
│   │   │   │   │       ├── debug/
│   │   │   │   │       │   └── AndroidManifest.xml
│   │   │   │   │       └── main/
│   │   │   │   │           ├── AndroidManifest.xml
│   │   │   │   │           ├── java/
│   │   │   │   │           │   └── run/
│   │   │   │   │           │       └── granite/
│   │   │   │   │           │           └── image/
│   │   │   │   │           │               └── example/
│   │   │   │   │           │                   ├── MainActivity.kt
│   │   │   │   │           │                   └── MainApplication.kt
│   │   │   │   │           └── res/
│   │   │   │   │               ├── drawable/
│   │   │   │   │               │   └── rn_edit_text_material.xml
│   │   │   │   │               └── values/
│   │   │   │   │                   ├── strings.xml
│   │   │   │   │                   └── styles.xml
│   │   │   │   ├── build.gradle
│   │   │   │   ├── gradle/
│   │   │   │   │   └── wrapper/
│   │   │   │   │       ├── gradle-wrapper.jar
│   │   │   │   │       └── gradle-wrapper.properties
│   │   │   │   ├── gradle.properties
│   │   │   │   ├── gradlew
│   │   │   │   ├── gradlew.bat
│   │   │   │   └── settings.gradle
│   │   │   ├── app.json
│   │   │   ├── babel.config.js
│   │   │   ├── e2e/
│   │   │   │   ├── GraniteImage.e2e.ts
│   │   │   │   └── jest.config.js
│   │   │   ├── index.js
│   │   │   ├── ios/
│   │   │   │   ├── .xcode.env
│   │   │   │   ├── GraniteImageExample/
│   │   │   │   │   ├── AppDelegate.swift
│   │   │   │   │   ├── Images.xcassets/
│   │   │   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── PrivacyInfo.xcprivacy
│   │   │   │   ├── GraniteImageExample.xcodeproj/
│   │   │   │   │   ├── project.pbxproj
│   │   │   │   │   └── xcshareddata/
│   │   │   │   │       └── xcschemes/
│   │   │   │   │           └── GraniteImageExample.xcscheme
│   │   │   │   ├── GraniteImageExample.xcworkspace/
│   │   │   │   │   └── contents.xcworkspacedata
│   │   │   │   └── Podfile
│   │   │   ├── jest.config.js
│   │   │   ├── metro.config.js
│   │   │   ├── package.json
│   │   │   ├── react-native.config.js
│   │   │   └── src/
│   │   │       └── App.tsx
│   │   ├── image.code-workspace
│   │   ├── ios/
│   │   │   ├── GraniteImageComponentView.h
│   │   │   ├── GraniteImageComponentView.mm
│   │   │   ├── GraniteImageModule.swift
│   │   │   ├── GraniteImageModuleBridge.m
│   │   │   ├── GraniteImageProvider.swift
│   │   │   ├── GraniteImageRegistry.swift
│   │   │   └── Providers/
│   │   │       └── SDWebImageProvider.swift
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── GraniteImage.tsx
│   │   │   ├── GraniteImageNativeComponent.ts
│   │   │   ├── NativeGraniteImageModule.ts
│   │   │   └── index.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── jest/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── jest-next.code-workspace
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── jest.config.ts
│   │   │   ├── setup/
│   │   │   │   ├── index.ts
│   │   │   │   └── reactNative.ts
│   │   │   └── utils/
│   │   │       └── requireFromRoot.ts
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   └── tsup.config.ts
│   ├── jest.config.js
│   ├── lottie/
│   │   ├── CHANGELOG.md
│   │   ├── GraniteLottie.podspec
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── android/
│   │   │   ├── build.gradle
│   │   │   ├── gradle.properties
│   │   │   └── src/
│   │   │       ├── default/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── lottie/
│   │   │       │                   └── builtin/
│   │   │       │                       ├── BuiltInLottieContentProvider.kt
│   │   │       │                       ├── BuiltInLottieInitializer.kt
│   │   │       │                       └── BuiltInLottieProvider.kt
│   │   │       └── main/
│   │   │           ├── AndroidManifest.xml
│   │   │           └── java/
│   │   │               └── run/
│   │   │                   └── granite/
│   │   │                       └── lottie/
│   │   │                           ├── GraniteLottieEvents.kt
│   │   │                           ├── GraniteLottieProvider.kt
│   │   │                           ├── GraniteLottieRegistry.kt
│   │   │                           ├── GraniteLottieView.kt
│   │   │                           ├── GraniteLottieViewManager.kt
│   │   │                           └── GraniteLottieViewPackage.kt
│   │   ├── ios/
│   │   │   ├── GraniteLottieProvider.swift
│   │   │   ├── GraniteLottieRegistry.swift
│   │   │   ├── GraniteLottieView.h
│   │   │   ├── GraniteLottieView.mm
│   │   │   └── Providers/
│   │   │       └── BuiltInLottieProvider.swift
│   │   ├── lottie.code-workspace
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── GraniteLottieView.tsx
│   │   │   ├── GraniteLottieViewNativeComponent.ts
│   │   │   ├── index.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── mpack/
│   │   ├── .scripts/
│   │   │   └── copy-vendors-dts.mjs
│   │   ├── .ts-prunerc.json
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── internal.d.ts
│   │   ├── mpack.code-workspace
│   │   ├── package.json
│   │   ├── plugins.d.ts
│   │   ├── src/
│   │   │   ├── bundler/
│   │   │   │   ├── Bundler.ts
│   │   │   │   ├── PluginDriver.ts
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── bundle.spec.ts
│   │   │   │   │   └── fixtures/
│   │   │   │   │       ├── alias/
│   │   │   │   │       │   └── index.js
│   │   │   │   │       ├── banner/
│   │   │   │   │       │   └── index.js
│   │   │   │   │       ├── default/
│   │   │   │   │       │   └── index.js
│   │   │   │   │       ├── es6/
│   │   │   │   │       │   └── index.js
│   │   │   │   │       └── flow/
│   │   │   │   │           └── index.js
│   │   │   │   ├── index.ts
│   │   │   │   ├── internal/
│   │   │   │   │   └── presets.ts
│   │   │   │   └── plugins/
│   │   │   │       ├── buildStatusPlugin/
│   │   │   │       │   ├── buildStatusPlugin.ts
│   │   │   │       │   └── index.ts
│   │   │   │       ├── index.ts
│   │   │   │       ├── requireContextPlugin/
│   │   │   │       │   ├── __fixtures__/
│   │   │   │       │   │   └── preview.require.context.ts
│   │   │   │       │   ├── __tests__/
│   │   │   │       │   │   └── scripts.spec.ts
│   │   │   │       │   ├── index.ts
│   │   │   │       │   ├── requireContextPlugin.ts
│   │   │   │       │   └── scripts.ts
│   │   │   │       ├── resolveHelpers.spec.ts
│   │   │   │       ├── resolveHelpers.ts
│   │   │   │       ├── resolvePlugin/
│   │   │   │       │   ├── __tests__/
│   │   │   │       │   │   ├── fixtures/
│   │   │   │       │   │   │   ├── deps-alias/
│   │   │   │       │   │   │   │   ├── build.js
│   │   │   │       │   │   │   │   ├── entry.ts
│   │   │   │       │   │   │   │   ├── foo-2.ts
│   │   │   │       │   │   │   │   ├── foo.ts
│   │   │   │       │   │   │   │   └── index.js
│   │   │   │       │   │   │   └── protocols/
│   │   │   │       │   │   │       └── entry.ts
│   │   │   │       │   │   └── resolvePlugin.spec.ts
│   │   │   │       │   ├── alias/
│   │   │   │       │   │   └── setupAliasResolver.ts
│   │   │   │       │   ├── index.ts
│   │   │   │       │   ├── protocol/
│   │   │   │       │   │   └── setupProtocolResolver.ts
│   │   │   │       │   └── resolvePlugin.ts
│   │   │   │       ├── shared/
│   │   │   │       │   └── swc.ts
│   │   │   │       ├── transformPlugin/
│   │   │   │       │   ├── __tests__/
│   │   │   │       │   │   ├── fixtures/
│   │   │   │       │   │   │   ├── entry.ts
│   │   │   │       │   │   │   ├── initialize.ts
│   │   │   │       │   │   │   └── prelude/
│   │   │   │       │   │   │       ├── build.js
│   │   │   │       │   │   │       ├── index.js
│   │   │   │       │   │   │       └── initialize.js
│   │   │   │       │   │   └── transformPlugin.spec.ts
│   │   │   │       │   ├── helpers/
│   │   │   │       │   │   └── preludeScript.ts
│   │   │   │       │   ├── index.ts
│   │   │   │       │   ├── steps/
│   │   │   │       │   │   ├── createCacheSteps.ts
│   │   │   │       │   │   ├── createFlowStripStep.ts
│   │   │   │       │   │   ├── createFullyTransformStep.ts
│   │   │   │       │   │   ├── createTransformCodegenStep.ts
│   │   │   │       │   │   └── createTransformToHermesSyntaxStep.ts
│   │   │   │       │   └── transformPlugin.ts
│   │   │   │       └── types.ts
│   │   │   ├── cache/
│   │   │   │   ├── Cache.ts
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── Cache.spec.ts
│   │   │   │   └── index.ts
│   │   │   ├── constants/
│   │   │   │   └── index.ts
│   │   │   ├── experimental/
│   │   │   │   ├── index.ts
│   │   │   │   ├── operations/
│   │   │   │   │   └── serve.ts
│   │   │   │   └── server/
│   │   │   │       ├── DevServer.ts
│   │   │   │       ├── constants.ts
│   │   │   │       ├── debugger/
│   │   │   │       │   ├── DebuggerEventHandler.ts
│   │   │   │       │   └── types.ts
│   │   │   │       ├── helpers/
│   │   │   │       │   ├── createBundlerForDevServer.ts
│   │   │   │       │   └── mergeBundles.ts
│   │   │   │       ├── index.ts
│   │   │   │       ├── middlewares/
│   │   │   │       │   ├── createLiveReloadMiddleware.ts
│   │   │   │       │   └── index.ts
│   │   │   │       ├── plugins/
│   │   │   │       │   ├── index.ts
│   │   │   │       │   ├── indexPagePlugin.ts
│   │   │   │       │   ├── reply.ts
│   │   │   │       │   ├── serveBundlePlugin.ts
│   │   │   │       │   ├── statusPlugin.ts
│   │   │   │       │   └── symbolicatePlugin/
│   │   │   │       │       ├── index.ts
│   │   │   │       │       ├── parseStackFrame.ts
│   │   │   │       │       ├── symbolicate.ts
│   │   │   │       │       └── symbolicatePlugin.ts
│   │   │   │       ├── types.ts
│   │   │   │       └── wss/
│   │   │   │           ├── WebSocketServerDelegate.ts
│   │   │   │           ├── WebSocketServerRouter.ts
│   │   │   │           └── index.ts
│   │   │   ├── index.ts
│   │   │   ├── lib.d.ts
│   │   │   ├── logger/
│   │   │   │   ├── Logger.ts
│   │   │   │   ├── clientLogger.ts
│   │   │   │   └── index.ts
│   │   │   ├── metro/
│   │   │   │   ├── assetRegistry.ts
│   │   │   │   ├── build.ts
│   │   │   │   ├── enhancedResolver.ts
│   │   │   │   ├── getMetroConfig.ts
│   │   │   │   ├── getMonorepoRoot.spec.ts
│   │   │   │   ├── getMonorepoRoot.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── pnpapi.ts
│   │   │   ├── operations/
│   │   │   │   ├── OpenDebuggerKeyboardHandler.ts
│   │   │   │   ├── attachKeyHandlers.ts
│   │   │   │   ├── build.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── keyReporter.ts
│   │   │   │   └── serve.ts
│   │   │   ├── performance/
│   │   │   │   ├── Performance.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── printSummary.ts
│   │   │   ├── plugins/
│   │   │   │   ├── index.ts
│   │   │   │   └── statusPlugin.ts
│   │   │   ├── shared/
│   │   │   │   └── PersistentStorage.ts
│   │   │   ├── testing/
│   │   │   │   ├── buildWithEsbuild.ts
│   │   │   │   ├── evaluate.ts
│   │   │   │   ├── fixtures/
│   │   │   │   │   └── build-with-config.js
│   │   │   │   ├── index.ts
│   │   │   │   ├── initializeFixture.ts
│   │   │   │   └── tempDir.ts
│   │   │   ├── transformer/
│   │   │   │   ├── AsyncTransformPipeline.ts
│   │   │   │   ├── TransformPipeline.ts
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── AsyncTransformPipeline.spec.ts
│   │   │   │   │   └── fixtures/
│   │   │   │   │       └── index.ts
│   │   │   │   └── index.ts
│   │   │   ├── types/
│   │   │   │   ├── BundlerConfig.ts
│   │   │   │   ├── Id.ts
│   │   │   │   ├── Plugin.ts
│   │   │   │   └── index.ts
│   │   │   ├── utils/
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── esbuildUtils.spec.ts
│   │   │   │   │   ├── getDefaultOutfileName.spec.ts
│   │   │   │   │   ├── getId.spec.ts
│   │   │   │   │   ├── md5.spec.ts
│   │   │   │   │   ├── replaceModulePath.spec.ts
│   │   │   │   │   └── replacePlaceholder.spec.ts
│   │   │   │   ├── buildResult.ts
│   │   │   │   ├── cleanupOutputDirectory.ts
│   │   │   │   ├── defineStepName.ts
│   │   │   │   ├── esbuildUtils.ts
│   │   │   │   ├── getBundleName.ts
│   │   │   │   ├── getBundleOutputs.ts
│   │   │   │   ├── getDefaultOutfileName.ts
│   │   │   │   ├── getDefaultReactNativePath.ts
│   │   │   │   ├── getId.ts
│   │   │   │   ├── getSourcemapName.ts
│   │   │   │   ├── isDebugMode.ts
│   │   │   │   ├── md5.ts
│   │   │   │   ├── printErrors.ts
│   │   │   │   ├── printLogo.ts
│   │   │   │   ├── printServerUrl.ts
│   │   │   │   ├── printSummary.ts
│   │   │   │   ├── progressBar.ts
│   │   │   │   ├── promise.ts
│   │   │   │   ├── replaceModulePath.ts
│   │   │   │   ├── replacePlaceholders.ts
│   │   │   │   ├── stripExtension.ts
│   │   │   │   └── writeBundle.ts
│   │   │   └── vendors/
│   │   │       ├── index.ts
│   │   │       ├── metro/
│   │   │       │   └── src/
│   │   │       │       ├── Assets.js
│   │   │       │       ├── Bundler/
│   │   │       │       │   └── util.js
│   │   │       │       ├── Bundler.js
│   │   │       │       ├── DeltaBundler/
│   │   │       │       │   ├── DeltaCalculator.js
│   │   │       │       │   ├── Serializers/
│   │   │       │       │   │   ├── baseBytecodeBundle.js
│   │   │       │       │   │   ├── baseJSBundle.js
│   │   │       │       │   │   ├── getAllFiles.js
│   │   │       │       │   │   ├── getAssets.js
│   │   │       │       │   │   ├── getExplodedSourceMap.js
│   │   │       │       │   │   ├── getRamBundleInfo.js
│   │   │       │       │   │   ├── helpers/
│   │   │       │       │   │   │   ├── bytecode.js
│   │   │       │       │   │   │   ├── getInlineSourceMappingURL.js
│   │   │       │       │   │   │   ├── getSourceMapInfo.js
│   │   │       │       │   │   │   ├── getTransitiveDependencies.js
│   │   │       │       │   │   │   ├── js.js
│   │   │       │       │   │   │   ├── processBytecodeModules.js
│   │   │       │       │   │   │   └── processModules.js
│   │   │       │       │   │   ├── hmrJSBundle.js
│   │   │       │       │   │   ├── sourceMapGenerator.js
│   │   │       │       │   │   ├── sourceMapObject.js
│   │   │       │       │   │   └── sourceMapString.js
│   │   │       │       │   ├── Transformer.js
│   │   │       │       │   ├── Worker.flow.js
│   │   │       │       │   ├── Worker.js
│   │   │       │       │   ├── WorkerFarm.js
│   │   │       │       │   ├── getTransformCacheKey.js
│   │   │       │       │   ├── graphOperations.js
│   │   │       │       │   ├── mergeDeltas.js
│   │   │       │       │   └── types.flow.js
│   │   │       │       ├── DeltaBundler.js
│   │   │       │       ├── HmrServer.js
│   │   │       │       ├── IncrementalBundler/
│   │   │       │       │   ├── GraphNotFoundError.js
│   │   │       │       │   ├── ResourceNotFoundError.js
│   │   │       │       │   └── RevisionNotFoundError.js
│   │   │       │       ├── IncrementalBundler.js
│   │   │       │       ├── ModuleGraph/
│   │   │       │       │   ├── module.js
│   │   │       │       │   ├── node-haste/
│   │   │       │       │   │   ├── HasteFS.js
│   │   │       │       │   │   ├── Module.js
│   │   │       │       │   │   ├── ModuleCache.js
│   │   │       │       │   │   ├── Package.js
│   │   │       │       │   │   ├── node-haste.flow.js
│   │   │       │       │   │   └── node-haste.js
│   │   │       │       │   ├── output/
│   │   │       │       │   │   ├── indexed-ram-bundle.js
│   │   │       │       │   │   ├── multiple-files-ram-bundle.js
│   │   │       │       │   │   ├── plain-bundle.js
│   │   │       │       │   │   ├── reverse-dependency-map-references.js
│   │   │       │       │   │   └── util.js
│   │   │       │       │   ├── silent-console.js
│   │   │       │       │   ├── types.flow.js
│   │   │       │       │   └── worker/
│   │   │       │       │       ├── JsFileWrapping.js
│   │   │       │       │       ├── Platforms.js
│   │   │       │       │       ├── collectDependencies.js
│   │   │       │       │       ├── generate.js
│   │   │       │       │       ├── generateImportNames.js
│   │   │       │       │       └── mergeSourceMaps.js
│   │   │       │       ├── Server/
│   │   │       │       │   ├── MultipartResponse.js
│   │   │       │       │   └── symbolicate.js
│   │   │       │       ├── Server.js
│   │   │       │       ├── cli-utils.js
│   │   │       │       ├── cli.js
│   │   │       │       ├── commands/
│   │   │       │       │   ├── build.js
│   │   │       │       │   ├── dependencies.js
│   │   │       │       │   └── serve.js
│   │   │       │       ├── index.d.ts
│   │   │       │       ├── index.flow.js
│   │   │       │       ├── index.js
│   │   │       │       ├── isPnP.js
│   │   │       │       ├── lib/
│   │   │       │       │   ├── BatchProcessor.js
│   │   │       │       │   ├── CountingSet.js
│   │   │       │       │   ├── JsonReporter.js
│   │   │       │       │   ├── RamBundleParser.js
│   │   │       │       │   ├── ReportableEvent.d.ts
│   │   │       │       │   ├── TerminalReporter.d.ts
│   │   │       │       │   ├── TerminalReporter.js
│   │   │       │       │   ├── bundleToBytecode.js
│   │   │       │       │   ├── bundleToString.js
│   │   │       │       │   ├── contextModule.js
│   │   │       │       │   ├── contextModuleTemplates.js
│   │   │       │       │   ├── countLines.js
│   │   │       │       │   ├── createModuleIdFactory.js
│   │   │       │       │   ├── createWebsocketServer.js
│   │   │       │       │   ├── debounceAsyncQueue.js
│   │   │       │       │   ├── formatBundlingError.js
│   │   │       │       │   ├── getAppendScripts.js
│   │   │       │       │   ├── getGraphId.js
│   │   │       │       │   ├── getMaxWorkers.js
│   │   │       │       │   ├── getPreludeCode.js
│   │   │       │       │   ├── getPrependedScripts.js
│   │   │       │       │   ├── logToConsole.js
│   │   │       │       │   ├── parseCustomResolverOptions.js
│   │   │       │       │   ├── parseCustomTransformOptions.js
│   │   │       │       │   ├── parseOptionsFromUrl.js
│   │   │       │       │   ├── relativizeSourceMap.js
│   │   │       │       │   ├── reporting.js
│   │   │       │       │   ├── splitBundleOptions.js
│   │   │       │       │   └── transformHelpers.js
│   │   │       │       ├── node-haste/
│   │   │       │       │   ├── DependencyGraph/
│   │   │       │       │   │   ├── ModuleResolution.js
│   │   │       │       │   │   └── createHasteMap.js
│   │   │       │       │   ├── DependencyGraph.js
│   │   │       │       │   ├── Module.js
│   │   │       │       │   ├── ModuleCache.js
│   │   │       │       │   ├── Package.js
│   │   │       │       │   └── lib/
│   │   │       │       │       ├── AssetPaths.js
│   │   │       │       │       └── parsePlatformFilePath.js
│   │   │       │       └── shared/
│   │   │       │           ├── output/
│   │   │       │           │   ├── RamBundle/
│   │   │       │           │   │   ├── as-assets.js
│   │   │       │           │   │   ├── as-indexed-file.js
│   │   │       │           │   │   ├── buildSourcemapWithMetadata.js
│   │   │       │           │   │   ├── magic-number.js
│   │   │       │           │   │   ├── util.js
│   │   │       │           │   │   └── write-sourcemap.js
│   │   │       │           │   ├── RamBundle.js
│   │   │       │           │   ├── bundle.flow.js
│   │   │       │           │   ├── bundle.js
│   │   │       │           │   ├── meta.js
│   │   │       │           │   ├── unbundle.js
│   │   │       │           │   └── writeFile.js
│   │   │       │           └── types.flow.js
│   │   │       ├── metro-config/
│   │   │       │   └── src/
│   │   │       │       ├── configTypes.flow.js
│   │   │       │       ├── defaults/
│   │   │       │       │   ├── defaults.js
│   │   │       │       │   ├── exclusionList.d.ts
│   │   │       │       │   ├── exclusionList.js
│   │   │       │       │   ├── index.d.ts
│   │   │       │       │   ├── index.js
│   │   │       │       │   └── validConfig.js
│   │   │       │       ├── index.js
│   │   │       │       ├── loadConfig.d.ts
│   │   │       │       └── loadConfig.js
│   │   │       ├── metro-core/
│   │   │       │   └── src/
│   │   │       │       ├── Logger.js
│   │   │       │       ├── Terminal.d.ts
│   │   │       │       ├── Terminal.js
│   │   │       │       ├── canonicalize.js
│   │   │       │       ├── errors/
│   │   │       │       │   ├── AmbiguousModuleResolutionError.js
│   │   │       │       │   └── PackageResolutionError.js
│   │   │       │       ├── errors.js
│   │   │       │       └── index.js
│   │   │       ├── metro-inspector-proxy/
│   │   │       │   └── src/
│   │   │       │       ├── Device.js
│   │   │       │       ├── InspectorProxy.d.ts
│   │   │       │       ├── InspectorProxy.js
│   │   │       │       ├── cli.js
│   │   │       │       ├── index.js
│   │   │       │       └── types.js
│   │   │       └── metro-transform-worker/
│   │   │           └── src/
│   │   │               ├── index.js
│   │   │               └── utils/
│   │   │                   ├── assetTransformer.js
│   │   │                   └── getMinifier.js
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   ├── tsconfig.spec.json
│   │   ├── tsup.config.mts
│   │   ├── vendors.d.ts
│   │   ├── vitest.config.mts
│   │   └── vitest.global-setup.mts
│   ├── native/
│   │   ├── .scripts/
│   │   │   ├── generate-fingerprint.mts
│   │   │   └── sync-packages.mts
│   │   ├── @react-native-async-storage/
│   │   │   └── async-storage/
│   │   │       ├── index.d.ts
│   │   │       └── jest/
│   │   │           └── async-storage-mock.d.ts
│   │   ├── @react-native-community/
│   │   │   └── blur.d.ts
│   │   ├── @react-navigation/
│   │   │   ├── elements.d.ts
│   │   │   ├── native-stack.d.ts
│   │   │   └── native.d.ts
│   │   ├── @shopify/
│   │   │   └── flash-list.d.ts
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── babel.config.js
│   │   ├── fingerprint/
│   │   │   ├── index.d.ts
│   │   │   ├── index.js
│   │   │   └── index.mjs
│   │   ├── fingerprint.d.ts
│   │   ├── jest.config.js
│   │   ├── lottie-react-native.d.ts
│   │   ├── native-packages.json
│   │   ├── native.code-workspace
│   │   ├── package.json
│   │   ├── react-native-fast-image.d.ts
│   │   ├── react-native-gesture-handler/
│   │   │   ├── index.d.ts
│   │   │   └── jestSetup.d.ts
│   │   ├── react-native-pager-view.d.ts
│   │   ├── react-native-safe-area-context/
│   │   │   ├── index.d.ts
│   │   │   └── jest/
│   │   │       └── mock.d.ts
│   │   ├── react-native-screens.d.ts
│   │   ├── react-native-svg.d.ts
│   │   ├── react-native-video.d.ts
│   │   ├── react-native-webview.d.ts
│   │   ├── src/
│   │   │   ├── @react-native-async-storage/
│   │   │   │   └── async-storage/
│   │   │   │       ├── index.ts
│   │   │   │       └── jest/
│   │   │   │           └── async-storage-mock.ts
│   │   │   ├── @react-native-community/
│   │   │   │   └── blur.ts
│   │   │   ├── @react-navigation/
│   │   │   │   ├── elements.ts
│   │   │   │   ├── native-stack.ts
│   │   │   │   └── native.ts
│   │   │   ├── @shopify/
│   │   │   │   └── flash-list.ts
│   │   │   ├── lottie-react-native.ts
│   │   │   ├── react-native-fast-image.ts
│   │   │   ├── react-native-gesture-handler/
│   │   │   │   ├── index.ts
│   │   │   │   ├── jestSetup.js
│   │   │   │   └── jestSetup.ts
│   │   │   ├── react-native-pager-view.ts
│   │   │   ├── react-native-safe-area-context/
│   │   │   │   ├── index.ts
│   │   │   │   └── jest/
│   │   │   │       └── mock.ts
│   │   │   ├── react-native-screens.ts
│   │   │   ├── react-native-svg.ts
│   │   │   ├── react-native-video.ts
│   │   │   └── react-native-webview.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── naver-map/
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── GraniteNaverMap.podspec
│   │   ├── NOTICE
│   │   ├── android/
│   │   │   ├── build.gradle
│   │   │   ├── gradle.properties
│   │   │   └── src/
│   │   │       ├── builtinProvider/
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── navermap/
│   │   │       │                   └── builtinProvider/
│   │   │       │                       └── BuiltInGraniteNaverMapProvider.kt
│   │   │       ├── main/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── navermap/
│   │   │       │                   ├── GraniteNaverMapEvents.kt
│   │   │       │                   ├── GraniteNaverMapPackage.kt
│   │   │       │                   ├── GraniteNaverMapProvider.kt
│   │   │       │                   ├── GraniteNaverMapRegistry.kt
│   │   │       │                   └── GraniteNaverMapView.kt
│   │   │       ├── newarch/
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── navermap/
│   │   │       │                   └── GraniteNaverMapViewManager.kt
│   │   │       └── oldarch/
│   │   │           └── java/
│   │   │               └── run/
│   │   │                   └── granite/
│   │   │                       └── navermap/
│   │   │                           └── GraniteNaverMapViewManager.kt
│   │   ├── example/
│   │   │   ├── .detoxrc.js
│   │   │   ├── android/
│   │   │   │   ├── app/
│   │   │   │   │   ├── build.gradle
│   │   │   │   │   ├── debug.keystore
│   │   │   │   │   └── src/
│   │   │   │   │       ├── androidTest/
│   │   │   │   │       │   ├── AndroidManifest.xml
│   │   │   │   │       │   └── java/
│   │   │   │   │       │       └── run/
│   │   │   │   │       │           └── granite/
│   │   │   │   │       │               └── navermap/
│   │   │   │   │       │                   └── example/
│   │   │   │   │       │                       └── DetoxTest.java
│   │   │   │   │       └── main/
│   │   │   │   │           ├── AndroidManifest.xml
│   │   │   │   │           ├── java/
│   │   │   │   │           │   └── run/
│   │   │   │   │           │       └── granite/
│   │   │   │   │           │           └── navermap/
│   │   │   │   │           │               └── example/
│   │   │   │   │           │                   ├── MainActivity.kt
│   │   │   │   │           │                   └── MainApplication.kt
│   │   │   │   │           └── res/
│   │   │   │   │               ├── drawable/
│   │   │   │   │               │   ├── ic_launcher_foreground.xml
│   │   │   │   │               │   └── rn_edit_text_material.xml
│   │   │   │   │               └── values/
│   │   │   │   │                   ├── colors.xml
│   │   │   │   │                   ├── strings.xml
│   │   │   │   │                   └── styles.xml
│   │   │   │   ├── build.gradle
│   │   │   │   └── settings.gradle
│   │   │   ├── app.json
│   │   │   ├── babel.config.js
│   │   │   ├── e2e/
│   │   │   │   ├── GraniteNaverMap.e2e.ts
│   │   │   │   ├── jest.config.js
│   │   │   │   └── tsconfig.json
│   │   │   ├── index.js
│   │   │   ├── ios/
│   │   │   │   ├── .xcode.env
│   │   │   │   ├── GraniteNaverMapExample/
│   │   │   │   │   ├── AppDelegate.swift
│   │   │   │   │   ├── Images.xcassets/
│   │   │   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── PrivacyInfo.xcprivacy
│   │   │   │   ├── GraniteNaverMapExample.xcodeproj/
│   │   │   │   │   └── project.pbxproj
│   │   │   │   ├── GraniteNaverMapExample.xcworkspace/
│   │   │   │   │   └── contents.xcworkspacedata
│   │   │   │   └── Podfile
│   │   │   ├── jest.config.js
│   │   │   ├── metro.config.js
│   │   │   ├── package.json
│   │   │   ├── react-native.config.js
│   │   │   └── src/
│   │   │       └── App.tsx
│   │   ├── ios/
│   │   │   ├── GraniteNaverMap-Bridging-Header.h
│   │   │   ├── GraniteNaverMapProvider.swift
│   │   │   ├── GraniteNaverMapRegistry.swift
│   │   │   ├── GraniteNaverMapView.h
│   │   │   ├── GraniteNaverMapView.mm
│   │   │   ├── GraniteNaverMapViewImpl.swift
│   │   │   ├── GraniteNaverMapViewManager.m
│   │   │   ├── GraniteNaverMapViewManager.swift
│   │   │   ├── GraniteNaverMapViewWrapper.swift
│   │   │   └── builtinProvider/
│   │   │       ├── BuiltInNaverMapProvider.swift
│   │   │       ├── GraniteNaverMapMarkerData.swift
│   │   │       ├── NMFMarker+Extension.swift
│   │   │       ├── RCTConvert+NMFMapView.h
│   │   │       └── RCTConvert+NMFMapView.m
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── NaverMapView.tsx
│   │   │   ├── index.tsx
│   │   │   ├── internals/
│   │   │   │   ├── colorUtils.ts
│   │   │   │   ├── context.ts
│   │   │   │   ├── id.ts
│   │   │   │   ├── useMapOverlay.ts
│   │   │   │   └── usePreservedReference.ts
│   │   │   ├── overlays/
│   │   │   │   ├── ArrowheadPath.ts
│   │   │   │   ├── Circle.ts
│   │   │   │   ├── GroundOverlay.ts
│   │   │   │   ├── InfoWindow.ts
│   │   │   │   ├── Marker.ts
│   │   │   │   ├── Path.ts
│   │   │   │   ├── Polygon.ts
│   │   │   │   ├── Polyline.ts
│   │   │   │   └── index.ts
│   │   │   ├── specs/
│   │   │   │   └── GraniteNaverMapViewNativeComponent.ts
│   │   │   └── types/
│   │   │       ├── Coord.ts
│   │   │       └── index.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── plugin-core/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── config/
│   │   │   │   ├── defineConfig.ts
│   │   │   │   ├── graniteGlobals.ts
│   │   │   │   └── loadConfig.ts
│   │   │   ├── createContext.ts
│   │   │   ├── index.ts
│   │   │   ├── schema/
│   │   │   │   └── pluginConfig.ts
│   │   │   ├── types/
│   │   │   │   ├── BuildConfig.ts
│   │   │   │   ├── BuildResult.ts
│   │   │   │   ├── DevServerConfig.ts
│   │   │   │   ├── GranitePlugin.ts
│   │   │   │   ├── MetroConfig.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── vendors/
│   │   │   │       └── metro.ts
│   │   │   └── utils/
│   │   │       ├── buildResult.ts
│   │   │       ├── createPluginHooksDriver.ts
│   │   │       ├── flattenPlugins.spec.ts
│   │   │       ├── flattenPlugins.ts
│   │   │       ├── mergeBabel.spec.ts
│   │   │       ├── mergeBabel.ts
│   │   │       ├── mergeBuildConfigs.spec.ts
│   │   │       ├── mergeBuildConfigs.ts
│   │   │       ├── mergeConfig.spec.ts
│   │   │       ├── mergeConfig.ts
│   │   │       ├── mergeDevServer.spec.ts
│   │   │       ├── mergeDevServer.ts
│   │   │       ├── mergeEsbuild.spec.ts
│   │   │       ├── mergeEsbuild.ts
│   │   │       ├── mergeExtra.spec.ts
│   │   │       ├── mergeExtra.ts
│   │   │       ├── mergeMetro.spec.ts
│   │   │       ├── mergeMetro.ts
│   │   │       ├── mergeResolver.spec.ts
│   │   │       ├── mergeResolver.ts
│   │   │       ├── mergeSwc.spec.ts
│   │   │       ├── mergeSwc.ts
│   │   │       ├── mergeTransformer.spec.ts
│   │   │       ├── mergeTransformer.ts
│   │   │       ├── resolveConfig.spec.ts
│   │   │       ├── resolveConfig.ts
│   │   │       └── resolvePlugins.ts
│   │   ├── tsconfig.json
│   │   └── tsdown.config.ts
│   ├── plugin-env/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── envPlugin.ts
│   │   │   ├── generateEnvType.ts
│   │   │   ├── getRuntimeEnvScript.spec.ts
│   │   │   ├── getRuntimeEnvScript.ts
│   │   │   ├── index.ts
│   │   │   ├── plugins/
│   │   │   │   ├── babel.spec.ts
│   │   │   │   └── babel.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── vitest.config.mts
│   ├── plugin-hermes/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── compileHbc.ts
│   │   │   ├── composeSourcemap.ts
│   │   │   ├── hermesPlugin.ts
│   │   │   ├── index.ts
│   │   │   ├── resolveHermesBinaryPath.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── vitest.config.mts
│   ├── plugin-micro-frontend/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── runtime.d.ts
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── log.ts
│   │   │   ├── microFrontendPlugin.ts
│   │   │   ├── prelude.spec.ts
│   │   │   ├── prelude.ts
│   │   │   ├── remote.ts
│   │   │   ├── resolver.ts
│   │   │   ├── runtime/
│   │   │   │   ├── createContainer.ts
│   │   │   │   ├── exposeModule.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── registerShared.ts
│   │   │   │   ├── runtime.spec.ts
│   │   │   │   ├── types.ts
│   │   │   │   ├── utils.spec.ts
│   │   │   │   └── utils.ts
│   │   │   ├── types.ts
│   │   │   └── utils/
│   │   │       ├── intoShared.spec.ts
│   │   │       ├── intoShared.ts
│   │   │       └── resolveReactNativeBasePath.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── vitest.config.mts
│   ├── plugin-router/
│   │   ├── CHANGELOG.md
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── __fixtures__/
│   │   │   ├── has-named-export-route.tsx
│   │   │   ├── has-variable-export-route.tsx
│   │   │   └── no-export-route.tsx
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── checkExportRoute.spec.ts
│   │   │   ├── checkExportRoute.ts
│   │   │   ├── generateRouterFile.ts
│   │   │   ├── getComponentName.spec.ts
│   │   │   ├── getComponentName.ts
│   │   │   ├── getPageName.spec.ts
│   │   │   ├── getPageName.ts
│   │   │   ├── getPath.spec.ts
│   │   │   ├── getPath.ts
│   │   │   ├── index.ts
│   │   │   ├── routerPlugin.ts
│   │   │   ├── template.ts
│   │   │   ├── transformNewRouteFile.spec.ts
│   │   │   ├── transformNewRouteFile.ts
│   │   │   ├── types.ts
│   │   │   ├── utils/
│   │   │   │   ├── transformTemplate.spec.ts
│   │   │   │   └── transformTemplate.ts
│   │   │   └── watchRouter.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── vitest.config.mts
│   ├── plugin-rozenite/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── rozenitePlugin.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── vitest.config.mts
│   ├── plugin-sentry/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── extractSentryDebugId.spec.ts
│   │   │   ├── extractSentryDebugId.ts
│   │   │   ├── index.ts
│   │   │   ├── injectSentryDebugId.ts
│   │   │   ├── resolveHermesBundle.ts
│   │   │   ├── sentryClientActions.ts
│   │   │   ├── sentryPlugin.ts
│   │   │   ├── snippets.ts
│   │   │   ├── types.ts
│   │   │   └── uploadSourcemap.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── vitest.config.mts
│   ├── react-native/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── async-bridges.d.ts
│   │   ├── babel.config.js
│   │   ├── bin/
│   │   │   └── cli.js
│   │   ├── cli.d.ts
│   │   ├── config.d.ts
│   │   ├── constant-bridges.d.ts
│   │   ├── jest.d.ts
│   │   ├── package.json
│   │   ├── presets.d.ts
│   │   ├── react-native.code-workspace
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── App/
│   │   │   │   │   ├── index.android.tsx
│   │   │   │   │   ├── index.d.ts
│   │   │   │   │   └── index.ios.tsx
│   │   │   │   ├── AppRoot.tsx
│   │   │   │   ├── Granite.tsx
│   │   │   │   ├── HostAppRoot.tsx
│   │   │   │   ├── context/
│   │   │   │   │   ├── InitialPropsContext.tsx
│   │   │   │   │   ├── getSearchParamsFromUrl.spec.ts
│   │   │   │   │   ├── getSearchParamsFromUrl.ts
│   │   │   │   │   └── useInitialSearchParams.ts
│   │   │   │   └── index.ts
│   │   │   ├── async-bridges.ts
│   │   │   ├── cli.ts
│   │   │   ├── config.ts
│   │   │   ├── constant-bridges.ts
│   │   │   ├── constants.ts
│   │   │   ├── dev-entrypoint/
│   │   │   │   └── index.tsx
│   │   │   ├── event/
│   │   │   │   ├── abstract.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── useGraniteEvent.ts
│   │   │   ├── image/
│   │   │   │   ├── Image.tsx
│   │   │   │   ├── SvgImage.tsx
│   │   │   │   ├── index.ts
│   │   │   │   └── types.ts
│   │   │   ├── impression-area/
│   │   │   │   ├── ImpressionArea.tsx
│   │   │   │   └── index.ts
│   │   │   ├── index.ts
│   │   │   ├── initial-props/
│   │   │   │   ├── InitialProps.ts
│   │   │   │   └── index.ts
│   │   │   ├── intersection-observer/
│   │   │   │   ├── IOContext.ts
│   │   │   │   ├── IOFlatList.ts
│   │   │   │   ├── IOManager.ts
│   │   │   │   ├── IOScrollView.ts
│   │   │   │   ├── InView.tsx
│   │   │   │   ├── IntersectionObserver.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── withIO.tsx
│   │   │   ├── jest.ts
│   │   │   ├── keyboard/
│   │   │   │   ├── KeyboardAboveView.tsx
│   │   │   │   ├── getInitialKeyboardHeight.ts
│   │   │   │   ├── getKeyboardEventNames.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── useKeyboardAnimatedHeight.tsx
│   │   │   │   └── useKeyboardHeight.tsx
│   │   │   ├── lottie/
│   │   │   │   ├── Lottie.tsx
│   │   │   │   ├── ensureSafeLottie.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── useFetchResource.ts
│   │   │   ├── native-modules/
│   │   │   │   ├── index.ts
│   │   │   │   └── natives/
│   │   │   │       ├── closeView.ts
│   │   │   │       ├── getSchemeUri.ts
│   │   │   │       ├── index.ts
│   │   │   │       └── openURL.ts
│   │   │   ├── polyfills/
│   │   │   │   └── index.ts
│   │   │   ├── router/
│   │   │   │   ├── Router.tsx
│   │   │   │   ├── components/
│   │   │   │   │   ├── BackButton.tsx
│   │   │   │   │   ├── CanGoBackGuard.tsx
│   │   │   │   │   ├── ErrorBoundary.tsx
│   │   │   │   │   ├── StackNavigator.tsx
│   │   │   │   │   └── useRouterBackHandler.tsx
│   │   │   │   ├── constants.ts
│   │   │   │   ├── createRoute.test-d.ts
│   │   │   │   ├── createRoute.ts
│   │   │   │   ├── hooks/
│   │   │   │   │   ├── useInitialRouteName.tsx
│   │   │   │   │   ├── useIsInitialScreen.ts
│   │   │   │   │   └── useRouterControls.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── types/
│   │   │   │   │   ├── ErrorComponent.ts
│   │   │   │   │   ├── RequireContext.ts
│   │   │   │   │   ├── RouteScreen.ts
│   │   │   │   │   ├── Screen.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── screen-option.ts
│   │   │   │   └── utils/
│   │   │   │       ├── createParentRouteScreenMap.spec.ts
│   │   │   │       ├── createParentRouteScreenMap.ts
│   │   │   │       ├── defaultParserParams.spec.ts
│   │   │   │       ├── defaultParserParams.ts
│   │   │   │       ├── index.ts
│   │   │   │       ├── matchers.ts
│   │   │   │       ├── mergeParentLayoutScreen.spec.tsx
│   │   │   │       ├── mergeParentLayoutScreen.tsx
│   │   │   │       ├── path.spec.ts
│   │   │   │       ├── path.ts
│   │   │   │       ├── screen.tsx
│   │   │   │       ├── standardSchema.ts
│   │   │   │       └── validateRouteParams.ts
│   │   │   ├── scroll-view-inertial-background/
│   │   │   │   ├── ScrollViewInertialBackground.tsx
│   │   │   │   └── index.ts
│   │   │   ├── status-bar/
│   │   │   │   ├── StatusBar.android.tsx
│   │   │   │   ├── StatusBar.d.ts
│   │   │   │   ├── StatusBar.ios.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── utils.ts
│   │   │   ├── types/
│   │   │   │   └── global.ts
│   │   │   ├── use-back-event/
│   │   │   │   ├── index.ts
│   │   │   │   └── useBackEvent.tsx
│   │   │   ├── utils/
│   │   │   │   ├── getSchemePrefix.spec.ts
│   │   │   │   ├── getSchemePrefix.ts
│   │   │   │   ├── isNewArchEnabled.ts
│   │   │   │   ├── noop.ts
│   │   │   │   └── usePreservedCallback.ts
│   │   │   ├── video/
│   │   │   │   ├── Video.tsx
│   │   │   │   └── index.ts
│   │   │   └── visibility/
│   │   │       ├── VisibilityProvider.tsx
│   │   │       ├── index.ts
│   │   │       ├── onVisibilityChanged.ts
│   │   │       ├── react-navigation/
│   │   │       │   ├── index.ts
│   │   │       │   ├── useIsFocusedSafely.tsx
│   │   │       │   └── useNavigationSafely.tsx
│   │   │       ├── useIsAppForeground.tsx
│   │   │       ├── useVisibility.tsx
│   │   │       ├── useVisibilityChange.ts
│   │   │       ├── useVisibilityChanged.tsx
│   │   │       └── utils/
│   │   │           └── usePrevious.tsx
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   ├── tsup.config.ts
│   │   ├── types.d.ts
│   │   └── vitest.config.mts
│   ├── style-utils/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── babel.config.js
│   │   ├── jest.config.js
│   │   ├── jest.setup-matchers.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── box-spacing.spec.tsx
│   │   │   ├── box-spacing.tsx
│   │   │   ├── children.spec.tsx
│   │   │   ├── children.tsx
│   │   │   ├── flex.spec.tsx
│   │   │   ├── flex.tsx
│   │   │   ├── index.ts
│   │   │   ├── spacing.spec.tsx
│   │   │   ├── spacing.tsx
│   │   │   ├── stack.spec.tsx
│   │   │   └── stack.tsx
│   │   ├── style-utils.code-workspace
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── utils/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── ensureSafetyInvoke.ts
│   │   │   ├── getPackageRoot.ts
│   │   │   ├── index.ts
│   │   │   ├── localTempDirectory.ts
│   │   │   └── readZipContent.ts
│   │   ├── tsconfig.json
│   │   └── tsup.config.ts
│   ├── video/
│   │   ├── CHANGELOG.md
│   │   ├── GraniteVideo.podspec
│   │   ├── NOTICE
│   │   ├── android/
│   │   │   ├── README.md
│   │   │   ├── build.gradle
│   │   │   ├── gradle.properties
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── video/
│   │   │       │                   ├── GraniteVideoModule.kt
│   │   │       │                   ├── GraniteVideoPackage.kt
│   │   │       │                   ├── GraniteVideoView.kt
│   │   │       │                   ├── GraniteVideoViewManager.kt
│   │   │       │                   ├── event/
│   │   │       │                   │   ├── GraniteVideoEvents.kt
│   │   │       │                   │   ├── VideoEventDispatcher.kt
│   │   │       │                   │   └── VideoEventListenerAdapter.kt
│   │   │       │                   └── provider/
│   │   │       │                       └── GraniteVideoProvider.kt
│   │   │       ├── media3/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── video/
│   │   │       │                   └── provider/
│   │   │       │                       └── media3/
│   │   │       │                           ├── ExoPlayerProvider.kt
│   │   │       │                           ├── Media3ContentProvider.kt
│   │   │       │                           ├── Media3Initializer.kt
│   │   │       │                           ├── factory/
│   │   │       │                           │   ├── ExoPlayerFactory.kt
│   │   │       │                           │   ├── MediaSourceFactory.kt
│   │   │       │                           │   ├── TrackSelectorFactory.kt
│   │   │       │                           │   └── VideoSurfaceFactory.kt
│   │   │       │                           ├── listener/
│   │   │       │                           │   └── ExoPlayerEventListener.kt
│   │   │       │                           └── scheduler/
│   │   │       │                               └── ProgressScheduler.kt
│   │   │       └── test/
│   │   │           ├── java/
│   │   │           │   └── run/
│   │   │           │       └── granite/
│   │   │           │           └── video/
│   │   │           │               ├── GraniteVideoViewRobolectricTest.kt
│   │   │           │               ├── event/
│   │   │           │               │   └── VideoEventListenerAdapterTest.kt
│   │   │           │               ├── helpers/
│   │   │           │               │   ├── FakeGraniteVideoProvider.kt
│   │   │           │               │   └── TestProgressScheduler.kt
│   │   │           │               └── provider/
│   │   │           │                   ├── GraniteVideoRegistryTest.kt
│   │   │           │                   ├── ProviderContractTest.kt
│   │   │           │                   └── media3/
│   │   │           │                       └── listener/
│   │   │           │                           └── ExoPlayerEventListenerTest.kt
│   │   │           └── resources/
│   │   │               └── kotest.properties
│   │   ├── example/
│   │   │   ├── .bundle/
│   │   │   │   └── config
│   │   │   ├── .detoxrc.js
│   │   │   ├── .watchmanconfig
│   │   │   ├── Gemfile
│   │   │   ├── README.md
│   │   │   ├── android/
│   │   │   │   ├── app/
│   │   │   │   │   ├── build.gradle
│   │   │   │   │   ├── debug.keystore
│   │   │   │   │   ├── proguard-rules.pro
│   │   │   │   │   └── src/
│   │   │   │   │       ├── androidTest/
│   │   │   │   │       │   ├── AndroidManifest.xml
│   │   │   │   │       │   └── java/
│   │   │   │   │       │       └── run/
│   │   │   │   │       │           └── granite/
│   │   │   │   │       │               └── video/
│   │   │   │   │       │                   └── example/
│   │   │   │   │       │                       └── DetoxTest.java
│   │   │   │   │       └── main/
│   │   │   │   │           ├── AndroidManifest.xml
│   │   │   │   │           ├── java/
│   │   │   │   │           │   └── run/
│   │   │   │   │           │       └── granite/
│   │   │   │   │           │           └── video/
│   │   │   │   │           │               └── example/
│   │   │   │   │           │                   ├── MainActivity.kt
│   │   │   │   │           │                   └── MainApplication.kt
│   │   │   │   │           └── res/
│   │   │   │   │               ├── drawable/
│   │   │   │   │               │   └── rn_edit_text_material.xml
│   │   │   │   │               └── values/
│   │   │   │   │                   ├── strings.xml
│   │   │   │   │                   └── styles.xml
│   │   │   │   ├── build.gradle
│   │   │   │   ├── gradle/
│   │   │   │   │   └── wrapper/
│   │   │   │   │       ├── gradle-wrapper.jar
│   │   │   │   │       └── gradle-wrapper.properties
│   │   │   │   ├── gradle.properties
│   │   │   │   ├── gradlew
│   │   │   │   ├── gradlew.bat
│   │   │   │   └── settings.gradle
│   │   │   ├── app.json
│   │   │   ├── babel.config.js
│   │   │   ├── e2e/
│   │   │   │   ├── GraniteVideo.e2e.ts
│   │   │   │   ├── jest.config.js
│   │   │   │   └── tsconfig.json
│   │   │   ├── index.js
│   │   │   ├── ios/
│   │   │   │   ├── .xcode.env
│   │   │   │   ├── GraniteVideoExample/
│   │   │   │   │   ├── AppDelegate.swift
│   │   │   │   │   ├── Images.xcassets/
│   │   │   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── PrivacyInfo.xcprivacy
│   │   │   │   ├── GraniteVideoExample.xcodeproj/
│   │   │   │   │   ├── project.pbxproj
│   │   │   │   │   └── xcshareddata/
│   │   │   │   │       └── xcschemes/
│   │   │   │   │           └── GraniteVideoExample.xcscheme
│   │   │   │   ├── GraniteVideoExample.xcworkspace/
│   │   │   │   │   └── contents.xcworkspacedata
│   │   │   │   └── Podfile
│   │   │   ├── jest.config.js
│   │   │   ├── metro.config.js
│   │   │   ├── package.json
│   │   │   ├── react-native.config.js
│   │   │   └── src/
│   │   │       └── App.tsx
│   │   ├── ios/
│   │   │   ├── GraniteVideoComponentsProvider.h
│   │   │   ├── GraniteVideoProvider.swift
│   │   │   ├── GraniteVideoView.h
│   │   │   ├── GraniteVideoView.mm
│   │   │   └── Providers/
│   │   │       └── AVPlayerProvider.swift
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── GraniteVideo.tsx
│   │   │   ├── GraniteVideoNativeComponent.ts
│   │   │   ├── index.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   └── vitest/
│       ├── CHANGELOG.md
│       ├── LICENSE
│       ├── NOTICE
│       ├── README.md
│       ├── package.json
│       ├── src/
│       │   ├── assets.ts
│       │   ├── globals.d.ts
│       │   ├── index.ts
│       │   ├── jestBridge.spec.ts
│       │   ├── jestBridge.ts
│       │   ├── mirror.spec.ts
│       │   ├── mirror.ts
│       │   ├── reactNative.spec.ts
│       │   ├── reactNative.ts
│       │   ├── reactNativeRuntime.spec.ts
│       │   ├── reactNativeRuntime.ts
│       │   ├── runtimeBootstrap.ts
│       │   ├── setup.ts
│       │   ├── transpile.spec.ts
│       │   └── transpile.ts
│       ├── tsconfig.json
│       ├── tsdown.config.ts
│       └── vitest.config.mts
├── services/
│   ├── counter/
│   │   ├── README.md
│   │   ├── babel.config.js
│   │   ├── eslint.config.mjs
│   │   ├── granite.config.ts
│   │   ├── index.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _404.tsx
│   │   │   └── index.tsx
│   │   ├── react-native.config.js
│   │   ├── require.context.ts
│   │   ├── src/
│   │   │   ├── _app.tsx
│   │   │   ├── env.d.ts
│   │   │   ├── pages/
│   │   │   │   └── index.tsx
│   │   │   └── router.gen.ts
│   │   └── tsconfig.json
│   ├── pulumi-testbed/
│   │   ├── .gitignore
│   │   ├── Pulumi.dev.yaml
│   │   ├── Pulumi.yaml
│   │   ├── README.md
│   │   ├── index.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── shared/
│   │   ├── README.md
│   │   ├── VERSION
│   │   ├── granite.config.ts
│   │   ├── index.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── _app.tsx
│   │   │   ├── components/
│   │   │   │   └── ErrorPage.tsx
│   │   │   ├── pages/
│   │   │   │   └── MainPage.tsx
│   │   │   ├── types.ts
│   │   │   └── utils/
│   │   │       ├── getGlobal.ts
│   │   │       ├── isMetro.ts
│   │   │       ├── loadAppContent.ts
│   │   │       ├── resolveAppContent.ts
│   │   │       └── waitForCondition.ts
│   │   └── tsconfig.json
│   └── showcase/
│       ├── README.md
│       ├── babel.config.js
│       ├── eslint.config.mjs
│       ├── granite.config.ts
│       ├── index.ts
│       ├── package.json
│       ├── pages/
│       │   ├── _404.tsx
│       │   ├── about.tsx
│       │   ├── index.tsx
│       │   └── showcase/
│       │       ├── _layout.tsx
│       │       ├── image.tsx
│       │       ├── index.tsx
│       │       ├── initial-props.tsx
│       │       ├── lottie.tsx
│       │       ├── search-params.tsx
│       │       ├── status-bar.tsx
│       │       ├── use-back-event.tsx
│       │       ├── video.tsx
│       │       └── webview.tsx
│       ├── react-native.config.js
│       ├── require.context.ts
│       ├── src/
│       │   ├── _app.tsx
│       │   ├── components/
│       │   │   ├── Button.test.tsx
│       │   │   ├── Button.tsx
│       │   │   ├── ButtonTestScenario.tsx
│       │   │   ├── Checkbox.tsx
│       │   │   ├── ReactNativeCodegenTestScenario.tsx
│       │   │   ├── TextInput.tsx
│       │   │   ├── Top.tsx
│       │   │   └── react-native-codegen.test.tsx
│       │   ├── env.d.ts
│       │   ├── pages/
│       │   │   ├── about.tsx
│       │   │   ├── index.tsx
│       │   │   └── showcase/
│       │   │       ├── index.tsx
│       │   │       ├── lottie.tsx
│       │   │       ├── status-bar.tsx
│       │   │       ├── use-back-event.tsx
│       │   │       ├── video.tsx
│       │   │       └── webview.tsx
│       │   └── router.gen.ts
│       ├── tsconfig.json
│       └── vitest.config.ts
├── tools/
│   ├── README.md
│   ├── package.json
│   ├── src/
│   │   ├── commands/
│   │   │   ├── attw.ts
│   │   │   └── linked-pack.ts
│   │   ├── index.ts
│   │   ├── project.ts
│   │   └── utils.ts
│   ├── tsconfig.json
│   └── tsup.config.ts
├── tsconfig.json
└── yarn.config.mjs

================================================
FILE CONTENTS
================================================

================================================
FILE: .changeset/config.json
================================================
{
  "$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
  "changelog": "@changesets/cli/changelog",
  "commit": false,
  "fixed": [["babel-preset-granite", "create-granite-app", "@granite-js/*"]],
  "linked": [],
  "access": "public",
  "baseBranch": "main",
  "updateInternalDependencies": "patch",
  "ignore": ["@granite-app/*", "@granite-internal/*", "granite-docs"]
}


================================================
FILE: .cursorignore
================================================
# Add directories or file patterns to ignore during indexing (e.g. foo/ or *.csv)
**/devtools-frontend
**/.yarn
**/.pnp.*
**/dist
**/esm
yarn.lock


================================================
FILE: .editorconfig
================================================
root = true

[*]
end_of_line = lf
insert_final_newline = true

[*.{js,json,yml}]
charset = utf-8
indent_style = space
indent_size = 2


================================================
FILE: .gitattributes
================================================
/.yarn/**            linguist-vendored
/.yarn/releases/*    binary
/.yarn/plugins/**/*  binary
/.pnp.*              binary linguist-generated

packages/mpack/**/*.js linguist-generated
packages/devtools-frontend/**/*.js linguist-generated

================================================
FILE: .github/CODEOWNERS
================================================
* @raon0211 @gronxb @heecheolman @l2hyunwoo @intmain @leegeunhyeok @jingjing2222


================================================
FILE: .github/actions/setup-node-yarn/action.yml
================================================
name: Setup Node & Yarn
description: Setup Node & Yarn

runs:
  using: composite
  steps:
    - name: Setup Node
      uses: actions/setup-node@v4
      with:
        node-version-file: .nvmrc

    - name: Setup Yarn
      run: corepack enable
      shell: bash

    - name: Install dependencies
      run: yarn install --immutable
      shell: bash


================================================
FILE: .github/labeler.yml
================================================
'docs':
  - 'docs/**/*'
'@granite-js/deployment-manager':
  - 'infra/deployment-manager/**/*'
'@granite-js/forge-cli':
  - 'infra/forge-cli/**/*'
'@granite-js/pulumi-aws':
  - 'infra/pulumi-aws/**/*'
'babel-preset-granite':
  - 'packages/babel-preset-granite/**/*'
'@granite-js/cli':
  - 'packages/cli/**/*'
'create-granite-app':
  - 'packages/create-granite-app/**/*'
'@granite-js/devtools-frontend':
  - 'packages/devtools-frontend/**/*'
'@granite-js/image':
  - 'packages/image/**/*'
'@granite-js/jest':
  - 'packages/jest/**/*'
'@granite-js/mpack':
  - 'packages/mpack/**/*'
'@granite-js/native':
  - 'packages/native/**/*'
'@granite-js/plugin-core':
  - 'packages/plugin-core/**/*'
'@granite-js/plugin-env':
  - 'packages/plugin-env/**/*'
'@granite-js/plugin-hermes':
  - 'packages/plugin-hermes/**/*'
'@granite-js/plugin-router':
  - 'packages/plugin-router/**/*'
'@granite-js/plugin-sentry':
  - 'packages/plugin-sentry/**/*'
'@granite-js/react-native':
  - 'packages/react-native/**/*'
'@granite-js/style-utils':
  - 'packages/style-utils/**/*'
'services':
  - 'services/**/*'
'shared':
  - 'shared/**/*'
'@granite-internal/tools':
  - 'tools/**/*'
'@granite-js/utils':
  - 'packages/utils/**/*'
'dependencies':
  - 'yarn.lock'
'workflows':
  - '.github/workflows/**/*'


================================================
FILE: .github/workflows/docs-workflow.yaml
================================================
name: docs-workflow

on:
  push:
    branches: [main]
  workflow_dispatch:

permissions:
  contents: read
  pages: write
  id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
  group: 'pages'
  cancel-in-progress: false

jobs:
  # Build job
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - uses: ./.github/actions/setup-node-yarn
        name: Setup

      - name: Setup Pages
        uses: actions/configure-pages@v5

      - name: Build VitePress
        run: yarn docs:build
        working-directory: ./docs

      - name: Check build output
        run: |
          if [ ! -f "docs/.vitepress/dist/index.html" ]; then
            echo "Vitepress build failed - index.html file not found"
            exit 1
          fi

      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: ./docs/.vitepress/dist

  # Deployment job
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    needs: build
    runs-on: ubuntu-latest
    name: Deploy
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4


================================================
FILE: .github/workflows/integrations.yaml
================================================
name: Integrations

on:
  push:
    branches:
      - main
  pull_request:

jobs:
  setup:
    name: Setup
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Cache node modules and dist
        uses: actions/cache@v4
        id: yarn-cache
        with:
          path: |
            node_modules
            .yarn/cache
            .yarn/unplugged
            .nx
            packages/*/dist
            tools/dist
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-yarn-

      - uses: ./.github/actions/setup-node-yarn
        name: Setup

      - name: Build All
        run: yarn build:all
      - name: Upload build artifacts
        uses: actions/upload-artifact@v4
        with:
          name: build-artifacts
          path: |
            packages/*/dist
            tools/dist
          retention-days: 1

  lint:
    name: Lint
    needs: setup
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Cache node modules and dist
        uses: actions/cache@v4
        id: yarn-cache
        with:
          path: |
            node_modules
            .yarn/cache
            .yarn/unplugged
            .nx
            packages/*/dist
            tools/dist
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-yarn-

      - name: Download build artifacts
        uses: actions/download-artifact@v4
        with:
          name: build-artifacts
          path: .

      - uses: ./.github/actions/setup-node-yarn
        name: Setup
      - name: Check lint
        run: yarn lint

  type-check:
    name: Type check
    needs: setup
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Cache node modules and dist
        uses: actions/cache@v4
        id: yarn-cache
        with:
          path: |
            node_modules
            .yarn/cache
            .yarn/unplugged
            .nx
            packages/*/dist
            tools/dist
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-yarn-

      - name: Download build artifacts
        uses: actions/download-artifact@v4
        with:
          name: build-artifacts
          path: .

      - uses: ./.github/actions/setup-node-yarn
        name: Setup
      - name: Check types
        run: yarn typecheck:all

  test:
    name: Test
    needs: setup
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Cache node modules and dist
        uses: actions/cache@v4
        id: yarn-cache
        with:
          path: |
            node_modules
            .yarn/cache
            .yarn/unplugged
            .nx
            packages/*/dist
            tools/dist
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-yarn-

      - name: Download build artifacts
        uses: actions/download-artifact@v4
        with:
          name: build-artifacts
          path: .

      - uses: ./.github/actions/setup-node-yarn
        name: Setup
      - name: Run tests
        run: yarn test:all


================================================
FILE: .github/workflows/labeler.yml
================================================
name: Labeler

on:
  - pull_request_target

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  triage:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/labeler@v4
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .github/workflows/release.yaml
================================================
name: Release

on:
  push:
    branches:
      - main

env:
  BASE_BRANCH: 'main'

concurrency: ${{ github.workflow }}-${{ github.ref }}

jobs:
  release:
    name: Release
    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: write
      pull-requests: write

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Setup
        uses: ./.github/actions/setup-node-yarn

      - name: Run Build with Nx
        run: |
          yarn build:all

      - name: Create PR or Publish
        id: release
        uses: changesets/action@v1
        with:
          title: |
            chore: version packages ${{ env.BASE_BRANCH }}
          commit: 'chore: version packages'
          version: yarn changeset version
          publish: bash ./.scripts/publish-packages.sh
        env:
          BASE_BRANCH: ${{ env.BASE_BRANCH }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .gitignore
================================================
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions

# Swap the comments on the following lines if you don't wish to use zero-installs
# Documentation here: https://yarnpkg.com/features/zero-installs
# !.yarn/cache
.pnp.*
dist
esm
*.tgz
*.tsbuildinfo
.next
node_modules
.env
.envrc
.DS_Store

.idea/

#rn
.swc
.granite

# testing
test-meta
.vitest
coverage
__screenshots__
vitest.config.ts.timestamp*
tsconfig.vitest-temp.json

.nx/cache
.nx/workspace-data

# mpack
perf.json

# bundle
*.ait

# analyze
report-*.json
report-*.html

# rust
target
*.wasm

# React Native example builds
**/android/build/
**/example/android/app/.cxx
**/example/android/build/
**/example/android/app/build/
**/example/android/.gradle/
**/example/ios/build/
**/example/ios/Pods/
**/example/ios/*.xcworkspace/xcuserdata/
**/example/vendor/bundle/
.metro-health-check*

.classpath
.cxx
.gradle
.idea
.project
.settings
local.properties
**/local.properties
android.iml

.xcode.env.local


================================================
FILE: .nvmrc
================================================
v24.13.0


================================================
FILE: .prettierignore
================================================
.github
.yarn
**/coverage
**/dist
packages/devtools-frontend/src/front_end


================================================
FILE: .prettierrc
================================================
{
  "printWidth": 120,
  "singleQuote": true,
  "trailingComma": "es5"
}


================================================
FILE: .scripts/check-constraints-yarn-4.sh
================================================
if [[ "$OSTYPE" == "darwin"* ]]; then
  sed -i '' "/  - path: \.yarn\/plugins\/@yarnpkg\/plugin-workspace-since\.cjs/d" ".yarnrc.yml"
  sed -i '' "/    spec: \"https:\/\/raw\.githubusercontent\.com\/toss\/yarn-plugin-workspace-since\/main\/bundles\/%40yarnpkg\/plugin-workspace-since\.js\"/d" ".yarnrc.yml"
else
  sed -i "/  - path: \.yarn\/plugins\/@yarnpkg\/plugin-workspace-since\.cjs/d" ".yarnrc.yml"
  sed -i "/    spec: \"https:\/\/raw\.githubusercontent\.com\/toss\/yarn-plugin-workspace-since\/main\/bundles\/%40yarnpkg\/plugin-workspace-since\.js\"/d" ".yarnrc.yml"
fi

yarn --no-immutable --no-immutable-cache
yarn constraints


================================================
FILE: .scripts/check-exports.mts
================================================
import assert from 'node:assert';
import { readFile } from 'node:fs/promises';
import { relative, join } from 'node:path';
import { $ } from 'execa';

interface PackageInfo {
  name: string;
  location: string;
}

interface ExportEntry {
  import?: string;
  require?: string;
  types?: string;
  default?: string;
}

interface ExportEntryByType {
  import: {
    default?: string;
    types?: string;
  };
  require: {
    default?: string;
    types?: string;
  };
}

interface PackageJson {
  name: string;
  main?: string;
  module?: string;
  types?: string;
  bin?: string | Record<string, string>;
  exports?: Record<string, string | ExportEntry | ExportEntryByType>;
}

interface PackedFile {
  location: string;
}

const EXCLUDED_PACKAGE_PATTERNS = [/@granite-js\/docs/];

async function getPackageList() {
  const { stdout, stderr, exitCode } = await $`yarn workspaces list --json`;

  if (exitCode !== 0) {
    throw new Error([stdout, stderr].filter(Boolean).join('\n'));
  }

  return (
    normalizeStdout(stdout)
      .map((line) => JSON.parse(line.trim()))
      // avoid workspace root
      .filter(({ location }) => location !== '.') as PackageInfo[]
  );
}

async function readPackageJson(packagePath: string) {
  return JSON.parse(await readFile(join(packagePath, 'package.json'), 'utf-8')) as PackageJson;
}

async function getPackedFiles(packageName: string) {
  const { stdout, stderr, exitCode } = await $`yarn workspace ${packageName} pack --dry-run --json`;

  if (exitCode !== 0) {
    throw new Error([stdout, stderr].filter(Boolean).join('\n'));
  }

  return normalizeStdout(stdout)
    .map((line) => JSON.parse(line.trim()))
    .filter((data: PackedFile | { base: string }) => 'location' in data)
    .map(({ location }) => ({ location: relative(process.cwd(), location) })) as PackedFile[];
}

function normalizeStdout(stdout) {
  return stdout.split('\n').map((text) => text.trim());
}

function comparePath(path1: string, path2: string) {
  const base = process.cwd();
  return relative(base, path1) === relative(base, path2);
}

function shouldVerify(packageJson: PackageJson) {
  if (EXCLUDED_PACKAGE_PATTERNS.some((pattern) => packageJson.name.match(pattern))) {
    return false;
  }

  return (
    Boolean(Object.keys(packageJson.bin ?? {}).length) ||
    Boolean(Object.keys(packageJson.exports ?? {}).length) ||
    Boolean(packageJson.main) ||
    Boolean(packageJson.module) ||
    Boolean(packageJson.types)
  );
}
async function prebuildPackages(packageJsonList: PackageJson[]) {
  console.log(`Pre-building ${packageJsonList.length} packages (with its dependencies)...`);
  const includePackages = packageJsonList.map(({ name }) => name).join(',');

  const { stdout, stderr, exitCode } = await $(
    'yarn',
    ['nx', 'run-many', '--target=build', `--projects=${includePackages}`],
    {
      stdio: 'inherit',
    }
  );

  if (exitCode !== 0) {
    throw new Error([stdout, stderr].filter(Boolean).join('\n'));
  }
}

async function verifyPackageExports(packageJson: PackageJson) {
  console.log(`Verifying '${packageJson.name}'...`);
  const files = await getPackedFiles(packageJson.name);

  if (typeof packageJson.main !== 'undefined') {
    assert(
      files.some(({ location }) => comparePath(location, packageJson.main!)),
      `'main' field is not in the packed files: ${packageJson.main}`
    );
    console.log(`  ✅ pkg.main`);
  }

  if (typeof packageJson.module !== 'undefined') {
    assert(
      files.some(({ location }) => comparePath(location, packageJson.module!)),
      `'module' field is not in the packed files: ${packageJson.module}`
    );
    console.log(`  ✅ pkg.module`);
  }

  if (typeof packageJson.bin !== 'undefined') {
    if (typeof packageJson.bin === 'string') {
      assert(
        files.some(({ location }) => comparePath(location, packageJson.bin as string)),
        `bin field is not in the packed files: ${packageJson.bin}`
      );
      console.log(`  ✅ pkg.bin`);
    } else {
      for (const [key, value] of Object.entries(packageJson.bin)) {
        assert(
          files.some(({ location }) => comparePath(location, value)),
          `bin['${key}'] field is not in the packed files: ${value}`
        );
        console.log(`  ✅ pkg.bin['${key}']`);
      }
    }
  }

  if (typeof packageJson.exports !== 'undefined') {
    for (const [key, entry] of Object.entries(packageJson.exports)) {
      if (typeof entry === 'string') {
        assert(
          files.some(({ location }) => comparePath(location, entry)),
          `exports['${key}'] field is not in the packed files: ${entry}`
        );
        console.log(`  ✅ pkg.exports['${key}']`);
      } else if (typeof entry.import === 'object' && typeof entry.require === 'object') {
        for (const [type, value] of Object.entries((entry as ExportEntryByType).import)) {
          assert(
            files.some(({ location }) => comparePath(location, value)),
            `exports['${key}'].import.${type} field is not in the packed files: ${value}`
          );
          console.log(`  ✅ pkg.exports['${key}'].import.${type}`);
        }

        for (const [type, value] of Object.entries((entry as ExportEntryByType).require)) {
          assert(
            files.some(({ location }) => comparePath(location, value)),
            `exports['${key}'].require.${type} field is not in the packed files: ${value}`
          );
          console.log(`  ✅ pkg.exports['${key}'].require.${type}`);
        }
      } else if (['require', 'import', 'types', 'default'].some((key) => key in entry)) {
        for (const [type, value] of Object.entries(entry as ExportEntry)) {
          assert(
            files.some(({ location }) => comparePath(location, value)),
            `exports['${key}'].${type} field is not in the packed files: ${value}`
          );
          console.log(`  ✅ pkg.exports['${key}'].${type}`);
        }
      } else {
        throw new Error(`invalid exports field: ${JSON.stringify(entry)}`);
      }
    }
  }

  console.log(); // nl
}

async function runCheckExports() {
  const packages = await getPackageList();
  const packageJsonList = await Promise.all(packages.map(({ location }) => readPackageJson(location)));

  try {
    const targetPackageJsonList = packageJsonList.filter(shouldVerify);
    await prebuildPackages(targetPackageJsonList);

    for (const packageJson of targetPackageJsonList) {
      await verifyPackageExports(packageJson);
    }

    console.log('✅ No invalid package found');
    process.exit(0);
  } catch (error) {
    console.error('❗️ Invalid package found');
    console.error(error);
    process.exit(1);
  }
}

const MAIN_BRANCH = 'origin/main';

async function packageJsonChanged() {
  const { stdout } = await $`git diff ${MAIN_BRANCH} --name-only`;
  return stdout.includes('package.json');
}

async function main() {
  try {
    const changed = await packageJsonChanged();

    if (changed) {
      await runCheckExports();
    } else {
      console.log('✅ No package.json changes found');
      process.exit(0);
    }
  } catch (error) {
    console.error(error);
    process.exit(1);
  }
}

main();


================================================
FILE: .scripts/check-peer.sh
================================================
OUT=$(yarn | grep -E "(YN0002|YN0059|YN0060)")
if [ -z "$OUT" ]; then
  echo "No Peer Dependency Errors Found."
else
  echo "$OUT"
  echo "Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code"
  exit 1
fi


================================================
FILE: .scripts/check-platform-specific-files.js
================================================
/**
 * @description
 * 지정한 패키지 내에 플랫폼 식별 파일이 존재하는지 확인하는 스크립트입니다.
 *
 * ```bash
 * node .scripts/check-platform-specific-files.js packages/core
 * ```
 */

const assert = require('assert');
const fs = require('fs');
const path = require('path');

const EXCLUDED_FOLDERS = ['__tests__', '__fixtures__'];
const PLATFORM_SPECIFIED_PREFIX = ['native', 'android', 'ios'];
const EXCLUDED_FILES = ['e2e.ts', 'test.ts'];

const packageRoot = process.argv[2];
assert(packageRoot?.startsWith('packages/'), 'packages/* 형식의 패키지 경로를 입력해주세요');
const packageSource = path.join(packageRoot, 'src');
const packageJson = JSON.parse(fs.readFileSync(path.join(packageRoot, 'package.json'), 'utf-8'));

const platformSpecifiedFiles = [];

function isPlatformSpecified(filePath) {
  const extension = path.extname(filePath);

  return PLATFORM_SPECIFIED_PREFIX.some((prefix) => filePath.endsWith(`.${prefix}${extension}`));
}

function exploreDirectory(dir) {
  const filesAndFolders = fs.readdirSync(dir);

  filesAndFolders.forEach((fileOrFolder) => {
    const fullPath = path.join(dir, fileOrFolder);
    const stat = fs.statSync(fullPath);

    if (stat.isDirectory()) {
      if (!EXCLUDED_FOLDERS.includes(fileOrFolder)) {
        exploreDirectory(fullPath);
      }
    } else if (stat.isFile() && isPlatformSpecified(fileOrFolder)) {
      if (!EXCLUDED_FILES.includes(fileOrFolder)) {
        platformSpecifiedFiles.push(fullPath);
      }
    }
  });
}

function hasESM(exportsMap) {
  return JSON.stringify(exportsMap).includes('.mjs');
}

exploreDirectory(packageSource);

console.log('플랫폼 식별 파일 리스트');
console.log(platformSpecifiedFiles, '\n');

if (platformSpecifiedFiles.length && hasESM(packageJson.exports)) {
  console.log('❗️ 본 패키지는 exports map 구성에서 ESM 파일을 지정하면 안됩니다');
  console.log(packageJson.exports);
  process.exit(1);
}


================================================
FILE: .scripts/licenses.mjs
================================================
import {
  generateLicenses,
  targetWorkspaces,
  consistencyCheckLicenses,
  getWorkspaces,
  getLicensesMetaList,
} from './utils/licenses.mjs';

/**
 * 'check' | 'generate' | 'consistency-check'
 */
const command = process.argv[2];

/**
 * List of allowed licenses and their terms links
 */
const ALLOWED_LICENSE_MAP = {
  MIT: 'https://opensource.org/licenses/MIT',
  'Apache-2.0': 'https://www.apache.org/licenses/LICENSE-2.0',
  'Apache 2.0': 'https://www.apache.org/licenses/LICENSE-2.0',
  ISC: 'https://opensource.org/licenses/ISC',
  'BSD-3-Clause': 'https://opensource.org/licenses/BSD-3-Clause',
  '(MIT AND Apache-2.0)': 'https://opensource.org/licenses/MIT, https://www.apache.org/licenses/LICENSE-2.0',
};

/**
 * Packages to check and generate licenses for
 *
 * @type {Array<string | {name: string, license?: 'GPL-3.0' | 'Apache-2.0', extendsLicense: Array<{packageName: string, licenseName: string, repository: string | null}>}>}
 */
const FOCUSED_WORKSPACES = [
  'packages/*',
  'infra/*',
  // override
  {
    name: '@granite-js/mpack',
    extendsLicense: [
      {
        packageName: 'metro',
        licenseName: 'MIT',
        repository: 'https://github.com/facebook/metro',
      },
    ],
  },
];

async function runGenerate() {
  const workspaces = await getWorkspaces();
  const targetedWorkspaces = await targetWorkspaces(workspaces, FOCUSED_WORKSPACES);

  const generateResults = await Promise.allSettled(
    targetedWorkspaces.map(({ license, extendsLicense, location, name }) =>
      generateLicenses({
        workspaceName: name,
        location,
        license,
        extendsLicense,
        allowedLicenseMap: ALLOWED_LICENSE_MAP,
      })
    )
  );

  for (const [index, result] of generateResults.entries()) {
    const { name } = targetedWorkspaces[index];
    if (result.status === 'fulfilled') {
      console.log(`✅ ${name}: NOTICE file has been generated.`);
    } else {
      console.error(`❌ ${name}: Failed to generate NOTICE file.`);
      console.error(result.reason);
    }
  }
}

async function runCheck() {
  const workspaces = await getWorkspaces();
  const targetedWorkspaces = await targetWorkspaces(workspaces, FOCUSED_WORKSPACES);

  const checkWorkspaceLicenses = async ({ name }) => {
    const workspaceLicenses = await getLicensesMetaList({ workspaceName: name });
    const internalPackages = [
      // In repository
      /^@?granite-js/,
    ];

    const disallowedLicenses = workspaceLicenses.filter(
      (license) =>
        !ALLOWED_LICENSE_MAP[license.licenseName] &&
        !internalPackages.some((regexp) => regexp.test(license.packageName))
    );

    return {
      workspaceName: name,
      isValid: disallowedLicenses.length === 0,
      licenses: disallowedLicenses,
    };
  };

  const workspaceInvalidLicenseMetaList = [];
  for (const workspace of targetedWorkspaces) {
    workspaceInvalidLicenseMetaList.push(await checkWorkspaceLicenses(workspace));
  }

  for (const result of workspaceInvalidLicenseMetaList) {
    const { workspaceName, isValid, licenses } = result;
    if (!isValid) {
      console.error(`❌ ${workspaceName}: License check failed.`);
      console.error(licenses);
      process.exit(1);
    } else {
      console.log(`✅ ${workspaceName}: License check passed.`);
    }
  }
}

async function runConsistencyCheck() {
  const workspaces = await getWorkspaces();
  const targetedWorkspaces = await targetWorkspaces(workspaces, FOCUSED_WORKSPACES);
  const consistencyCheckResults = [];
  for (const { extendsLicense, location, name, license } of targetedWorkspaces) {
    const result = await consistencyCheckLicenses({
      workspaceName: name,
      location,
      license,
      extendsLicense,
      allowedLicenseMap: ALLOWED_LICENSE_MAP,
    });
    consistencyCheckResults.push(result);
  }

  for (let i = 0; i < consistencyCheckResults.length; i++) {
    const { name } = targetedWorkspaces[i];
    const isValid = consistencyCheckResults[i];
    if (isValid) {
      console.log(`✅ ${name}: NOTICE consistency check passed.`);
    } else {
      console.error(`❌ ${name}: NOTICE consistency check failed. Please run 'yarn generate-licenses' command.`);
      process.exit(1);
    }
  }
}

switch (command) {
  case 'check':
    await runCheck();
    break;
  case 'generate':
    await runGenerate();
    break;
  case 'consistency-check':
    await runConsistencyCheck();
    break;
  default:
    console.error('Invalid Command');
    process.exit(0);
}


================================================
FILE: .scripts/publish-dev.sh
================================================
#!/bin/bash
set -e

echo "🔄 yarn install"
yarn install --immutable

echo "📦 Build Packages"
yarn build:all

# Generate dev version
CURRENT_VERSION=$(jq -r '.version' packages/react-native/package.json)
BASE_VERSION=$(echo "$CURRENT_VERSION" | grep -oE '^[0-9]+\.[0-9]+\.[0-9]+')
TIMESTAMP=$(date +%y%m%d%H%M)
DEV_VERSION="${BASE_VERSION}-dev.${TIMESTAMP}"

# Update versions and publish
echo "📝 Updating versions to ${DEV_VERSION}..."
bash .scripts/version.sh "$DEV_VERSION"

echo "✅ Publishing..."
yarn workspaces foreach --no-private -At exec yarn npm publish --tag dev

# Restore original versions
echo "🔙 Restoring original versions..."
bash .scripts/version.sh "$CURRENT_VERSION"

echo "🚀 Dev Release Complete! (${DEV_VERSION})"


================================================
FILE: .scripts/publish-packages.sh
================================================
#!/usr/bin/env bash

failed=0

while IFS= read -r line; do
  location=$(echo "$line" | jq -r '.location')
  name=$(echo "$line" | jq -r '.name')

  echo "Publishing $name..."
  if ! (cd "$location" && yarn npm publish --provenance --access public); then
    echo "Failed to publish $name, continuing..."
    failed=1
  fi
done < <(yarn workspaces list --no-private --json)

exit $failed


================================================
FILE: .scripts/typecheck-rn-68.sh
================================================
set -eo pipefail;

ROOT_DIR="$(pwd)"

# 서비스 코드에서 사용하는 패키지를 대상으로 타입 체크를 진행합니다
TARGET_PACKAGES=(
  "@granite-js/react-native"
  "@granite-js/image"
  "@granite-js/style-utils"
)

INCLUDE_PACKAGES_PATTERN="{$(printf "%s," "${TARGET_PACKAGES[@]}" | sed 's/,$//')}"

(

cleanup() {
  echo "Git을 초기화합니다."
  git reset --hard
  git clean -fd
}

trap cleanup EXIT

echo "React Native 0.68 설치 시작..."

unset YARN_NPM_AUTH_TOKEN

yarn -v


jq '.dependencies["react-native"]="0.68.2" | .devDependencies["@types/react-native"]="0.68.2" | .devDependencies["@types/react"]="17.0.2"' package.json > package.tmp.json
mv package.tmp.json package.json

cd $ROOT_DIR
jq '.resolutions["react-native"]="0.68.2" | .resolutions["@types/react-native"]="0.68.2" | .resolutions["@types/react"]="17.0.2"' package.json > package.tmp.json
mv package.tmp.json package.json

yarn install --no-immutable --no-immutable-cache
yarn workspaces foreach -A --include "$INCLUDE_PACKAGES_PATTERN" add -D @types/react-native@0.68.2 @types/react@17.0.2
yarn workspaces foreach -A --include "$INCLUDE_PACKAGES_PATTERN" run build

echo "React Native 0.68 타입 검사 시작..."
yarn workspaces foreach -A --include "$INCLUDE_PACKAGES_PATTERN" run typecheck

)


================================================
FILE: .scripts/utils/license-templates.mjs
================================================
export const apache2 = function (projectName, year, thirdPartyLibraries) {
  return `NOTICE

This project makes use of third-party libraries that are licensed under their respective open-source licenses. Below is a list of these libraries, their licenses, and their links for further reference.

================================================================================
Project Name: ${projectName}
Copyright ${year} Viva Republica, Inc

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at:

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

================================================================================
Third-Party Libraries:

${thirdPartyLibraries}

================================================================================

For further details about each license, please refer to the provided links. If there are updates to these dependencies, this file should also be updated.`;
};

export const gpl3 = function (projectName, year, thirdPartyLibraries) {
  return `NOTICE

This project makes use of third-party libraries that are licensed under their respective open-source licenses. Below is a list of these libraries, their licenses, and their links for further reference.

================================================================================
Project Name: ${projectName}
Copyright ${year} Viva Republica, Inc

Licensed under the GPL, Version 3.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at:

    https://www.gnu.org/licenses/gpl-3.0.html

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

================================================================================
Third-Party Libraries:

${thirdPartyLibraries}

================================================================================

For further details about each license, please refer to the provided links. If there are updates to these dependencies, this file should also be updated.`;
};


================================================
FILE: .scripts/utils/licenses.mjs
================================================
import fs from 'fs/promises';
import path from 'path';
import * as licenseTemplates from './license-templates.mjs';
import { execa } from 'execa';

export function $(file, args, options) {
  return execa(file, args, {
    cwd: process.cwd(),
    ...options,
  });
}

/**
 * 워크스페이스 목록을 가져옵니다.
 * @returns {Array<{location: string, name: string}>} 워크스페이스 정보 배열
 */
export async function getWorkspaces() {
  const { stdout } = await $('yarn', ['workspaces', 'list', '--json']);
  return stdout.split('\n').map((line) => {
    return JSON.parse(line);
  });
}

/**
 * @param {Array<{workspace: string, location: string, extendsLicense: Array<{packageName: string, licenseName: string, repository: string | null}>}>} workspaces
 * @param {Array<string | {name: string, extendsLicense: Array<{packageName: string, licenseName: string, repository: string | null}>}>} focusedWorkspaces
 *
 * @returns {Array<{name: string, location: string, extendsLicense: Array<{packageName: string, licenseName: string, repository: string | null}>}>}
 */
export async function targetWorkspaces(workspaces, focusedWorkspaces) {
  const isFocusedWorkspace = (workspace, focused) => {
    if (typeof focused === 'string') {
      // packages/* 같은 패턴인 경우
      if (focused.includes('*')) {
        const pattern = focused.replace('*', '[^/]*');
        const regex = new RegExp(`^${pattern}$`);
        return regex.test(workspace.location);
      }
      return focused === workspace.name;
    }
    return focused.name === workspace.name;
  };

  const focusWorkspace = (workspace) => focusedWorkspaces.findLast((focused) => isFocusedWorkspace(workspace, focused));

  const targetedWorkspaces = workspaces
    .map((workspace) => {
      const focusedWorkspace = focusWorkspace(workspace);
      return focusedWorkspace
        ? {
            ...workspace,
            license: focusedWorkspace?.license,
            extendsLicense: typeof focusedWorkspace === 'string' ? [] : (focusedWorkspace?.extendsLicense ?? []),
          }
        : null;
    })
    .filter(Boolean);

  return targetedWorkspaces;
}

export function formatLicenses(packages, extendsLicense, allowedLicenseMap) {
  return [...packages, ...extendsLicense]
    .filter((pkg) => pkg.licenseName !== 'UNKNOWN' || Object.keys(allowedLicenseMap).includes(pkg.licenseName))
    .map((pkg, index) =>
      [
        `${index + 1}. **${pkg.packageName}**`,
        '\t',
        `   - License: ${pkg.licenseName}`,
        allowedLicenseMap[pkg.licenseName] && `   - License Text: ${allowedLicenseMap[pkg.licenseName]}`,
        pkg.repository && `   - Repository: ${pkg.repository}`,
        '\t',
      ]
        .filter(Boolean)
        .join('\n')
    )
    .join('\n');
}

async function transformNoticeTemplate({ workspaceName, license, extendsLicense, allowedLicenseMap }) {
  const { stdout } = await $('yarn', ['licenses', 'list', '--json', '--focus', workspaceName]);
  const year = new Date().getFullYear();

  const template = (() => {
    switch (license) {
      case 'GPL-3.0':
        return licenseTemplates.gpl3;

      case 'Apache-2.0':
      default:
        return licenseTemplates.apache2;
    }
  })();

  return template(workspaceName, year, formatLicenses(parseLicenses(stdout), extendsLicense, allowedLicenseMap));
}

export async function generateLicenses({ workspaceName, location, license, extendsLicense, allowedLicenseMap }) {
  const template = await transformNoticeTemplate({ workspaceName, license, extendsLicense, allowedLicenseMap });
  await fs.writeFile(path.join(location, 'NOTICE'), template);
}

export async function consistencyCheckLicenses({
  workspaceName,
  location,
  license,
  extendsLicense,
  allowedLicenseMap,
}) {
  const template = await transformNoticeTemplate({ workspaceName, license, extendsLicense, allowedLicenseMap });
  const currentTemplate = await fs.readFile(path.join(location, 'NOTICE'), 'utf-8');

  return template === currentTemplate;
}

export async function getLicensesMetaList({ workspaceName }) {
  const { stdout } = await $('yarn', ['licenses', 'list', '--json', '--focus', workspaceName]);

  const parsedLicenses = parseLicenses(stdout);
  return parsedLicenses;
}

/**
 * Parses the output of `yarn licenses list` and returns an array of packages with their licenses and repositories.
 *
 * @param {string} input - The output of `yarn licenses list`.
 * @returns {Array<{packageName: string, licenseName: string, repository: string | null}>} An array of packages with their licenses and repositories.
 */

export function parseLicenses(stdout) {
  // Split the stdout by newlines and filter out empty lines
  const lines = stdout.trim().split('\n').filter(Boolean);

  const results = [];

  // Each line should be a JSON object with a structure similar to:
  // {
  //   "value": "MIT",
  //   "children": {
  //     "packageName@version": {
  //       "value": { "locator": "packageName@npm:version", "descriptor": "packageName@..." },
  //       "children": {
  //         "url": "https://github.com/...",
  //         "vendorUrl": "https://...",
  //         "vendorName": "...",
  //       }
  //     },
  //     ...
  //   }
  // }

  for (const line of lines) {
    let parsed;
    try {
      parsed = JSON.parse(line);
    } catch {
      // If a line can't be parsed as JSON, skip it.
      continue;
    }

    const licenseName = parsed.value || 'UNKNOWN';
    const packages = parsed.children || {};

    for (const [fullName, pkgData] of Object.entries(packages)) {
      const value = pkgData.value || {};
      const children = pkgData.children || {};

      // Extract package name:
      // The locator might look like "es-toolkit@npm:1.26.1::__archiveUrl=http..."
      // or "@granite-js/cli@workspace:packages/cli"
      // We'll try multiple strategies:
      let packageName = null;
      if (value.descriptor) {
        // descriptor often looks like "es-toolkit@npm:^1.26.1" or "@granite-js/cli@workspace:*"
        // We'll split at '@npm:' or '@workspace:' to isolate the package name.
        const descriptor = value.descriptor;
        packageName = descriptor.split('@npm:')[0].split('@workspace:')[0];
        // In some cases, packageName might still contain version/range, handle that:
        // If descriptor is something like "es-toolkit@npm:^1.26.1", packageName might be "es-toolkit"
        // If descriptor is something like "@granite-js/cli@workspace:*", packageName might be "@granite-js/cli"
        if (packageName.includes('@')) {
          // For scoped packages, descriptor might be "@scope/name@workspace:..."
          // Split by '@' but keep scope if it starts with '@'
          const parts = descriptor.split('@');
          if (descriptor.startsWith('@') && parts.length > 2) {
            // E.g. "@granite-js/cli@workspace:*"
            // After splitting by '@' -> ['', 'granite-js/cli', 'workspace:*']
            // Reconstruct: '@granite-js/cli'
            packageName = '@' + parts[1];
          } else {
            // Non-scoped or other patterns
            packageName = parts[0];
          }
        } else {
          // If no '@' beyond the first, packageName might already be correct.
          // Just ensure we strip away possible version range after a `@npm:` or `@workspace:` key.
          // For safety, we can look at something like "es-toolkit@npm:^1.26.1"
          // Actually, we already split at '@npm:' above, so packageName should be "es-toolkit".
        }
        packageName = packageName.trim();
      } else if (value.locator) {
        // fallback if descriptor not available
        const locator = value.locator;
        packageName = locator.split('@npm:')[0].split('@workspace:')[0].trim();
        if (packageName.startsWith('@')) {
          // It's a scoped package, so it might need similar handling
          const parts = locator.split('@');
          if (locator.startsWith('@') && parts.length > 2) {
            packageName = '@' + parts[1];
          } else {
            packageName = parts[0];
          }
        }
      } else {
        // If neither descriptor nor locator is found (unlikely), fallback to fullName
        // fullName might look like "es-toolkit@npm:1.26.1..."
        // We'll strip off the version and source info
        packageName = fullName.split('@npm:')[0].split('@workspace:')[0].trim();
        if (!packageName) {
          packageName = fullName; // as a last resort
        }
      }

      // Extract repository URL:
      // The children object might have `url`, `vendorUrl`, or similar fields.
      // We'll try `url` first, then `vendorUrl`.
      let repository = children.url || children.vendorUrl || null;
      if (repository && repository.startsWith('git+')) {
        // normalize repository if needed
        // repository might be 'git+https://github.com/...'
        // It's usually fine as is, but if you want to remove 'git+' prefix:
        // repository = repository.replace(/^git\+/, '');
      }

      results.push({
        packageName,
        licenseName,
        repository,
      });
    }
  }

  return results;
}


================================================
FILE: .scripts/utils/parse-licenses.spec.ts
================================================
import { describe, it, expect } from 'vitest';
import { parseLicenses } from './licenses.mjs';

describe('parseLicenses', () => {
  //  yarn licenses list --json  --focus @granite-js/react-native
  const stdout = `
{"value":"MIT","children":{"@babel/core@npm:7.24.9::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40babel%2Fcore%2F-%2Fcore-7.24.9.tgz":{"value":{"locator":"@babel/core@npm:7.24.9::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40babel%2Fcore%2F-%2Fcore-7.24.9.tgz","descriptor":"@babel/core@npm:^7.24.9"},"children":{"url":"https://github.com/babel/babel.git","vendorName":"The Babel Team","vendorUrl":"https://babel.dev/docs/en/next/babel-core"}},"@babel/preset-env@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:7.24.8::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40babel%2Fpreset-env%2F-%2Fpreset-env-7.24.8.tgz":{"value":{"locator":"@babel/preset-env@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:7.24.8::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40babel%2Fpreset-env%2F-%2Fpreset-env-7.24.8.tgz","descriptor":"@babel/preset-env@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:^7.24.8"},"children":{"url":"https://github.com/babel/babel.git","vendorName":"The Babel Team","vendorUrl":"https://babel.dev/docs/en/next/babel-preset-env"}},"@babel/preset-typescript@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:7.24.7::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40babel%2Fpreset-typescript%2F-%2Fpreset-typescript-7.24.7.tgz":{"value":{"locator":"@babel/preset-typescript@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:7.24.7::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40babel%2Fpreset-typescript%2F-%2Fpreset-typescript-7.24.7.tgz","descriptor":"@babel/preset-typescript@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:^7.24.7"},"children":{"url":"https://github.com/babel/babel.git","vendorName":"The Babel Team","vendorUrl":"https://babel.dev/docs/en/next/babel-preset-typescript"}},"@types/babel__core@npm:7.20.5::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40types%2Fbabel__core%2F-%2Fbabel__core-7.20.5.tgz":{"value":{"locator":"@types/babel__core@npm:7.20.5::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40types%2Fbabel__core%2F-%2Fbabel__core-7.20.5.tgz","descriptor":"@types/babel__core@npm:^7"},"children":{"url":"https://github.com/DefinitelyTyped/DefinitelyTyped.git","vendorUrl":"https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/babel__core"}},"@types/babel__preset-env@npm:7.9.7::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40types%2Fbabel__preset-env%2F-%2Fbabel__preset-env-7.9.7.tgz":{"value":{"locator":"@types/babel__preset-env@npm:7.9.7::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40types%2Fbabel__preset-env%2F-%2Fbabel__preset-env-7.9.7.tgz","descriptor":"@types/babel__preset-env@npm:^7"},"children":{"url":"https://github.com/DefinitelyTyped/DefinitelyTyped.git","vendorUrl":"https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/babel__preset-env"}},"@types/debug@npm:4.1.12::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40types%2Fdebug%2F-%2Fdebug-4.1.12.tgz":{"value":{"locator":"@types/debug@npm:4.1.12::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40types%2Fdebug%2F-%2Fdebug-4.1.12.tgz","descriptor":"@types/debug@npm:^4"},"children":{"url":"https://github.com/DefinitelyTyped/DefinitelyTyped.git","vendorUrl":"https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/debug"}},"@types/lodash.debounce@npm:4.0.9::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40types%2Flodash.debounce%2F-%2Flodash.debounce-4.0.9.tgz":{"value":{"locator":"@types/lodash.debounce@npm:4.0.9::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40types%2Flodash.debounce%2F-%2Flodash.debounce-4.0.9.tgz","descriptor":"@types/lodash.debounce@npm:^4"},"children":{"url":"https://github.com/DefinitelyTyped/DefinitelyTyped.git","vendorUrl":"https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash.debounce"}},"@types/lodash.throttle@npm:4.1.9::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40types%2Flodash.throttle%2F-%2Flodash.throttle-4.1.9.tgz":{"value":{"locator":"@types/lodash.throttle@npm:4.1.9::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40types%2Flodash.throttle%2F-%2Flodash.throttle-4.1.9.tgz","descriptor":"@types/lodash.throttle@npm:^4"},"children":{"url":"https://github.com/DefinitelyTyped/DefinitelyTyped.git","vendorUrl":"https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash.throttle"}},"@types/node@npm:22.10.2::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40types%2Fnode%2F-%2Fnode-22.10.2.tgz":{"value":{"locator":"@types/node@npm:22.10.2::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40types%2Fnode%2F-%2Fnode-22.10.2.tgz","descriptor":"@types/node@npm:^22.10.2"},"children":{"url":"https://github.com/DefinitelyTyped/DefinitelyTyped.git","vendorUrl":"https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node"}},"@types/react@npm:18.3.3::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40types%2Freact%2F-%2Freact-18.3.3.tgz":{"value":{"locator":"@types/react@npm:18.3.3::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2F%40types%2Freact%2F-%2Freact-18.3.3.tgz","descriptor":"@types/react@npm:18.3.3"},"children":{"url":"https://github.com/DefinitelyTyped/DefinitelyTyped.git","vendorUrl":"https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react"}},"debug@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:4.3.7::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Fdebug%2F-%2Fdebug-4.3.7.tgz":{"value":{"locator":"debug@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:4.3.7::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Fdebug%2F-%2Fdebug-4.3.7.tgz","descriptor":"debug@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:^4.3.7"},"children":{"url":"git://github.com/debug-js/debug.git","vendorName":"Josh Junon","vendorUrl":"https://github.com/qix-"}},"es-toolkit@npm:1.26.1::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Fes-toolkit%2F-%2Fes-toolkit-1.26.1.tgz":{"value":{"locator":"es-toolkit@npm:1.26.1::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Fes-toolkit%2F-%2Fes-toolkit-1.26.1.tgz","descriptor":"es-toolkit@npm:^1.26.1"},"children":{"url":"https://github.com/toss/es-toolkit.git","vendorUrl":"https://es-toolkit.slash.page"}},"esbuild@npm:0.24.0::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Fesbuild%2F-%2Fesbuild-0.24.0.tgz":{"value":{"locator":"esbuild@npm:0.24.0::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Fesbuild%2F-%2Fesbuild-0.24.0.tgz","descriptor":"esbuild@npm:^0.24.0"},"children":{"url":"git+https://github.com/evanw/esbuild.git"}},"eslint@npm:9.7.0::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Feslint%2F-%2Feslint-9.7.0.tgz":{"value":{"locator":"eslint@npm:9.7.0::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Feslint%2F-%2Feslint-9.7.0.tgz","descriptor":"eslint@npm:^9.7.0"},"children":{"url":"git+https://github.com/eslint/eslint.git","vendorName":"Nicholas C. Zakas","vendorUrl":"https://eslint.org"}},"execa@npm:5.1.1::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Fexeca%2F-%2Fexeca-5.1.1.tgz":{"value":{"locator":"execa@npm:5.1.1::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Fexeca%2F-%2Fexeca-5.1.1.tgz","descriptor":"execa@npm:^5.0.0"},"children":{"url":"git+https://github.com/sindresorhus/execa.git","vendorName":"Sindre Sorhus","vendorUrl":"https://sindresorhus.com"}},"lodash.debounce@npm:4.0.8::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Flodash.debounce%2F-%2Flodash.debounce-4.0.8.tgz":{"value":{"locator":"lodash.debounce@npm:4.0.8::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Flodash.debounce%2F-%2Flodash.debounce-4.0.8.tgz","descriptor":"lodash.debounce@npm:^4.0.8"},"children":{"url":"git+https://github.com/lodash/lodash.git","vendorName":"John-David Dalton","vendorUrl":"https://lodash.com/"}},"lodash.throttle@npm:4.1.1::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Flodash.throttle%2F-%2Flodash.throttle-4.1.1.tgz":{"value":{"locator":"lodash.throttle@npm:4.1.1::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Flodash.throttle%2F-%2Flodash.throttle-4.1.1.tgz","descriptor":"lodash.throttle@npm:^4.1.1"},"children":{"url":"git+https://github.com/lodash/lodash.git","vendorName":"John-David Dalton","vendorUrl":"https://lodash.com/"}},"react@npm:18.2.0::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Freact%2F-%2Freact-18.2.0.tgz":{"value":{"locator":"react@npm:18.2.0::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Freact%2F-%2Freact-18.2.0.tgz","descriptor":"react@npm:18.2.0"},"children":{"url":"https://github.com/facebook/react.git","vendorUrl":"https://reactjs.org/"}},"react-native@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:0.72.6::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Freact-native%2F-%2Freact-native-0.72.6.tgz":{"value":{"locator":"react-native@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:0.72.6::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Freact-native%2F-%2Freact-native-0.72.6.tgz","descriptor":"react-native@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:0.72.6"},"children":{"url":"git+https://github.com/facebook/react-native.git"}},"react-native-url-polyfill@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:1.3.0::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Freact-native-url-polyfill%2F-%2Freact-native-url-polyfill-1.3.0.tgz":{"value":{"locator":"react-native-url-polyfill@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:1.3.0::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Freact-native-url-polyfill%2F-%2Freact-native-url-polyfill-1.3.0.tgz","descriptor":"react-native-url-polyfill@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:1.3.0"},"children":{"url":"https://github.com/charpeni/react-native-url-polyfill.git","vendorName":"Nicolas Charpentier","vendorUrl":"https://github.com/charpeni/react-native-url-polyfill"}},"vitest@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:2.1.8::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Fvitest%2F-%2Fvitest-2.1.8.tgz":{"value":{"locator":"vitest@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:2.1.8::__archiveUrl=http%3A%2F%2F%2Frepository%2Fnpm-group%2Fvitest%2F-%2Fvitest-2.1.8.tgz","descriptor":"vitest@virtual:0f7211e995349a0590b75c29c2c512fe56a29503f5041a13b6188c4f65ee99e777df672ba8273eeded2a981b34773eb1332be08189c926a974d5810e49a633cf#npm:^2.1.8"},"children":{"url":"git+https://github.com/vitest-dev/vitest.git","vendorName":"Anthony Fu","vendorUrl":"https://github.com/vitest-dev/vitest#readme"}}}}
{"value":"UNKNOWN","children":{"@@granite-js/react-native/cli@workspace:packages/cli":{"value":{"locator":"@@granite-js/react-native/cli@workspace:packages/cli","descriptor":"@@granite-js/react-native/cli@workspace:*"},"children":{}},"@@granite-js/react-native/image@workspace:packages/image":{"value":{"locator":"@@granite-js/react-native/image@workspace:packages/image","descriptor":"@@granite-js/react-native/image@workspace:*"},"children":{}},"@@granite-js/react-native/jest-next@workspace:packages/jest-next":{"value":{"locator":"@@granite-js/react-native/jest-next@workspace:packages/jest-next","descriptor":"@@granite-js/react-native/jest-next@workspace:*"},"children":{}},"@@granite-js/react-native/lottie@workspace:packages/lottie":{"value":{"locator":"@@granite-js/react-native/lottie@workspace:packages/lottie","descriptor":"@@granite-js/react-native/lottie@workspace:*"},"children":{}},"@@granite-js/react-native/mpack-next@workspace:packages/mpack-next":{"value":{"locator":"@@granite-js/react-native/mpack-next@workspace:packages/mpack-next","descriptor":"@@granite-js/react-native/mpack-next@workspace:*"},"children":{}},"@@granite-js/react-native/native@workspace:packages/native":{"value":{"locator":"@@granite-js/react-native/native@workspace:packages/native","descriptor":"@@granite-js/react-native/native@workspace:*"},"children":{}},"@@granite-js/react-native/style-utils@workspace:packages/style-utils":{"value":{"locator":"@@granite-js/react-native/style-utils@workspace:packages/style-utils","descriptor":"@@granite-js/react-native/style-utils@workspace:*"},"children":{}},"@@granite-js/react-native/tools@workspace:packages/tools":{"value":{"locator":"@@granite-js/react-native/tools@workspace:packages/tools","descriptor":"@@granite-js/react-native/tools@workspace:*"},"children":{}},"@granite-js/react-native@workspace:packages/@granite-js/react-native":{"value":{"locator":"@granite-js/react-native@workspace:packages/@granite-js/react-native","descriptor":"@granite-js/react-native@workspace:packages/@granite-js/react-native"},"children":{}}}}
{"value":"Apache-2.0","children":{"typescript@patch:typescript@npm%3A4.9.5%3A%3A__archiveUrl=http%253A%252F%252F%252Frepository%252Fnpm-group%252Ftypescript%252F-%252Ftypescript-4.9.5.tgz#optional!builtin<compat/typescript>::version=4.9.5&hash=289587":{"value":{"locator":"typescript@patch:typescript@npm%3A4.9.5%3A%3A__archiveUrl=http%253A%252F%252F%252Frepository%252Fnpm-group%252Ftypescript%252F-%252Ftypescript-4.9.5.tgz#optional!builtin<compat/typescript>::version=4.9.5&hash=289587","descriptor":"typescript@patch:typescript@npm%3A4.9.5#optional!builtin<compat/typescript>"},"children":{"url":"https://github.com/Microsoft/TypeScript.git","vendorName":"Microsoft Corp.","vendorUrl":"https://www.typescriptlang.org/"}}}}
`;

  it('should parse licenses', () => {
    const licenses = parseLicenses(stdout);
    console.log(licenses);
    expect(licenses).toEqual([
      {
        packageName: '@babel/core',
        licenseName: 'MIT',
        repository: 'https://github.com/babel/babel.git',
      },
      {
        licenseName: 'MIT',
        packageName: '@babel/preset-env',
        repository: 'https://github.com/babel/babel.git',
      },
      {
        licenseName: 'MIT',
        packageName: '@babel/preset-typescript',
        repository: 'https://github.com/babel/babel.git',
      },
      {
        packageName: '@types/babel__core',
        licenseName: 'MIT',
        repository: 'https://github.com/DefinitelyTyped/DefinitelyTyped.git',
      },
      {
        packageName: '@types/babel__preset-env',
        licenseName: 'MIT',
        repository: 'https://github.com/DefinitelyTyped/DefinitelyTyped.git',
      },
      {
        packageName: '@types/debug',
        licenseName: 'MIT',
        repository: 'https://github.com/DefinitelyTyped/DefinitelyTyped.git',
      },
      {
        packageName: '@types/lodash.debounce',
        licenseName: 'MIT',
        repository: 'https://github.com/DefinitelyTyped/DefinitelyTyped.git',
      },
      {
        packageName: '@types/lodash.throttle',
        licenseName: 'MIT',
        repository: 'https://github.com/DefinitelyTyped/DefinitelyTyped.git',
      },
      {
        packageName: '@types/node',
        licenseName: 'MIT',
        repository: 'https://github.com/DefinitelyTyped/DefinitelyTyped.git',
      },
      {
        packageName: '@types/react',
        licenseName: 'MIT',
        repository: 'https://github.com/DefinitelyTyped/DefinitelyTyped.git',
      },
      {
        licenseName: 'MIT',
        packageName: 'debug',
        repository: 'git://github.com/debug-js/debug.git',
      },
      {
        packageName: 'es-toolkit',
        licenseName: 'MIT',
        repository: 'https://github.com/toss/es-toolkit.git',
      },
      {
        packageName: 'esbuild',
        licenseName: 'MIT',
        repository: 'git+https://github.com/evanw/esbuild.git',
      },
      {
        packageName: 'eslint',
        licenseName: 'MIT',
        repository: 'git+https://github.com/eslint/eslint.git',
      },
      {
        packageName: 'execa',
        licenseName: 'MIT',
        repository: 'git+https://github.com/sindresorhus/execa.git',
      },
      {
        packageName: 'lodash.debounce',
        licenseName: 'MIT',
        repository: 'git+https://github.com/lodash/lodash.git',
      },
      {
        packageName: 'lodash.throttle',
        licenseName: 'MIT',
        repository: 'git+https://github.com/lodash/lodash.git',
      },
      {
        packageName: 'react',
        licenseName: 'MIT',
        repository: 'https://github.com/facebook/react.git',
      },
      {
        licenseName: 'MIT',
        packageName: 'react-native',
        repository: 'git+https://github.com/facebook/react-native.git',
      },
      {
        licenseName: 'MIT',
        packageName: 'react-native-url-polyfill',
        repository: 'https://github.com/charpeni/react-native-url-polyfill.git',
      },
      {
        licenseName: 'MIT',
        packageName: 'vitest',
        repository: 'git+https://github.com/vitest-dev/vitest.git',
      },
      {
        packageName: '@@granite-js/react-native/cli',
        licenseName: 'UNKNOWN',
        repository: null,
      },
      {
        packageName: '@@granite-js/react-native/image',
        licenseName: 'UNKNOWN',
        repository: null,
      },
      {
        packageName: '@@granite-js/react-native/jest-next',
        licenseName: 'UNKNOWN',
        repository: null,
      },
      {
        packageName: '@@granite-js/react-native/lottie',
        licenseName: 'UNKNOWN',
        repository: null,
      },
      {
        packageName: '@@granite-js/react-native/mpack-next',
        licenseName: 'UNKNOWN',
        repository: null,
      },
      {
        packageName: '@@granite-js/react-native/native',
        licenseName: 'UNKNOWN',
        repository: null,
      },
      {
        packageName: '@@granite-js/react-native/style-utils',
        licenseName: 'UNKNOWN',
        repository: null,
      },
      {
        packageName: '@@granite-js/react-native/tools',
        licenseName: 'UNKNOWN',
        repository: null,
      },
      {
        packageName: '@granite-js/react-native',
        licenseName: 'UNKNOWN',
        repository: null,
      },
      {
        packageName: 'typescript',
        licenseName: 'Apache-2.0',
        repository: 'https://github.com/Microsoft/TypeScript.git',
      },
    ]);
  });
});


================================================
FILE: .scripts/version.sh
================================================
#!/bin/bash

set -e

function get_dev_version() {
  local current_version=$(jq -r '.version' packages/react-native/package.json)
  local base_version=$(echo "$current_version" | grep -oE '^[0-9]+\.[0-9]+\.[0-9]+')
  local timestamp=$(date +%Y%m%d%H%M%S)
  echo "${base_version}-dev.${timestamp}"
}

if [ -z "$1" ]; then
  echo "No preset or version provided"
  exit 1
else
  if [ "$1" = "dev" ]; then
    version=$(get_dev_version)
    echo "Setting dev version: $version"
  else
    version=$1
    echo "Setting manual version: $version"
  fi
fi

yarn workspaces foreach --all --no-private exec \
  node -e "const p=require('./package.json');p.version='${version}';require('fs').writeFileSync('package.json',JSON.stringify(p,null,2)+'\n')"

================================================
FILE: .vscode/extensions.json
================================================
{
  "recommendations": ["arcanis.vscode-zipfs", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "Orta.vscode-jest"]
}


================================================
FILE: .vscode/settings.json
================================================
{
  "search.exclude": {
    "**/.yarn": true,
    "**/.nx": true,
    "**/.pnp.*": true,
    "**/devtools-frontend": true,
    "**/dist": true,
    "**/esm": true
  },
  "files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/node_modules/*/**": true,
    "**/.hg/store/**": true,
    "**/devtools-frontend/**": true,
    "**/dist/**": true,
    "**/esm/**": true,
    "**/.pnp.*": true
  },
  "eslint.nodePath": ".yarn/sdks",
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "eslint.useFlatConfig": true,
  "prettier.prettierPath": ".yarn/sdks/prettier/index.cjs",
  "typescript.tsdk": ".yarn/sdks/typescript/lib",
  "typescript.enablePromptUseWorkspaceTsdk": true,
  "jest.enable": false,
  "rust-analyzer.linkedProjects": ["Cargo.toml"],
  "git.ignoreLimitWarning": true
}


================================================
FILE: .yarn/plugins/@yarnpkg/plugin-catalogs.cjs
================================================
/* eslint-disable */
//prettier-ignore
module.exports = {
name: "@yarnpkg/plugin-catalogs",
factory: function (require) {
"use strict";var plugin=(()=>{var Lt=Object.create;var ye=Object.defineProperty;var It=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var kt=Object.getPrototypeOf,wt=Object.prototype.hasOwnProperty;var fe=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var ae=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Nt=(e,r)=>{for(var t in r)ye(e,t,{get:r[t],enumerable:!0})},Ve=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of Ht(r))!wt.call(e,n)&&n!==t&&ye(e,n,{get:()=>r[n],enumerable:!(o=It(r,n))||o.enumerable});return e};var Ee=(e,r,t)=>(t=e!=null?Lt(kt(e)):{},Ve(r||!e||!e.__esModule?ye(t,"default",{value:e,enumerable:!0}):t,e)),Dt=e=>Ve(ye({},"__esModule",{value:!0}),e);var de=ae((Wr,at)=>{"use strict";var z="\\\\/",ot=`[^${z}]`,te="\\.",Zt="\\+",zt="\\?",Se="\\/",Jt="(?=.)",nt="[^/]",Ne=`(?:${Se}|$)`,st=`(?:^|${Se})`,De=`${te}{1,2}${Ne}`,er=`(?!${te})`,tr=`(?!${st}${De})`,rr=`(?!${te}{0,1}${Ne})`,or=`(?!${De})`,nr=`[^.${Se}]`,sr=`${nt}*?`,ir="/",it={DOT_LITERAL:te,PLUS_LITERAL:Zt,QMARK_LITERAL:zt,SLASH_LITERAL:Se,ONE_CHAR:Jt,QMARK:nt,END_ANCHOR:Ne,DOTS_SLASH:De,NO_DOT:er,NO_DOTS:tr,NO_DOT_SLASH:rr,NO_DOTS_SLASH:or,QMARK_NO_DOT:nr,STAR:sr,START_ANCHOR:st,SEP:ir},ar={...it,SLASH_LITERAL:`[${z}]`,QMARK:ot,STAR:`${ot}*?`,DOTS_SLASH:`${te}{1,2}(?:[${z}]|$)`,NO_DOT:`(?!${te})`,NO_DOTS:`(?!(?:^|[${z}])${te}{1,2}(?:[${z}]|$))`,NO_DOT_SLASH:`(?!${te}{0,1}(?:[${z}]|$))`,NO_DOTS_SLASH:`(?!${te}{1,2}(?:[${z}]|$))`,QMARK_NO_DOT:`[^.${z}]`,START_ANCHOR:`(?:^|[${z}])`,END_ANCHOR:`(?:[${z}]|$)`,SEP:"\\"},ur={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};at.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:ur,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?ar:it}}});var Ae=ae(B=>{"use strict";var{REGEX_BACKSLASH:cr,REGEX_REMOVE_BACKSLASH:lr,REGEX_SPECIAL_CHARS:fr,REGEX_SPECIAL_CHARS_GLOBAL:pr}=de();B.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);B.hasRegexChars=e=>fr.test(e);B.isRegexChar=e=>e.length===1&&B.hasRegexChars(e);B.escapeRegex=e=>e.replace(pr,"\\$1");B.toPosixSlashes=e=>e.replace(cr,"/");B.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){let e=navigator.platform.toLowerCase();return e==="win32"||e==="windows"}return typeof process<"u"&&process.platform?process.platform==="win32":!1};B.removeBackslashes=e=>e.replace(lr,r=>r==="\\"?"":r);B.escapeLast=(e,r,t)=>{let o=e.lastIndexOf(r,t);return o===-1?e:e[o-1]==="\\"?B.escapeLast(e,r,o-1):`${e.slice(0,o)}\\${e.slice(o)}`};B.removePrefix=(e,r={})=>{let t=e;return t.startsWith("./")&&(t=t.slice(2),r.prefix="./"),t};B.wrapOutput=(e,r={},t={})=>{let o=t.contains?"":"^",n=t.contains?"":"$",c=`${o}(?:${e})${n}`;return r.negated===!0&&(c=`(?:^(?!${c}).*$)`),c};B.basename=(e,{windows:r}={})=>{let t=e.split(r?/[\\/]/:"/"),o=t[t.length-1];return o===""?t[t.length-2]:o}});var dt=ae((Vr,ht)=>{"use strict";var ut=Ae(),{CHAR_ASTERISK:Me,CHAR_AT:gr,CHAR_BACKWARD_SLASH:Re,CHAR_COMMA:hr,CHAR_DOT:Pe,CHAR_EXCLAMATION_MARK:Be,CHAR_FORWARD_SLASH:gt,CHAR_LEFT_CURLY_BRACE:Ge,CHAR_LEFT_PARENTHESES:je,CHAR_LEFT_SQUARE_BRACKET:dr,CHAR_PLUS:Ar,CHAR_QUESTION_MARK:ct,CHAR_RIGHT_CURLY_BRACE:Rr,CHAR_RIGHT_PARENTHESES:lt,CHAR_RIGHT_SQUARE_BRACKET:br}=de(),ft=e=>e===gt||e===Re,pt=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},Cr=(e,r)=>{let t=r||{},o=e.length-1,n=t.parts===!0||t.scanToEnd===!0,c=[],u=[],f=[],p=e,h=-1,C=0,L=0,I=!1,G=!1,_=!1,w=!1,oe=!1,Q=!1,E=!1,Z=!1,ne=!1,D=!1,N=0,j,d,R={value:"",depth:0,isGlob:!1},a=()=>h>=o,P=()=>p.charCodeAt(h+1),H=()=>(j=d,p.charCodeAt(++h));for(;h<o;){d=H();let y;if(d===Re){E=R.backslashes=!0,d=H(),d===Ge&&(Q=!0);continue}if(Q===!0||d===Ge){for(N++;a()!==!0&&(d=H());){if(d===Re){E=R.backslashes=!0,H();continue}if(d===Ge){N++;continue}if(Q!==!0&&d===Pe&&(d=H())===Pe){if(I=R.isBrace=!0,_=R.isGlob=!0,D=!0,n===!0)continue;break}if(Q!==!0&&d===hr){if(I=R.isBrace=!0,_=R.isGlob=!0,D=!0,n===!0)continue;break}if(d===Rr&&(N--,N===0)){Q=!1,I=R.isBrace=!0,D=!0;break}}if(n===!0)continue;break}if(d===gt){if(c.push(h),u.push(R),R={value:"",depth:0,isGlob:!1},D===!0)continue;if(j===Pe&&h===C+1){C+=2;continue}L=h+1;continue}if(t.noext!==!0&&(d===Ar||d===gr||d===Me||d===ct||d===Be)===!0&&P()===je){if(_=R.isGlob=!0,w=R.isExtglob=!0,D=!0,d===Be&&h===C&&(ne=!0),n===!0){for(;a()!==!0&&(d=H());){if(d===Re){E=R.backslashes=!0,d=H();continue}if(d===lt){_=R.isGlob=!0,D=!0;break}}continue}break}if(d===Me){if(j===Me&&(oe=R.isGlobstar=!0),_=R.isGlob=!0,D=!0,n===!0)continue;break}if(d===ct){if(_=R.isGlob=!0,D=!0,n===!0)continue;break}if(d===dr){for(;a()!==!0&&(y=H());){if(y===Re){E=R.backslashes=!0,H();continue}if(y===br){G=R.isBracket=!0,_=R.isGlob=!0,D=!0;break}}if(n===!0)continue;break}if(t.nonegate!==!0&&d===Be&&h===C){Z=R.negated=!0,C++;continue}if(t.noparen!==!0&&d===je){if(_=R.isGlob=!0,n===!0){for(;a()!==!0&&(d=H());){if(d===je){E=R.backslashes=!0,d=H();continue}if(d===lt){D=!0;break}}continue}break}if(_===!0){if(D=!0,n===!0)continue;break}}t.noext===!0&&(w=!1,_=!1);let $=p,s="",i="";C>0&&(s=p.slice(0,C),p=p.slice(C),L-=C),$&&_===!0&&L>0?($=p.slice(0,L),i=p.slice(L)):_===!0?($="",i=p):$=p,$&&$!==""&&$!=="/"&&$!==p&&ft($.charCodeAt($.length-1))&&($=$.slice(0,-1)),t.unescape===!0&&(i&&(i=ut.removeBackslashes(i)),$&&E===!0&&($=ut.removeBackslashes($)));let U={prefix:s,input:e,start:C,base:$,glob:i,isBrace:I,isBracket:G,isGlob:_,isExtglob:w,isGlobstar:oe,negated:Z,negatedExtglob:ne};if(t.tokens===!0&&(U.maxDepth=0,ft(d)||u.push(R),U.tokens=u),t.parts===!0||t.tokens===!0){let y;for(let O=0;O<c.length;O++){let ee=y?y+1:C,V=c[O],re=e.slice(ee,V);t.tokens&&(O===0&&C!==0?(u[O].isPrefix=!0,u[O].value=s):u[O].value=re,pt(u[O]),U.maxDepth+=u[O].depth),(O!==0||re!=="")&&f.push(re),y=V}if(y&&y+1<e.length){let O=e.slice(y+1);f.push(O),t.tokens&&(u[u.length-1].value=O,pt(u[u.length-1]),U.maxDepth+=u[u.length-1].depth)}U.slashes=c,U.parts=f}return U};ht.exports=Cr});var bt=ae((Kr,Rt)=>{"use strict";var Te=de(),J=Ae(),{MAX_LENGTH:$e,POSIX_REGEX_SOURCE:_r,REGEX_NON_SPECIAL_CHARS:yr,REGEX_SPECIAL_CHARS_BACKREF:Er,REPLACEMENTS:At}=Te,mr=(e,r)=>{if(typeof r.expandRange=="function")return r.expandRange(...e,r);e.sort();let t=`[${e.join("-")}]`;try{new RegExp(t)}catch{return e.map(n=>J.escapeRegex(n)).join("..")}return t},le=(e,r)=>`Missing ${e}: "${r}" - use "\\\\${r}" to match literal characters`,Fe=(e,r)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=At[e]||e;let t={...r},o=typeof t.maxLength=="number"?Math.min($e,t.maxLength):$e,n=e.length;if(n>o)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${o}`);let c={type:"bos",value:"",output:t.prepend||""},u=[c],f=t.capture?"":"?:",p=Te.globChars(t.windows),h=Te.extglobChars(p),{DOT_LITERAL:C,PLUS_LITERAL:L,SLASH_LITERAL:I,ONE_CHAR:G,DOTS_SLASH:_,NO_DOT:w,NO_DOT_SLASH:oe,NO_DOTS_SLASH:Q,QMARK:E,QMARK_NO_DOT:Z,STAR:ne,START_ANCHOR:D}=p,N=g=>`(${f}(?:(?!${D}${g.dot?_:C}).)*?)`,j=t.dot?"":w,d=t.dot?E:Z,R=t.bash===!0?N(t):ne;t.capture&&(R=`(${R})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let a={input:e,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:u};e=J.removePrefix(e,a),n=e.length;let P=[],H=[],$=[],s=c,i,U=()=>a.index===n-1,y=a.peek=(g=1)=>e[a.index+g],O=a.advance=()=>e[++a.index]||"",ee=()=>e.slice(a.index+1),V=(g="",m=0)=>{a.consumed+=g,a.index+=m},re=g=>{a.output+=g.output!=null?g.output:g.value,V(g.value)},$t=()=>{let g=1;for(;y()==="!"&&(y(2)!=="("||y(3)==="?");)O(),a.start++,g++;return g%2===0?!1:(a.negated=!0,a.start++,!0)},be=g=>{a[g]++,$.push(g)},se=g=>{a[g]--,$.pop()},b=g=>{if(s.type==="globstar"){let m=a.braces>0&&(g.type==="comma"||g.type==="brace"),l=g.extglob===!0||P.length&&(g.type==="pipe"||g.type==="paren");g.type!=="slash"&&g.type!=="paren"&&!m&&!l&&(a.output=a.output.slice(0,-s.output.length),s.type="star",s.value="*",s.output=R,a.output+=s.output)}if(P.length&&g.type!=="paren"&&(P[P.length-1].inner+=g.value),(g.value||g.output)&&re(g),s&&s.type==="text"&&g.type==="text"){s.output=(s.output||s.value)+g.value,s.value+=g.value;return}g.prev=s,u.push(g),s=g},Ce=(g,m)=>{let l={...h[m],conditions:1,inner:""};l.prev=s,l.parens=a.parens,l.output=a.output;let A=(t.capture?"(":"")+l.open;be("parens"),b({type:g,value:m,output:a.output?"":G}),b({type:"paren",extglob:!0,value:O(),output:A}),P.push(l)},vt=g=>{let m=g.close+(t.capture?")":""),l;if(g.type==="negate"){let A=R;if(g.inner&&g.inner.length>1&&g.inner.includes("/")&&(A=N(t)),(A!==R||U()||/^\)+$/.test(ee()))&&(m=g.close=`)$))${A}`),g.inner.includes("*")&&(l=ee())&&/^\.[^\\/.]+$/.test(l)){let S=Fe(l,{...r,fastpaths:!1}).output;m=g.close=`)${S})${A})`}g.prev.type==="bos"&&(a.negatedExtglob=!0)}b({type:"paren",extglob:!0,value:i,output:m}),se("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let g=!1,m=e.replace(Er,(l,A,S,M,k,Le)=>M==="\\"?(g=!0,l):M==="?"?A?A+M+(k?E.repeat(k.length):""):Le===0?d+(k?E.repeat(k.length):""):E.repeat(S.length):M==="."?C.repeat(S.length):M==="*"?A?A+M+(k?R:""):R:A?l:`\\${l}`);return g===!0&&(t.unescape===!0?m=m.replace(/\\/g,""):m=m.replace(/\\+/g,l=>l.length%2===0?"\\\\":l?"\\":"")),m===e&&t.contains===!0?(a.output=e,a):(a.output=J.wrapOutput(m,a,r),a)}for(;!U();){if(i=O(),i==="\0")continue;if(i==="\\"){let l=y();if(l==="/"&&t.bash!==!0||l==="."||l===";")continue;if(!l){i+="\\",b({type:"text",value:i});continue}let A=/^\\+/.exec(ee()),S=0;if(A&&A[0].length>2&&(S=A[0].length,a.index+=S,S%2!==0&&(i+="\\")),t.unescape===!0?i=O():i+=O(),a.brackets===0){b({type:"text",value:i});continue}}if(a.brackets>0&&(i!=="]"||s.value==="["||s.value==="[^")){if(t.posix!==!1&&i===":"){let l=s.value.slice(1);if(l.includes("[")&&(s.posix=!0,l.includes(":"))){let A=s.value.lastIndexOf("["),S=s.value.slice(0,A),M=s.value.slice(A+2),k=_r[M];if(k){s.value=S+k,a.backtrack=!0,O(),!c.output&&u.indexOf(s)===1&&(c.output=G);continue}}}(i==="["&&y()!==":"||i==="-"&&y()==="]")&&(i=`\\${i}`),i==="]"&&(s.value==="["||s.value==="[^")&&(i=`\\${i}`),t.posix===!0&&i==="!"&&s.value==="["&&(i="^"),s.value+=i,re({value:i});continue}if(a.quotes===1&&i!=='"'){i=J.escapeRegex(i),s.value+=i,re({value:i});continue}if(i==='"'){a.quotes=a.quotes===1?0:1,t.keepQuotes===!0&&b({type:"text",value:i});continue}if(i==="("){be("parens"),b({type:"paren",value:i});continue}if(i===")"){if(a.parens===0&&t.strictBrackets===!0)throw new SyntaxError(le("opening","("));let l=P[P.length-1];if(l&&a.parens===l.parens+1){vt(P.pop());continue}b({type:"paren",value:i,output:a.parens?")":"\\)"}),se("parens");continue}if(i==="["){if(t.nobracket===!0||!ee().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(le("closing","]"));i=`\\${i}`}else be("brackets");b({type:"bracket",value:i});continue}if(i==="]"){if(t.nobracket===!0||s&&s.type==="bracket"&&s.value.length===1){b({type:"text",value:i,output:`\\${i}`});continue}if(a.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(le("opening","["));b({type:"text",value:i,output:`\\${i}`});continue}se("brackets");let l=s.value.slice(1);if(s.posix!==!0&&l[0]==="^"&&!l.includes("/")&&(i=`/${i}`),s.value+=i,re({value:i}),t.literalBrackets===!1||J.hasRegexChars(l))continue;let A=J.escapeRegex(s.value);if(a.output=a.output.slice(0,-s.value.length),t.literalBrackets===!0){a.output+=A,s.value=A;continue}s.value=`(${f}${A}|${s.value})`,a.output+=s.value;continue}if(i==="{"&&t.nobrace!==!0){be("braces");let l={type:"brace",value:i,output:"(",outputIndex:a.output.length,tokensIndex:a.tokens.length};H.push(l),b(l);continue}if(i==="}"){let l=H[H.length-1];if(t.nobrace===!0||!l){b({type:"text",value:i,output:i});continue}let A=")";if(l.dots===!0){let S=u.slice(),M=[];for(let k=S.length-1;k>=0&&(u.pop(),S[k].type!=="brace");k--)S[k].type!=="dots"&&M.unshift(S[k].value);A=mr(M,t),a.backtrack=!0}if(l.comma!==!0&&l.dots!==!0){let S=a.output.slice(0,l.outputIndex),M=a.tokens.slice(l.tokensIndex);l.value=l.output="\\{",i=A="\\}",a.output=S;for(let k of M)a.output+=k.output||k.value}b({type:"brace",value:i,output:A}),se("braces"),H.pop();continue}if(i==="|"){P.length>0&&P[P.length-1].conditions++,b({type:"text",value:i});continue}if(i===","){let l=i,A=H[H.length-1];A&&$[$.length-1]==="braces"&&(A.comma=!0,l="|"),b({type:"comma",value:i,output:l});continue}if(i==="/"){if(s.type==="dot"&&a.index===a.start+1){a.start=a.index+1,a.consumed="",a.output="",u.pop(),s=c;continue}b({type:"slash",value:i,output:I});continue}if(i==="."){if(a.braces>0&&s.type==="dot"){s.value==="."&&(s.output=C);let l=H[H.length-1];s.type="dots",s.output+=i,s.value+=i,l.dots=!0;continue}if(a.braces+a.parens===0&&s.type!=="bos"&&s.type!=="slash"){b({type:"text",value:i,output:C});continue}b({type:"dot",value:i,output:C});continue}if(i==="?"){if(!(s&&s.value==="(")&&t.noextglob!==!0&&y()==="("&&y(2)!=="?"){Ce("qmark",i);continue}if(s&&s.type==="paren"){let A=y(),S=i;(s.value==="("&&!/[!=<:]/.test(A)||A==="<"&&!/<([!=]|\w+>)/.test(ee()))&&(S=`\\${i}`),b({type:"text",value:i,output:S});continue}if(t.dot!==!0&&(s.type==="slash"||s.type==="bos")){b({type:"qmark",value:i,output:Z});continue}b({type:"qmark",value:i,output:E});continue}if(i==="!"){if(t.noextglob!==!0&&y()==="("&&(y(2)!=="?"||!/[!=<:]/.test(y(3)))){Ce("negate",i);continue}if(t.nonegate!==!0&&a.index===0){$t();continue}}if(i==="+"){if(t.noextglob!==!0&&y()==="("&&y(2)!=="?"){Ce("plus",i);continue}if(s&&s.value==="("||t.regex===!1){b({type:"plus",value:i,output:L});continue}if(s&&(s.type==="bracket"||s.type==="paren"||s.type==="brace")||a.parens>0){b({type:"plus",value:i});continue}b({type:"plus",value:L});continue}if(i==="@"){if(t.noextglob!==!0&&y()==="("&&y(2)!=="?"){b({type:"at",extglob:!0,value:i,output:""});continue}b({type:"text",value:i});continue}if(i!=="*"){(i==="$"||i==="^")&&(i=`\\${i}`);let l=yr.exec(ee());l&&(i+=l[0],a.index+=l[0].length),b({type:"text",value:i});continue}if(s&&(s.type==="globstar"||s.star===!0)){s.type="star",s.star=!0,s.value+=i,s.output=R,a.backtrack=!0,a.globstar=!0,V(i);continue}let g=ee();if(t.noextglob!==!0&&/^\([^?]/.test(g)){Ce("star",i);continue}if(s.type==="star"){if(t.noglobstar===!0){V(i);continue}let l=s.prev,A=l.prev,S=l.type==="slash"||l.type==="bos",M=A&&(A.type==="star"||A.type==="globstar");if(t.bash===!0&&(!S||g[0]&&g[0]!=="/")){b({type:"star",value:i,output:""});continue}let k=a.braces>0&&(l.type==="comma"||l.type==="brace"),Le=P.length&&(l.type==="pipe"||l.type==="paren");if(!S&&l.type!=="paren"&&!k&&!Le){b({type:"star",value:i,output:""});continue}for(;g.slice(0,3)==="/**";){let _e=e[a.index+4];if(_e&&_e!=="/")break;g=g.slice(3),V("/**",3)}if(l.type==="bos"&&U()){s.type="globstar",s.value+=i,s.output=N(t),a.output=s.output,a.globstar=!0,V(i);continue}if(l.type==="slash"&&l.prev.type!=="bos"&&!M&&U()){a.output=a.output.slice(0,-(l.output+s.output).length),l.output=`(?:${l.output}`,s.type="globstar",s.output=N(t)+(t.strictSlashes?")":"|$)"),s.value+=i,a.globstar=!0,a.output+=l.output+s.output,V(i);continue}if(l.type==="slash"&&l.prev.type!=="bos"&&g[0]==="/"){let _e=g[1]!==void 0?"|$":"";a.output=a.output.slice(0,-(l.output+s.output).length),l.output=`(?:${l.output}`,s.type="globstar",s.output=`${N(t)}${I}|${I}${_e})`,s.value+=i,a.output+=l.output+s.output,a.globstar=!0,V(i+O()),b({type:"slash",value:"/",output:""});continue}if(l.type==="bos"&&g[0]==="/"){s.type="globstar",s.value+=i,s.output=`(?:^|${I}|${N(t)}${I})`,a.output=s.output,a.globstar=!0,V(i+O()),b({type:"slash",value:"/",output:""});continue}a.output=a.output.slice(0,-s.output.length),s.type="globstar",s.output=N(t),s.value+=i,a.output+=s.output,a.globstar=!0,V(i);continue}let m={type:"star",value:i,output:R};if(t.bash===!0){m.output=".*?",(s.type==="bos"||s.type==="slash")&&(m.output=j+m.output),b(m);continue}if(s&&(s.type==="bracket"||s.type==="paren")&&t.regex===!0){m.output=i,b(m);continue}(a.index===a.start||s.type==="slash"||s.type==="dot")&&(s.type==="dot"?(a.output+=oe,s.output+=oe):t.dot===!0?(a.output+=Q,s.output+=Q):(a.output+=j,s.output+=j),y()!=="*"&&(a.output+=G,s.output+=G)),b(m)}for(;a.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(le("closing","]"));a.output=J.escapeLast(a.output,"["),se("brackets")}for(;a.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(le("closing",")"));a.output=J.escapeLast(a.output,"("),se("parens")}for(;a.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(le("closing","}"));a.output=J.escapeLast(a.output,"{"),se("braces")}if(t.strictSlashes!==!0&&(s.type==="star"||s.type==="bracket")&&b({type:"maybe_slash",value:"",output:`${I}?`}),a.backtrack===!0){a.output="";for(let g of a.tokens)a.output+=g.output!=null?g.output:g.value,g.suffix&&(a.output+=g.suffix)}return a};Fe.fastpaths=(e,r)=>{let t={...r},o=typeof t.maxLength=="number"?Math.min($e,t.maxLength):$e,n=e.length;if(n>o)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${o}`);e=At[e]||e;let{DOT_LITERAL:c,SLASH_LITERAL:u,ONE_CHAR:f,DOTS_SLASH:p,NO_DOT:h,NO_DOTS:C,NO_DOTS_SLASH:L,STAR:I,START_ANCHOR:G}=Te.globChars(t.windows),_=t.dot?C:h,w=t.dot?L:h,oe=t.capture?"":"?:",Q={negated:!1,prefix:""},E=t.bash===!0?".*?":I;t.capture&&(E=`(${E})`);let Z=j=>j.noglobstar===!0?E:`(${oe}(?:(?!${G}${j.dot?p:c}).)*?)`,ne=j=>{switch(j){case"*":return`${_}${f}${E}`;case".*":return`${c}${f}${E}`;case"*.*":return`${_}${E}${c}${f}${E}`;case"*/*":return`${_}${E}${u}${f}${w}${E}`;case"**":return _+Z(t);case"**/*":return`(?:${_}${Z(t)}${u})?${w}${f}${E}`;case"**/*.*":return`(?:${_}${Z(t)}${u})?${w}${E}${c}${f}${E}`;case"**/.*":return`(?:${_}${Z(t)}${u})?${c}${f}${E}`;default:{let d=/^(.*?)\.(\w+)$/.exec(j);if(!d)return;let R=ne(d[1]);return R?R+c+d[2]:void 0}}},D=J.removePrefix(e,Q),N=ne(D);return N&&t.strictSlashes!==!0&&(N+=`${u}?`),N};Rt.exports=Fe});var yt=ae((Xr,_t)=>{"use strict";var xr=dt(),We=bt(),Ct=Ae(),Or=de(),Sr=e=>e&&typeof e=="object"&&!Array.isArray(e),v=(e,r,t=!1)=>{if(Array.isArray(e)){let C=e.map(I=>v(I,r,t));return I=>{for(let G of C){let _=G(I);if(_)return _}return!1}}let o=Sr(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!o)throw new TypeError("Expected pattern to be a non-empty string");let n=r||{},c=n.windows,u=o?v.compileRe(e,r):v.makeRe(e,r,!1,!0),f=u.state;delete u.state;let p=()=>!1;if(n.ignore){let C={...r,ignore:null,onMatch:null,onResult:null};p=v(n.ignore,C,t)}let h=(C,L=!1)=>{let{isMatch:I,match:G,output:_}=v.test(C,u,r,{glob:e,posix:c}),w={glob:e,state:f,regex:u,posix:c,input:C,output:_,match:G,isMatch:I};return typeof n.onResult=="function"&&n.onResult(w),I===!1?(w.isMatch=!1,L?w:!1):p(C)?(typeof n.onIgnore=="function"&&n.onIgnore(w),w.isMatch=!1,L?w:!1):(typeof n.onMatch=="function"&&n.onMatch(w),L?w:!0)};return t&&(h.state=f),h};v.test=(e,r,t,{glob:o,posix:n}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let c=t||{},u=c.format||(n?Ct.toPosixSlashes:null),f=e===o,p=f&&u?u(e):e;return f===!1&&(p=u?u(e):e,f=p===o),(f===!1||c.capture===!0)&&(c.matchBase===!0||c.basename===!0?f=v.matchBase(e,r,t,n):f=r.exec(p)),{isMatch:!!f,match:f,output:p}};v.matchBase=(e,r,t)=>(r instanceof RegExp?r:v.makeRe(r,t)).test(Ct.basename(e));v.isMatch=(e,r,t)=>v(r,t)(e);v.parse=(e,r)=>Array.isArray(e)?e.map(t=>v.parse(t,r)):We(e,{...r,fastpaths:!1});v.scan=(e,r)=>xr(e,r);v.compileRe=(e,r,t=!1,o=!1)=>{if(t===!0)return e.output;let n=r||{},c=n.contains?"":"^",u=n.contains?"":"$",f=`${c}(?:${e.output})${u}`;e&&e.negated===!0&&(f=`^(?!${f}).*$`);let p=v.toRegex(f,r);return o===!0&&(p.state=e),p};v.makeRe=(e,r={},t=!1,o=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return r.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(n.output=We.fastpaths(e,r)),n.output||(n=We(e,r)),v.compileRe(n,r,t,o)};v.toRegex=(e,r)=>{try{let t=r||{};return new RegExp(e,t.flags||(t.nocase?"i":""))}catch(t){if(r&&r.debug===!0)throw t;return/$^/}};v.constants=Or;_t.exports=v});var Ot=ae((qr,xt)=>{"use strict";var Et=yt(),Tr=Ae();function mt(e,r,t=!1){return r&&(r.windows===null||r.windows===void 0)&&(r={...r,windows:Tr.isWindows()}),Et(e,r,t)}Object.assign(mt,Et);xt.exports=mt});var Ir={};Nt(Ir,{default:()=>Lr});var W=fe("@yarnpkg/core");var Ke=(e=0)=>r=>`\x1B[${r+e}m`,Xe=(e=0)=>r=>`\x1B[${38+e};5;${r}m`,qe=(e=0)=>(r,t,o)=>`\x1B[${38+e};2;${r};${t};${o}m`,x={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},kr=Object.keys(x.modifier),Mt=Object.keys(x.color),Pt=Object.keys(x.bgColor),wr=[...Mt,...Pt];function Bt(){let e=new Map;for(let[r,t]of Object.entries(x)){for(let[o,n]of Object.entries(t))x[o]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},t[o]=x[o],e.set(n[0],n[1]);Object.defineProperty(x,r,{value:t,enumerable:!1})}return Object.defineProperty(x,"codes",{value:e,enumerable:!1}),x.color.close="\x1B[39m",x.bgColor.close="\x1B[49m",x.color.ansi=Ke(),x.color.ansi256=Xe(),x.color.ansi16m=qe(),x.bgColor.ansi=Ke(10),x.bgColor.ansi256=Xe(10),x.bgColor.ansi16m=qe(10),Object.defineProperties(x,{rgbToAnsi256:{value(r,t,o){return r===t&&t===o?r<8?16:r>248?231:Math.round((r-8)/247*24)+232:16+36*Math.round(r/255*5)+6*Math.round(t/255*5)+Math.round(o/255*5)},enumerable:!1},hexToRgb:{value(r){let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(r.toString(16));if(!t)return[0,0,0];let[o]=t;o.length===3&&(o=[...o].map(c=>c+c).join(""));let n=Number.parseInt(o,16);return[n>>16&255,n>>8&255,n&255]},enumerable:!1},hexToAnsi256:{value:r=>x.rgbToAnsi256(...x.hexToRgb(r)),enumerable:!1},ansi256ToAnsi:{value(r){if(r<8)return 30+r;if(r<16)return 90+(r-8);let t,o,n;if(r>=232)t=((r-232)*10+8)/255,o=t,n=t;else{r-=16;let f=r%36;t=Math.floor(r/36)/5,o=Math.floor(f/6)/5,n=f%6/5}let c=Math.max(t,o,n)*2;if(c===0)return 30;let u=30+(Math.round(n)<<2|Math.round(o)<<1|Math.round(t));return c===2&&(u+=60),u},enumerable:!1},rgbToAnsi:{value:(r,t,o)=>x.ansi256ToAnsi(x.rgbToAnsi256(r,t,o)),enumerable:!1},hexToAnsi:{value:r=>x.ansi256ToAnsi(x.hexToAnsi256(r)),enumerable:!1}}),x}var Gt=Bt(),q=Gt;var xe=Ee(fe("process"),1),Qe=Ee(fe("os"),1),Ie=Ee(fe("tty"),1);function K(e,r=globalThis.Deno?globalThis.Deno.args:xe.default.argv){let t=e.startsWith("-")?"":e.length===1?"-":"--",o=r.indexOf(t+e),n=r.indexOf("--");return o!==-1&&(n===-1||o<n)}var{env:T}=xe.default,me;K("no-color")||K("no-colors")||K("color=false")||K("color=never")?me=0:(K("color")||K("colors")||K("color=true")||K("color=always"))&&(me=1);function jt(){if("FORCE_COLOR"in T)return T.FORCE_COLOR==="true"?1:T.FORCE_COLOR==="false"?0:T.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(T.FORCE_COLOR,10),3)}function Ft(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Wt(e,{streamIsTTY:r,sniffFlags:t=!0}={}){let o=jt();o!==void 0&&(me=o);let n=t?me:o;if(n===0)return 0;if(t){if(K("color=16m")||K("color=full")||K("color=truecolor"))return 3;if(K("color=256"))return 2}if("TF_BUILD"in T&&"AGENT_NAME"in T)return 1;if(e&&!r&&n===void 0)return 0;let c=n||0;if(T.TERM==="dumb")return c;if(xe.default.platform==="win32"){let u=Qe.default.release().split(".");return Number(u[0])>=10&&Number(u[2])>=10586?Number(u[2])>=14931?3:2:1}if("CI"in T)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(u=>u in T)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(u=>u in T)||T.CI_NAME==="codeship"?1:c;if("TEAMCITY_VERSION"in T)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(T.TEAMCITY_VERSION)?1:0;if(T.COLORTERM==="truecolor"||T.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in T){let u=Number.parseInt((T.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(T.TERM_PROGRAM){case"iTerm.app":return u>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(T.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(T.TERM)||"COLORTERM"in T?1:c}function Ye(e,r={}){let t=Wt(e,{streamIsTTY:e&&e.isTTY,...r});return Ft(t)}var Ut={stdout:Ye({isTTY:Ie.default.isatty(1)}),stderr:Ye({isTTY:Ie.default.isatty(2)})},Ze=Ut;function ze(e,r,t){let o=e.indexOf(r);if(o===-1)return e;let n=r.length,c=0,u="";do u+=e.slice(c,o)+r+t,c=o+n,o=e.indexOf(r,c);while(o!==-1);return u+=e.slice(c),u}function Je(e,r,t,o){let n=0,c="";do{let u=e[o-1]==="\r";c+=e.slice(n,u?o-1:o)+r+(u?`\r
`:`
`)+t,n=o+1,o=e.indexOf(`
`,n)}while(o!==-1);return c+=e.slice(n),c}var{stdout:et,stderr:tt}=Ze,He=Symbol("GENERATOR"),ue=Symbol("STYLER"),pe=Symbol("IS_EMPTY"),rt=["ansi","ansi","ansi256","ansi16m"],ce=Object.create(null),Vt=(e,r={})=>{if(r.level&&!(Number.isInteger(r.level)&&r.level>=0&&r.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let t=et?et.level:0;e.level=r.level===void 0?t:r.level};var Kt=e=>{let r=(...t)=>t.join(" ");return Vt(r,e),Object.setPrototypeOf(r,ge.prototype),r};function ge(e){return Kt(e)}Object.setPrototypeOf(ge.prototype,Function.prototype);for(let[e,r]of Object.entries(q))ce[e]={get(){let t=Oe(this,we(r.open,r.close,this[ue]),this[pe]);return Object.defineProperty(this,e,{value:t}),t}};ce.visible={get(){let e=Oe(this,this[ue],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var ke=(e,r,t,...o)=>e==="rgb"?r==="ansi16m"?q[t].ansi16m(...o):r==="ansi256"?q[t].ansi256(q.rgbToAnsi256(...o)):q[t].ansi(q.rgbToAnsi(...o)):e==="hex"?ke("rgb",r,t,...q.hexToRgb(...o)):q[t][e](...o),Xt=["rgb","hex","ansi256"];for(let e of Xt){ce[e]={get(){let{level:t}=this;return function(...o){let n=we(ke(e,rt[t],"color",...o),q.color.close,this[ue]);return Oe(this,n,this[pe])}}};let r="bg"+e[0].toUpperCase()+e.slice(1);ce[r]={get(){let{level:t}=this;return function(...o){let n=we(ke(e,rt[t],"bgColor",...o),q.bgColor.close,this[ue]);return Oe(this,n,this[pe])}}}}var qt=Object.defineProperties(()=>{},{...ce,level:{enumerable:!0,get(){return this[He].level},set(e){this[He].level=e}}}),we=(e,r,t)=>{let o,n;return t===void 0?(o=e,n=r):(o=t.openAll+e,n=r+t.closeAll),{open:e,close:r,openAll:o,closeAll:n,parent:t}},Oe=(e,r,t)=>{let o=(...n)=>Yt(o,n.length===1?""+n[0]:n.join(" "));return Object.setPrototypeOf(o,qt),o[He]=e,o[ue]=r,o[pe]=t,o},Yt=(e,r)=>{if(e.level<=0||!r)return e[pe]?"":r;let t=e[ue];if(t===void 0)return r;let{openAll:o,closeAll:n}=t;if(r.includes("\x1B"))for(;t!==void 0;)r=ze(r,t.close,t.open),t=t.parent;let c=r.indexOf(`
`);return c!==-1&&(r=Je(r,n,o,c)),o+r+n};Object.defineProperties(ge.prototype,ce);var Qt=ge(),jr=ge({level:tt?tt.level:0});var he=Qt;var Ue=fe("@yarnpkg/core"),St=Ee(Ot()),ie="root",X="catalog:",F=class extends Error{constructor(t,o){super(t);this.code=o;this.name="CatalogConfigurationError"}static{this.FILE_NOT_FOUND="FILE_NOT_FOUND"}static{this.INVALID_FORMAT="INVALID_FORMAT"}static{this.INVALID_ALIAS="INVALID_ALIAS"}},ve=class{constructor(){this.configCache=new Map}getInheritanceChain(r){let t=r.split("/"),o=[];for(let n=0;n<t.length;n++)o.push(t.slice(0,n+1).join("/"));return o}resolveInheritedRange(r,t,o){let n=this.getInheritanceChain(t);for(let u=n.length-1;u>=0;u--){let f=n[u],p=r.list?.[f];if(p&&typeof p=="object"){let h=p[o];if(h)return h}}if(r.list&&typeof r.list=="object"){let u=r.list[o];if(typeof u=="string")return u}let c=r.list?.[ie];if(c&&typeof c=="object"){let u=c[o];if(u)return u}return null}validateInheritanceStructure(r){if(!r.list)return!0;let t=Object.keys(r.list);for(let o of t)if(typeof r.list[o]!="string"&&o.includes("/")){let n=this.getInheritanceChain(o);for(let c=0;c<n.length-1;c++){let u=n[c];if(!t.includes(u)&&u!==ie)return!1}}return!0}async readConfiguration(r){let o=r.cwd,n=this.configCache.get(o);if(n)return n;let c=r.configuration.get("catalogs")||{},u=c;if(c.list?u.list=Object.entries(c.list).reduce((f,[p,h])=>(typeof h=="string"?f[ie]={...f[ie]||{},[p]:h}:f[p]=h,f),{}):u.list={},!this.isValidConfiguration(u))throw new F("Invalid catalogs configuration format. Expected structure: { options?: { default?: string[] | 'max', ignoredWorkspaces?: string[], validation?: 'warn' | 'strict' }, list: { [alias: string]: { [packageName: string]: string } } }",F.INVALID_FORMAT);if(!this.validateInheritanceStructure(u))throw new F("Invalid inheritance structure in catalogs configuration. Check for missing parent groups.",F.INVALID_ALIAS);return this.configCache.set(o,u),u}async getRange(r,t,o){let n=await this.readConfiguration(r),c=t.length===0?ie:t,u=this.resolveInheritedRange(n,c,o);if(u)return/^[^:]+:/.test(u)?u:`${r.configuration.get("defaultProtocol")}${u}`;let f=n.list?.[c];if(!f||typeof f=="string")throw new F(`Alias "${c}" not found in .yarnrc.yml catalogs.`,F.INVALID_ALIAS);let p=f[o];if(!p)throw new F(`Package "${o}" not found in alias "${c}"`,F.INVALID_ALIAS);return/^[^:]+:/.test(p)?p:`${r.configuration.get("defaultProtocol")}${p}`}async getDefaultAliasGroups(r){let t=await this.readConfiguration(r.project);if(t.options){if(await this.shouldIgnoreWorkspace(r))return[];if(t.options.default){if(Array.isArray(t.options.default))return t.options.default;if(t.options.default==="max"){let o=Object.keys(t.list||{}),n=[...r.manifest.dependencies,...r.manifest.devDependencies],c=Object.fromEntries(o.map(f=>[f,0]));for(let[f,p]of n)if(p.range.startsWith(X)){let h=p.range.substring(X.length);c[h]=(c[h]||0)+1}let u=Math.max(...Object.values(c));return Object.keys(c).filter(f=>c[f]===u)}}}return[]}async findDependency(r,t){let o=Ue.structUtils.stringifyIdent(t),n=await this.readConfiguration(r),c=[],u=Object.entries(n.list||{}).filter(([f,p])=>typeof p=="string"?o===p:Object.keys(p).includes(o));c.push(...u.map(([f,p])=>{let h=typeof p=="string"?p:p[o];return[f,h]}));for(let[f]of Object.entries(n.list||{})){if(c.some(([h])=>h===f))continue;let p=this.resolveInheritedRange(n,f,o);p&&c.push([f,p])}return c}clearCache(r){this.configCache.delete(r)}async shouldIgnoreWorkspace(r){if(!r.manifest.name)return!1;let t=await this.readConfiguration(r.project);return t.options?.ignoredWorkspaces?(0,St.isMatch)(Ue.structUtils.stringifyIdent(r.manifest.name),t.options.ignoredWorkspaces):!1}async getValidationLevel(r){let t=await this.readConfiguration(r.project);return t.options?.validation?t.options.validation:"warn"}isValidConfiguration(r){if(!r||typeof r!="object"||!("list"in r)||!r.list||typeof r.list!="object")return!1;for(let[t,o]of Object.entries(r.list)){if(!o||typeof o!="object")return!1;for(let n of Object.values(o))if(typeof n!="string")return!1}if("options"in r&&r.options&&typeof r.options=="object"){if("ignoredWorkspaces"in r.options&&r.options.ignoredWorkspaces&&(!Array.isArray(r.options.ignoredWorkspaces)||r.options.ignoredWorkspaces.length===0))return!1;if("default"in r.options&&r.options.default){if(Array.isArray(r.options.default)){if(r.options.default.length===0)return!1;let t=Object.keys(r.list||{});for(let o of r.options.default)if(o!=="root"&&!t.includes(o))if(o.includes("/")){let n=this.getInheritanceChain(o),c=!0;for(let u of n)if(u!=="root"&&!t.includes(u)){c=!1;break}if(!c)return!1}else return!1}else if(typeof r.options.default!="string"||r.options.default!=="max")return!1}if("validation"in r.options&&(typeof r.options.validation!="string"||!["warn","strict"].includes(r.options.validation)))return!1}return!0}};var Y=new ve,$r={configuration:{catalogs:{description:"Define dependency version ranges as reusable constants across your project.",type:W.SettingsType.ANY,default:{}}},hooks:{validateWorkspace:async(e,r)=>{let t=await Y.shouldIgnoreWorkspace(e);if(!t){let n=await vr(e);if(n.length>0){let c=he.yellow(n.join(", ")),u=await Y.getValidationLevel(e),f=`The following dependencies are listed in the catalogs but not using the catalog protocol: ${c}. Consider using the catalog protocol instead.`;u==="strict"?r.reportError(W.MessageName.INVALID_MANIFEST,f):u==="warn"&&r.reportWarning(W.MessageName.INVALID_MANIFEST,f)}}let o=[...Object.values(e.manifest.raw.dependencies||{}),...Object.values(e.manifest.raw.devDependencies||{})].some(n=>n.startsWith(X));t&&o&&r.reportError(W.MessageName.INVALID_MANIFEST,"Workspace is ignored from the catalogs, but it has dependencies with the catalog protocol. Consider removing the protocol.")},reduceDependency:async(e,r,...t)=>{let o=e.range.startsWith(X),n=e.range.includes("catalog%3A")&&e.range.startsWith("patch:");if(!o&&!n)return e;try{let c="",u=e.range;if(o)c=e.range.slice(X.length);else if(n){let L=e.range.match(/catalog%3A([^#&]*)/);L&&(c=L[1]||"")}let f=W.structUtils.stringifyIdent(e),p=await Y.getRange(r,c,f),h;if(o?h=W.structUtils.makeDescriptor(W.structUtils.makeIdent(e.scope,e.name),p):h=W.structUtils.makeDescriptor(W.structUtils.makeIdent(e.scope,e.name),u.replace(/catalog%3A[^#&]*/,p)),n)return h;let C=await r.configuration.reduceHook(L=>L.reduceDependency,h,r,...t);return C!==h?C:h}catch(c){throw c instanceof F?new Error(`Failed to resolve ${W.structUtils.stringifyDescriptor(e)}: ${c.message}`):c}},afterWorkspaceDependencyAddition:async(e,r,t)=>{Tt(e,t)},afterWorkspaceDependencyReplacement:async(e,r,t,o)=>{Tt(e,o)},beforeWorkspacePacking:async(e,r)=>{if(await Y.shouldIgnoreWorkspace(e))return;let t=["dependencies","devDependencies","peerDependencies","optionalDependencies"];for(let o of t){let n=r[o];if(!(!n||typeof n!="object"))for(let[c,u]of Object.entries(n)){let f=u;if(f.startsWith(X))try{let p=f.slice(X.length),h=await Y.getRange(e.project,p,c);n[c]=h}catch(p){throw p instanceof F?new Error(`Failed to resolve catalog dependency ${c}@${f} during packaging: ${p.message}`):p}}}}}};async function vr(e){let r=await Y.readConfiguration(e.project),t=new Set;if(r.list){for(let[c,u]of Object.entries(r.list))if(typeof u=="object")for(let f of Object.keys(u))t.add(f)}let o=[...Object.entries(e.manifest.raw.dependencies||{}),...Object.entries(e.manifest.raw.devDependencies||{})],n=[];for(let[c,u]of o)u.startsWith(X)||t.has(c)&&n.push(c);return n}async function Tt(e,r){if(r.range.startsWith(X)){if(await Y.shouldIgnoreWorkspace(e))throw new Error(he.red("The workspace is ignored from the catalogs, but the dependency to add is using the catalog protocol. Consider removing the protocol."));return}if(await Y.shouldIgnoreWorkspace(e))return;let t=await Y.findDependency(e.project,r);if(t.length===0)return;let o=await Y.getDefaultAliasGroups(e);if(o.length>0){for(let p of o)if(t.some(([h])=>h===p)){r.range=`${X}${p}`;return}}let n=t.map(([p])=>p===ie?"":p),c=n.filter(p=>p!=="").length>0?` (${n.join(", ")})`:"",u=await Y.getValidationLevel(e),f=`\u27A4 ${r.name} is listed in the catalogs config${c}, but it seems you're adding it without the catalog protocol. Consider running 'yarn add ${r.name}@${X}${n[0]}' instead.`;if(u==="strict")throw new Error(he.red(f));u==="warn"&&console.warn(he.yellow(f))}var Lr=$r;return Dt(Ir);})();
return plugin;
}
};


================================================
FILE: .yarn/plugins/plugin-licenses.js
================================================
/* eslint-disable */
//prettier-ignore
module.exports = {
name: "@yarnpkg/plugin-licenses",
factory: function (require) {
"use strict";var plugin=(()=>{var It=Object.create;var j=Object.defineProperty;var zt=Object.getOwnPropertyDescriptor;var Mt=Object.getOwnPropertyNames;var Nt=Object.getPrototypeOf,jt=Object.prototype.hasOwnProperty;var A=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')});var M=(s,t)=>()=>(t||s((t={exports:{}}).exports,t),t.exports),H=(s,t)=>{for(var e in t)j(s,e,{get:t[e],enumerable:!0})},ut=(s,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Mt(t))!jt.call(s,n)&&n!==e&&j(s,n,{get:()=>t[n],enumerable:!(i=zt(t,n))||i.enumerable});return s};var Ht=(s,t,e)=>(e=s!=null?It(Nt(s)):{},ut(t||!s||!s.__esModule?j(e,"default",{value:s,enumerable:!0}):e,s)),Gt=s=>ut(j({},"__esModule",{value:!0}),s);var wt=M(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.LRUCache=void 0;var D=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,pt=new Set,Z=typeof process=="object"&&process?process:{},mt=(s,t,e,i)=>{typeof Z.emitWarning=="function"?Z.emitWarning(s,t,e,i):console.error(`[${e}] ${t}: ${s}`)},G=globalThis.AbortController,dt=globalThis.AbortSignal;if(typeof G>"u"){dt=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(i,n){this._onabort.push(n)}},G=class{constructor(){t()}signal=new dt;abort(i){if(!this.signal.aborted){this.signal.reason=i,this.signal.aborted=!0;for(let n of this.signal._onabort)n(i);this.signal.onabort?.(i)}}};let s=Z.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{s&&(s=!1,mt("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}var Bt=s=>!pt.has(s),Se=Symbol("type"),E=s=>s&&s===Math.floor(s)&&s>0&&isFinite(s),gt=s=>E(s)?s<=Math.pow(2,8)?Uint8Array:s<=Math.pow(2,16)?Uint16Array:s<=Math.pow(2,32)?Uint32Array:s<=Number.MAX_SAFE_INTEGER?R:null:null,R=class extends Array{constructor(t){super(t),this.fill(0)}},tt=class s{heap;length;static#n=!1;static create(t){let e=gt(t);if(!e)return[];s.#n=!0;let i=new s(t,e);return s.#n=!1,i}constructor(t,e){if(!s.#n)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},et=class s{#n;#l;#e;#g;#x;#k;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#r;#w;#o;#i;#t;#f;#d;#c;#a;#b;#h;#y;#$;#p;#S;#T;#u;static unsafeExposeInternals(t){return{starts:t.#$,ttls:t.#p,sizes:t.#y,keyMap:t.#o,keyList:t.#i,valList:t.#t,next:t.#f,prev:t.#d,get head(){return t.#c},get tail(){return t.#a},free:t.#b,isBackgroundFetch:e=>t.#s(e),backgroundFetch:(e,i,n,o)=>t.#W(e,i,n,o),moveToTail:e=>t.#E(e),indexes:e=>t.#P(e),rindexes:e=>t.#A(e),isStale:e=>t.#m(e)}}get max(){return this.#n}get maxSize(){return this.#l}get calculatedSize(){return this.#w}get size(){return this.#r}get fetchMethod(){return this.#x}get memoMethod(){return this.#k}get dispose(){return this.#e}get disposeAfter(){return this.#g}constructor(t){let{max:e=0,ttl:i,ttlResolution:n=1,ttlAutopurge:o,updateAgeOnGet:r,updateAgeOnHas:a,allowStale:h,dispose:f,disposeAfter:w,noDisposeOnSet:u,noUpdateTTL:m,maxSize:p=0,maxEntrySize:P=0,sizeCalculation:l,fetchMethod:y,memoMethod:c,noDeleteOnFetchRejection:S,noDeleteOnStaleGet:O,allowStaleOnFetchRejection:$,allowStaleOnFetchAbort:v,ignoreFetchAbort:L}=t;if(e!==0&&!E(e))throw new TypeError("max option must be a nonnegative integer");let T=e?gt(e):Array;if(!T)throw new Error("invalid max value: "+e);if(this.#n=e,this.#l=p,this.maxEntrySize=P||this.#l,this.sizeCalculation=l,this.sizeCalculation){if(!this.#l&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(c!==void 0&&typeof c!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#k=c,y!==void 0&&typeof y!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#x=y,this.#T=!!y,this.#o=new Map,this.#i=new Array(e).fill(void 0),this.#t=new Array(e).fill(void 0),this.#f=new T(e),this.#d=new T(e),this.#c=0,this.#a=0,this.#b=tt.create(e),this.#r=0,this.#w=0,typeof f=="function"&&(this.#e=f),typeof w=="function"?(this.#g=w,this.#h=[]):(this.#g=void 0,this.#h=void 0),this.#S=!!this.#e,this.#u=!!this.#g,this.noDisposeOnSet=!!u,this.noUpdateTTL=!!m,this.noDeleteOnFetchRejection=!!S,this.allowStaleOnFetchRejection=!!$,this.allowStaleOnFetchAbort=!!v,this.ignoreFetchAbort=!!L,this.maxEntrySize!==0){if(this.#l!==0&&!E(this.#l))throw new TypeError("maxSize must be a positive integer if specified");if(!E(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#N()}if(this.allowStale=!!h,this.noDeleteOnStaleGet=!!O,this.updateAgeOnGet=!!r,this.updateAgeOnHas=!!a,this.ttlResolution=E(n)||n===0?n:1,this.ttlAutopurge=!!o,this.ttl=i||0,this.ttl){if(!E(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#U()}if(this.#n===0&&this.ttl===0&&this.#l===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#n&&!this.#l){let U="LRU_CACHE_UNBOUNDED";Bt(U)&&(pt.add(U),mt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",U,s))}}getRemainingTTL(t){return this.#o.has(t)?1/0:0}#U(){let t=new R(this.#n),e=new R(this.#n);this.#p=t,this.#$=e,this.#D=(o,r,a=D.now())=>{if(e[o]=r!==0?a:0,t[o]=r,r!==0&&this.ttlAutopurge){let h=setTimeout(()=>{this.#m(o)&&this.#v(this.#i[o],"expire")},r+1);h.unref&&h.unref()}},this.#F=o=>{e[o]=t[o]!==0?D.now():0},this.#O=(o,r)=>{if(t[r]){let a=t[r],h=e[r];if(!a||!h)return;o.ttl=a,o.start=h,o.now=i||n();let f=o.now-h;o.remainingTTL=a-f}};let i=0,n=()=>{let o=D.now();if(this.ttlResolution>0){i=o;let r=setTimeout(()=>i=0,this.ttlResolution);r.unref&&r.unref()}return o};this.getRemainingTTL=o=>{let r=this.#o.get(o);if(r===void 0)return 0;let a=t[r],h=e[r];if(!a||!h)return 1/0;let f=(i||n())-h;return a-f},this.#m=o=>{let r=e[o],a=t[o];return!!a&&!!r&&(i||n())-r>a}}#F=()=>{};#O=()=>{};#D=()=>{};#m=()=>!1;#N(){let t=new R(this.#n);this.#w=0,this.#y=t,this.#_=e=>{this.#w-=t[e],t[e]=0},this.#R=(e,i,n,o)=>{if(this.#s(i))return 0;if(!E(n))if(o){if(typeof o!="function")throw new TypeError("sizeCalculation must be a function");if(n=o(i,e),!E(n))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return n},this.#L=(e,i,n)=>{if(t[e]=i,this.#l){let o=this.#l-t[e];for(;this.#w>o;)this.#C(!0)}this.#w+=t[e],n&&(n.entrySize=i,n.totalCalculatedSize=this.#w)}}#_=t=>{};#L=(t,e,i)=>{};#R=(t,e,i,n)=>{if(i||n)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#P({allowStale:t=this.allowStale}={}){if(this.#r)for(let e=this.#a;!(!this.#I(e)||((t||!this.#m(e))&&(yield e),e===this.#c));)e=this.#d[e]}*#A({allowStale:t=this.allowStale}={}){if(this.#r)for(let e=this.#c;!(!this.#I(e)||((t||!this.#m(e))&&(yield e),e===this.#a));)e=this.#f[e]}#I(t){return t!==void 0&&this.#o.get(this.#i[t])===t}*entries(){for(let t of this.#P())this.#t[t]!==void 0&&this.#i[t]!==void 0&&!this.#s(this.#t[t])&&(yield[this.#i[t],this.#t[t]])}*rentries(){for(let t of this.#A())this.#t[t]!==void 0&&this.#i[t]!==void 0&&!this.#s(this.#t[t])&&(yield[this.#i[t],this.#t[t]])}*keys(){for(let t of this.#P()){let e=this.#i[t];e!==void 0&&!this.#s(this.#t[t])&&(yield e)}}*rkeys(){for(let t of this.#A()){let e=this.#i[t];e!==void 0&&!this.#s(this.#t[t])&&(yield e)}}*values(){for(let t of this.#P())this.#t[t]!==void 0&&!this.#s(this.#t[t])&&(yield this.#t[t])}*rvalues(){for(let t of this.#A())this.#t[t]!==void 0&&!this.#s(this.#t[t])&&(yield this.#t[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,e={}){for(let i of this.#P()){let n=this.#t[i],o=this.#s(n)?n.__staleWhileFetching:n;if(o!==void 0&&t(o,this.#i[i],this))return this.get(this.#i[i],e)}}forEach(t,e=this){for(let i of this.#P()){let n=this.#t[i],o=this.#s(n)?n.__staleWhileFetching:n;o!==void 0&&t.call(e,o,this.#i[i],this)}}rforEach(t,e=this){for(let i of this.#A()){let n=this.#t[i],o=this.#s(n)?n.__staleWhileFetching:n;o!==void 0&&t.call(e,o,this.#i[i],this)}}purgeStale(){let t=!1;for(let e of this.#A({allowStale:!0}))this.#m(e)&&(this.#v(this.#i[e],"expire"),t=!0);return t}info(t){let e=this.#o.get(t);if(e===void 0)return;let i=this.#t[e],n=this.#s(i)?i.__staleWhileFetching:i;if(n===void 0)return;let o={value:n};if(this.#p&&this.#$){let r=this.#p[e],a=this.#$[e];if(r&&a){let h=r-(D.now()-a);o.ttl=h,o.start=Date.now()}}return this.#y&&(o.size=this.#y[e]),o}dump(){let t=[];for(let e of this.#P({allowStale:!0})){let i=this.#i[e],n=this.#t[e],o=this.#s(n)?n.__staleWhileFetching:n;if(o===void 0||i===void 0)continue;let r={value:o};if(this.#p&&this.#$){r.ttl=this.#p[e];let a=D.now()-this.#$[e];r.start=Math.floor(Date.now()-a)}this.#y&&(r.size=this.#y[e]),t.unshift([i,r])}return t}load(t){this.clear();for(let[e,i]of t){if(i.start){let n=Date.now()-i.start;i.start=D.now()-n}this.set(e,i.value,i)}}set(t,e,i={}){if(e===void 0)return this.delete(t),this;let{ttl:n=this.ttl,start:o,noDisposeOnSet:r=this.noDisposeOnSet,sizeCalculation:a=this.sizeCalculation,status:h}=i,{noUpdateTTL:f=this.noUpdateTTL}=i,w=this.#R(t,e,i.size||0,a);if(this.maxEntrySize&&w>this.maxEntrySize)return h&&(h.set="miss",h.maxEntrySizeExceeded=!0),this.#v(t,"set"),this;let u=this.#r===0?void 0:this.#o.get(t);if(u===void 0)u=this.#r===0?this.#a:this.#b.length!==0?this.#b.pop():this.#r===this.#n?this.#C(!1):this.#r,this.#i[u]=t,this.#t[u]=e,this.#o.set(t,u),this.#f[this.#a]=u,this.#d[u]=this.#a,this.#a=u,this.#r++,this.#L(u,w,h),h&&(h.set="add"),f=!1;else{this.#E(u);let m=this.#t[u];if(e!==m){if(this.#T&&this.#s(m)){m.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:p}=m;p!==void 0&&!r&&(this.#S&&this.#e?.(p,t,"set"),this.#u&&this.#h?.push([p,t,"set"]))}else r||(this.#S&&this.#e?.(m,t,"set"),this.#u&&this.#h?.push([m,t,"set"]));if(this.#_(u),this.#L(u,w,h),this.#t[u]=e,h){h.set="replace";let p=m&&this.#s(m)?m.__staleWhileFetching:m;p!==void 0&&(h.oldValue=p)}}else h&&(h.set="update")}if(n!==0&&!this.#p&&this.#U(),this.#p&&(f||this.#D(u,n,o),h&&this.#O(h,u)),!r&&this.#u&&this.#h){let m=this.#h,p;for(;p=m?.shift();)this.#g?.(...p)}return this}pop(){try{for(;this.#r;){let t=this.#t[this.#c];if(this.#C(!0),this.#s(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#u&&this.#h){let t=this.#h,e;for(;e=t?.shift();)this.#g?.(...e)}}}#C(t){let e=this.#c,i=this.#i[e],n=this.#t[e];return this.#T&&this.#s(n)?n.__abortController.abort(new Error("evicted")):(this.#S||this.#u)&&(this.#S&&this.#e?.(n,i,"evict"),this.#u&&this.#h?.push([n,i,"evict"])),this.#_(e),t&&(this.#i[e]=void 0,this.#t[e]=void 0,this.#b.push(e)),this.#r===1?(this.#c=this.#a=0,this.#b.length=0):this.#c=this.#f[e],this.#o.delete(i),this.#r--,e}has(t,e={}){let{updateAgeOnHas:i=this.updateAgeOnHas,status:n}=e,o=this.#o.get(t);if(o!==void 0){let r=this.#t[o];if(this.#s(r)&&r.__staleWhileFetching===void 0)return!1;if(this.#m(o))n&&(n.has="stale",this.#O(n,o));else return i&&this.#F(o),n&&(n.has="hit",this.#O(n,o)),!0}else n&&(n.has="miss");return!1}peek(t,e={}){let{allowStale:i=this.allowStale}=e,n=this.#o.get(t);if(n===void 0||!i&&this.#m(n))return;let o=this.#t[n];return this.#s(o)?o.__staleWhileFetching:o}#W(t,e,i,n){let o=e===void 0?void 0:this.#t[e];if(this.#s(o))return o;let r=new G,{signal:a}=i;a?.addEventListener("abort",()=>r.abort(a.reason),{signal:r.signal});let h={signal:r.signal,options:i,context:n},f=(l,y=!1)=>{let{aborted:c}=r.signal,S=i.ignoreFetchAbort&&l!==void 0;if(i.status&&(c&&!y?(i.status.fetchAborted=!0,i.status.fetchError=r.signal.reason,S&&(i.status.fetchAbortIgnored=!0)):i.status.fetchResolved=!0),c&&!S&&!y)return u(r.signal.reason);let O=p;return this.#t[e]===p&&(l===void 0?O.__staleWhileFetching?this.#t[e]=O.__staleWhileFetching:this.#v(t,"fetch"):(i.status&&(i.status.fetchUpdated=!0),this.set(t,l,h.options))),l},w=l=>(i.status&&(i.status.fetchRejected=!0,i.status.fetchError=l),u(l)),u=l=>{let{aborted:y}=r.signal,c=y&&i.allowStaleOnFetchAbort,S=c||i.allowStaleOnFetchRejection,O=S||i.noDeleteOnFetchRejection,$=p;if(this.#t[e]===p&&(!O||$.__staleWhileFetching===void 0?this.#v(t,"fetch"):c||(this.#t[e]=$.__staleWhileFetching)),S)return i.status&&$.__staleWhileFetching!==void 0&&(i.status.returnedStale=!0),$.__staleWhileFetching;if($.__returned===$)throw l},m=(l,y)=>{let c=this.#x?.(t,o,h);c&&c instanceof Promise&&c.then(S=>l(S===void 0?void 0:S),y),r.signal.addEventListener("abort",()=>{(!i.ignoreFetchAbort||i.allowStaleOnFetchAbort)&&(l(void 0),i.allowStaleOnFetchAbort&&(l=S=>f(S,!0)))})};i.status&&(i.status.fetchDispatched=!0);let p=new Promise(m).then(f,w),P=Object.assign(p,{__abortController:r,__staleWhileFetching:o,__returned:void 0});return e===void 0?(this.set(t,P,{...h.options,status:void 0}),e=this.#o.get(t)):this.#t[e]=P,P}#s(t){if(!this.#T)return!1;let e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty("__staleWhileFetching")&&e.__abortController instanceof G}async fetch(t,e={}){let{allowStale:i=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,ttl:r=this.ttl,noDisposeOnSet:a=this.noDisposeOnSet,size:h=0,sizeCalculation:f=this.sizeCalculation,noUpdateTTL:w=this.noUpdateTTL,noDeleteOnFetchRejection:u=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:m=this.allowStaleOnFetchRejection,ignoreFetchAbort:p=this.ignoreFetchAbort,allowStaleOnFetchAbort:P=this.allowStaleOnFetchAbort,context:l,forceRefresh:y=!1,status:c,signal:S}=e;if(!this.#T)return c&&(c.fetch="get"),this.get(t,{allowStale:i,updateAgeOnGet:n,noDeleteOnStaleGet:o,status:c});let O={allowStale:i,updateAgeOnGet:n,noDeleteOnStaleGet:o,ttl:r,noDisposeOnSet:a,size:h,sizeCalculation:f,noUpdateTTL:w,noDeleteOnFetchRejection:u,allowStaleOnFetchRejection:m,allowStaleOnFetchAbort:P,ignoreFetchAbort:p,status:c,signal:S},$=this.#o.get(t);if($===void 0){c&&(c.fetch="miss");let v=this.#W(t,$,O,l);return v.__returned=v}else{let v=this.#t[$];if(this.#s(v)){let ft=i&&v.__staleWhileFetching!==void 0;return c&&(c.fetch="inflight",ft&&(c.returnedStale=!0)),ft?v.__staleWhileFetching:v.__returned=v}let L=this.#m($);if(!y&&!L)return c&&(c.fetch="hit"),this.#E($),n&&this.#F($),c&&this.#O(c,$),v;let T=this.#W(t,$,O,l),Q=T.__staleWhileFetching!==void 0&&i;return c&&(c.fetch=L?"stale":"refresh",Q&&L&&(c.returnedStale=!0)),Q?T.__staleWhileFetching:T.__returned=T}}async forceFetch(t,e={}){let i=await this.fetch(t,e);if(i===void 0)throw new Error("fetch() returned undefined");return i}memo(t,e={}){let i=this.#k;if(!i)throw new Error("no memoMethod provided to constructor");let{context:n,forceRefresh:o,...r}=e,a=this.get(t,r);if(!o&&a!==void 0)return a;let h=i(t,a,{options:r,context:n});return this.set(t,h,r),h}get(t,e={}){let{allowStale:i=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,status:r}=e,a=this.#o.get(t);if(a!==void 0){let h=this.#t[a],f=this.#s(h);return r&&this.#O(r,a),this.#m(a)?(r&&(r.get="stale"),f?(r&&i&&h.__staleWhileFetching!==void 0&&(r.returnedStale=!0),i?h.__staleWhileFetching:void 0):(o||this.#v(t,"expire"),r&&i&&(r.returnedStale=!0),i?h:void 0)):(r&&(r.get="hit"),f?h.__staleWhileFetching:(this.#E(a),n&&this.#F(a),h))}else r&&(r.get="miss")}#z(t,e){this.#d[e]=t,this.#f[t]=e}#E(t){t!==this.#a&&(t===this.#c?this.#c=this.#f[t]:this.#z(this.#d[t],this.#f[t]),this.#z(this.#a,t),this.#a=t)}delete(t){return this.#v(t,"delete")}#v(t,e){let i=!1;if(this.#r!==0){let n=this.#o.get(t);if(n!==void 0)if(i=!0,this.#r===1)this.#M(e);else{this.#_(n);let o=this.#t[n];if(this.#s(o)?o.__abortController.abort(new Error("deleted")):(this.#S||this.#u)&&(this.#S&&this.#e?.(o,t,e),this.#u&&this.#h?.push([o,t,e])),this.#o.delete(t),this.#i[n]=void 0,this.#t[n]=void 0,n===this.#a)this.#a=this.#d[n];else if(n===this.#c)this.#c=this.#f[n];else{let r=this.#d[n];this.#f[r]=this.#f[n];let a=this.#f[n];this.#d[a]=this.#d[n]}this.#r--,this.#b.push(n)}}if(this.#u&&this.#h?.length){let n=this.#h,o;for(;o=n?.shift();)this.#g?.(...o)}return i}clear(){return this.#M("delete")}#M(t){for(let e of this.#A({allowStale:!0})){let i=this.#t[e];if(this.#s(i))i.__abortController.abort(new Error("deleted"));else{let n=this.#i[e];this.#S&&this.#e?.(i,n,t),this.#u&&this.#h?.push([i,n,t])}}if(this.#o.clear(),this.#t.fill(void 0),this.#i.fill(void 0),this.#p&&this.#$&&(this.#p.fill(0),this.#$.fill(0)),this.#y&&this.#y.fill(0),this.#c=0,this.#a=0,this.#b.length=0,this.#w=0,this.#r=0,this.#u&&this.#h){let e=this.#h,i;for(;i=e?.shift();)this.#g?.(...i)}}};B.LRUCache=et});var $t=M((Ae,yt)=>{"use strict";var d=(...s)=>s.every(t=>t)?s.join(""):"",b=s=>s?encodeURIComponent(s):"",bt=s=>s.toLowerCase().replace(/^\W+/g,"").replace(/(?<!\W)\W+$/,"").replace(/\//g,"").replace(/\W+/g,"-"),Vt={sshtemplate:({domain:s,user:t,project:e,committish:i})=>`git@${s}:${t}/${e}.git${d("#",i)}`,sshurltemplate:({domain:s,user:t,project:e,committish:i})=>`git+ssh://git@${s}/${t}/${e}.git${d("#",i)}`,edittemplate:({domain:s,user:t,project:e,committish:i,editpath:n,path:o})=>`https://${s}/${t}/${e}${d("/",n,"/",b(i||"HEAD"),"/",o)}`,browsetemplate:({domain:s,user:t,project:e,committish:i,treepath:n})=>`https://${s}/${t}/${e}${d("/",n,"/",b(i))}`,browsetreetemplate:({domain:s,user:t,project:e,committish:i,treepath:n,path:o,fragment:r,hashformat:a})=>`https://${s}/${t}/${e}/${n}/${b(i||"HEAD")}/${o}${d("#",a(r||""))}`,browseblobtemplate:({domain:s,user:t,project:e,committish:i,blobpath:n,path:o,fragment:r,hashformat:a})=>`https://${s}/${t}/${e}/${n}/${b(i||"HEAD")}/${o}${d("#",a(r||""))}`,docstemplate:({domain:s,user:t,project:e,treepath:i,committish:n})=>`https://${s}/${t}/${e}${d("/",i,"/",b(n))}#readme`,httpstemplate:({auth:s,domain:t,user:e,project:i,committish:n})=>`git+https://${d(s,"@")}${t}/${e}/${i}.git${d("#",n)}`,filetemplate:({domain:s,user:t,project:e,committish:i,path:n})=>`https://${s}/${t}/${e}/raw/${b(i||"HEAD")}/${n}`,shortcuttemplate:({type:s,user:t,project:e,committish:i})=>`${s}:${t}/${e}${d("#",i)}`,pathtemplate:({user:s,project:t,committish:e})=>`${s}/${t}${d("#",e)}`,bugstemplate:({domain:s,user:t,project:e})=>`https://${s}/${t}/${e}/issues`,hashformat:bt},x={};x.github={protocols:["git:","http:","git+ssh:","git+https:","ssh:","https:"],domain:"github.com",treepath:"tree",blobpath:"blob",editpath:"edit",filetemplate:({auth:s,user:t,project:e,committish:i,path:n})=>`https://${d(s,"@")}raw.githubusercontent.com/${t}/${e}/${b(i||"HEAD")}/${n}`,gittemplate:({auth:s,domain:t,user:e,project:i,committish:n})=>`git://${d(s,"@")}${t}/${e}/${i}.git${d("#",n)}`,tarballtemplate:({domain:s,user:t,project:e,committish:i})=>`https://codeload.${s}/${t}/${e}/tar.gz/${b(i||"HEAD")}`,extract:s=>{let[,t,e,i,n]=s.pathname.split("/",5);if(!(i&&i!=="tree")&&(i||(n=s.hash.slice(1)),e&&e.endsWith(".git")&&(e=e.slice(0,-4)),!(!t||!e)))return{user:t,project:e,committish:n}}};x.bitbucket={protocols:["git+ssh:","git+https:","ssh:","https:"],domain:"bitbucket.org",treepath:"src",blobpath:"src",editpath:"?mode=edit",edittemplate:({domain:s,user:t,project:e,committish:i,treepath:n,path:o,editpath:r})=>`https://${s}/${t}/${e}${d("/",n,"/",b(i||"HEAD"),"/",o,r)}`,tarballtemplate:({domain:s,user:t,project:e,committish:i})=>`https://${s}/${t}/${e}/get/${b(i||"HEAD")}.tar.gz`,extract:s=>{let[,t,e,i]=s.pathname.split("/",4);if(!["get"].includes(i)&&(e&&e.endsWith(".git")&&(e=e.slice(0,-4)),!(!t||!e)))return{user:t,project:e,committish:s.hash.slice(1)}}};x.gitlab={protocols:["git+ssh:","git+https:","ssh:","https:"],domain:"gitlab.com",treepath:"tree",blobpath:"tree",editpath:"-/edit",httpstemplate:({auth:s,domain:t,user:e,project:i,committish:n})=>`git+https://${d(s,"@")}${t}/${e}/${i}.git${d("#",n)}`,tarballtemplate:({domain:s,user:t,project:e,committish:i})=>`https://${s}/${t}/${e}/repository/archive.tar.gz?ref=${b(i||"HEAD")}`,extract:s=>{let t=s.pathname.slice(1);if(t.includes("/-/")||t.includes("/archive.tar.gz"))return;let e=t.split("/"),i=e.pop();i.endsWith(".git")&&(i=i.slice(0,-4));let n=e.join("/");if(!(!n||!i))return{user:n,project:i,committish:s.hash.slice(1)}}};x.gist={protocols:["git:","git+ssh:","git+https:","ssh:","https:"],domain:"gist.github.com",editpath:"edit",sshtemplate:({domain:s,project:t,committish:e})=>`git@${s}:${t}.git${d("#",e)}`,sshurltemplate:({domain:s,project:t,committish:e})=>`git+ssh://git@${s}/${t}.git${d("#",e)}`,edittemplate:({domain:s,user:t,project:e,committish:i,editpath:n})=>`https://${s}/${t}/${e}${d("/",b(i))}/${n}`,browsetemplate:({domain:s,project:t,committish:e})=>`https://${s}/${t}${d("/",b(e))}`,browsetreetemplate:({domain:s,project:t,committish:e,path:i,hashformat:n})=>`https://${s}/${t}${d("/",b(e))}${d("#",n(i))}`,browseblobtemplate:({domain:s,project:t,committish:e,path:i,hashformat:n})=>`https://${s}/${t}${d("/",b(e))}${d("#",n(i))}`,docstemplate:({domain:s,project:t,committish:e})=>`https://${s}/${t}${d("/",b(e))}`,httpstemplate:({domain:s,project:t,committish:e})=>`git+https://${s}/${t}.git${d("#",e)}`,filetemplate:({user:s,project:t,committish:e,path:i})=>`https://gist.githubusercontent.com/${s}/${t}/raw${d("/",b(e))}/${i}`,shortcuttemplate:({type:s,project:t,committish:e})=>`${s}:${t}${d("#",e)}`,pathtemplate:({project:s,committish:t})=>`${s}${d("#",t)}`,bugstemplate:({domain:s,project:t})=>`https://${s}/${t}`,gittemplate:({domain:s,project:t,committish:e})=>`git://${s}/${t}.git${d("#",e)}`,tarballtemplate:({project:s,committish:t})=>`https://codeload.github.com/gist/${s}/tar.gz/${b(t||"HEAD")}`,extract:s=>{let[,t,e,i]=s.pathname.split("/",4);if(i!=="raw"){if(!e){if(!t)return;e=t,t=null}return e.endsWith(".git")&&(e=e.slice(0,-4)),{user:t,project:e,committish:s.hash.slice(1)}}},hashformat:function(s){return s&&"file-"+bt(s)}};x.sourcehut={protocols:["git+ssh:","https:"],domain:"git.sr.ht",treepath:"tree",blobpath:"tree",filetemplate:({domain:s,user:t,project:e,committish:i,path:n})=>`https://${s}/${t}/${e}/blob/${b(i)||"HEAD"}/${n}`,httpstemplate:({domain:s,user:t,project:e,committish:i})=>`https://${s}/${t}/${e}.git${d("#",i)}`,tarballtemplate:({domain:s,user:t,project:e,committish:i})=>`https://${s}/${t}/${e}/archive/${b(i)||"HEAD"}.tar.gz`,bugstemplate:()=>null,extract:s=>{let[,t,e,i]=s.pathname.split("/",4);if(!["archive"].includes(i)&&(e&&e.endsWith(".git")&&(e=e.slice(0,-4)),!(!t||!e)))return{user:t,project:e,committish:s.hash.slice(1)}}};for(let[s,t]of Object.entries(x))x[s]=Object.assign({},Vt,t);yt.exports=x});var it=M((ve,Pt)=>{var Yt=A("url"),st=(s,t,e)=>{let i=s.indexOf(e);return s.lastIndexOf(t,i>-1?i:1/0)},St=s=>{try{return new Yt.URL(s)}catch{}},qt=(s,t)=>{let e=s.indexOf(":"),i=s.slice(0,e+1);if(Object.prototype.hasOwnProperty.call(t,i))return s;let n=s.indexOf("@");return n>-1?n>e?`git+ssh://${s}`:s:s.indexOf("//")===e+1?s:`${s.slice(0,e+1)}//${s.slice(e+1)}`},Jt=s=>{let t=st(s,"@","#"),e=st(s,":","#");return e>t&&(s=s.slice(0,e)+"/"+s.slice(e+1)),st(s,":","#")===-1&&s.indexOf("//")===-1&&(s=`git+ssh://${s}`),s};Pt.exports=(s,t)=>{let e=t?qt(s,t):s;return St(e)||St(Jt(e))}});var vt=M((Oe,At)=>{"use strict";var Kt=it(),Xt=s=>{let t=s.indexOf("#"),e=s.indexOf("/"),i=s.indexOf("/",e+1),n=s.indexOf(":"),o=/\s/.exec(s),r=s.indexOf("@"),a=!o||t>-1&&o.index>t,h=r===-1||t>-1&&r>t,f=n===-1||t>-1&&n>t,w=i===-1||t>-1&&i>t,u=e>0,m=t>-1?s[t-1]!=="/":!s.endsWith("/"),p=!s.startsWith(".");return a&&u&&m&&p&&h&&f&&w};At.exports=(s,t,{gitHosts:e,protocols:i})=>{if(!s)return;let n=Xt(s)?`github:${s}`:s,o=Kt(n,i);if(!o)return;let r=e.byShortcut[o.protocol],a=e.byDomain[o.hostname.startsWith("www.")?o.hostname.slice(4):o.hostname],h=r||a;if(!h)return;let f=e[r||a],w=null;i[o.protocol]?.auth&&(o.username||o.password)&&(w=`${o.username}${o.password?":"+o.password:""}`);let u=null,m=null,p=null,P=null;try{if(r){let l=o.pathname.startsWith("/")?o.pathname.slice(1):o.pathname,y=l.indexOf("@");y>-1&&(l=l.slice(y+1));let c=l.lastIndexOf("/");c>-1?(m=decodeURIComponent(l.slice(0,c)),m||(m=null),p=decodeURIComponent(l.slice(c+1))):p=decodeURIComponent(l),p.endsWith(".git")&&(p=p.slice(0,-4)),o.hash&&(u=decodeURIComponent(o.hash.slice(1))),P="shortcut"}else{if(!f.protocols.includes(o.protocol))return;let l=f.extract(o);if(!l)return;m=l.user&&decodeURIComponent(l.user),p=decodeURIComponent(l.project),u=decodeURIComponent(l.committish),P=i[o.protocol]?.name||o.protocol.slice(0,-1)}}catch(l){if(l instanceof URIError)return;throw l}return[h,m,w,p,u,P,t]}});var Tt=M((Te,Ot)=>{"use strict";var{LRUCache:Qt}=wt(),Zt=$t(),te=vt(),ee=it(),nt=new Qt({max:1e3}),V=class s{constructor(t,e,i,n,o,r,a={}){Object.assign(this,s.#n[t],{type:t,user:e,auth:i,project:n,committish:o,default:r,opts:a})}static#n={byShortcut:{},byDomain:{}};static#l={"git+ssh:":{name:"sshurl"},"ssh:":{name:"sshurl"},"git+https:":{name:"https",auth:!0},"git:":{auth:!0},"http:":{auth:!0},"https:":{auth:!0},"git+http:":{auth:!0}};static addHost(t,e){s.#n[t]=e,s.#n.byDomain[e.domain]=t,s.#n.byShortcut[`${t}:`]=t,s.#l[`${t}:`]={name:t}}static fromUrl(t,e){if(typeof t!="string")return;let i=t+JSON.stringify(e||{});if(!nt.has(i)){let n=te(t,e,{gitHosts:s.#n,protocols:s.#l});nt.set(i,n?new s(...n):void 0)}return nt.get(i)}static parseUrl(t){return ee(t)}#e(t,e){if(typeof t!="function")return null;let i={...this,...this.opts,...e};i.path||(i.path=""),i.path.startsWith("/")&&(i.path=i.path.slice(1)),i.noCommittish&&(i.committish=null);let n=t(i);return i.noGitPlus&&n.startsWith("git+")?n.slice(4):n}hash(){return this.committish?`#${this.committish}`:""}ssh(t){return this.#e(this.sshtemplate,t)}sshurl(t){return this.#e(this.sshurltemplate,t)}browse(t,...e){return typeof t!="string"?this.#e(this.browsetemplate,t):typeof e[0]!="string"?this.#e(this.browsetreetemplate,{...e[0],path:t}):this.#e(this.browsetreetemplate,{...e[1],fragment:e[0],path:t})}browseFile(t,...e){return typeof e[0]!="string"?this.#e(this.browseblobtemplate,{...e[0],path:t}):this.#e(this.browseblobtemplate,{...e[1],fragment:e[0],path:t})}docs(t){return this.#e(this.docstemplate,t)}bugs(t){return this.#e(this.bugstemplate,t)}https(t){return this.#e(this.httpstemplate,t)}git(t){return this.#e(this.gittemplate,t)}shortcut(t){return this.#e(this.shortcuttemplate,t)}path(t){return this.#e(this.pathtemplate,t)}tarball(t){return this.#e(this.tarballtemplate,{...t,noCommittish:!1})}file(t,e){return this.#e(this.filetemplate,{...e,path:t})}edit(t,e){return this.#e(this.edittemplate,{...e,path:t})}getDefaultRepresentation(){return this.default}toString(t){return this.default&&typeof this[this.default]=="function"?this[this.default](t):this.sshurl(t)}};for(let[s,t]of Object.entries(Zt))V.addHost(s,t);Ot.exports=V});var we={};H(we,{default:()=>ge});var Rt=A("@yarnpkg/cli"),z=A("@yarnpkg/core"),_=A("clipanion");var g=A("@yarnpkg/core"),F=A("@yarnpkg/fslib"),Ct=Ht(Tt());var ot={};H(ot,{_getYarnStateAliases:()=>Et,getFs:()=>ne,getPackagePath:()=>se});var C=A("@yarnpkg/core"),k=A("@yarnpkg/fslib"),Ft=A("@yarnpkg/parsers");var I=()=>({os:[process.platform],cpu:[process.arch],libc:[]});var se=async(s,t)=>{if(await ie(s),!C.structUtils.isPackageCompatible(t,I()))return null;let e=C.structUtils.convertPackageToLocator(t),i=C.structUtils.stringifyLocator(e),n=Y[i]||_t[i];if(!n)return null;let o=n.locations[0];return o?k.ppath.join(s.cwd,o):s.cwd},Y,_t,ie=async s=>{if(!Y){let t=k.ppath.join(s.configuration.projectCwd,k.Filename.nodeModules,".yarn-state.yml");Y=(0,Ft.parseSyml)(await k.xfs.readFilePromise(t,"utf8")),_t=Et(Y)}},ne=()=>k.xfs,Et=s=>Object.entries(s).reduce((t,[e,i])=>{if(!i.aliases)return t;let n=C.structUtils.parseLocator(e);for(let o of i.aliases){let r=C.structUtils.makeLocator(n,o),a=C.structUtils.stringifyLocator(r);t[a]=i}return t},{});var ht={};H(ht,{getFs:()=>ae,getPackagePath:()=>oe});var q=A("@yarnpkg/core"),xt=A("@yarnpkg/fslib"),J=A("@yarnpkg/libzip"),kt=A("@yarnpkg/plugin-pnp");var oe=async(s,t)=>{if(re(s),!q.structUtils.isPackageCompatible(t,I()))return null;let e=q.structUtils.convertPackageToLocator(t),i={name:q.structUtils.stringifyIdent(e),reference:e.reference.startsWith("virtual:")?e.reference.split("#")[1]:e.reference},n=rt.getPackageInformation(i);if(!n)return null;let{packageLocation:o}=n;return o},rt,re=s=>{rt||(rt=module.require((0,kt.getPnpPath)(s).cjs))},ae=()=>(he(),at),at,he=()=>{at||(at=new xt.VirtualFS({baseFs:new J.ZipOpenFS({libzip:(0,J.getLibzipSync)(),readOnlyArchives:!0})}))};var lt={};H(lt,{getFs:()=>ce,getPackagePath:()=>le});var N=A("@yarnpkg/core"),W=A("@yarnpkg/fslib");var le=async(s,t)=>{if(!N.structUtils.isPackageCompatible(t,I()))return null;let e=N.structUtils.convertPackageToLocator(t),i=N.structUtils.slugifyLocator(e),n=N.structUtils.stringifyIdent(e),o=s.tryWorkspaceByLocator(e);return o?o.cwd:W.ppath.join(s.configuration.projectCwd,W.Filename.nodeModules,".store",i,W.Filename.nodeModules,n)},ce=()=>W.xfs;var Lt=s=>{switch(s){case"pnp":return ht;case"node-modules":return ot;case"pnpm":return lt;default:throw new Error("Unsupported linker")}};var Je=F.npath.basename(__dirname)==="@yarnpkg"?F.ppath.join(F.npath.toPortablePath(__dirname),"../.."):F.ppath.join(F.npath.toPortablePath(__dirname),".."),Wt=async(s,t,e,i,n)=>{let o={},r={children:o},a=await fe(s,e,i),h=Lt(s.configuration.get("nodeLinker")),f=h.getFs();for(let[w,u]of a.entries()){let m=await h.getPackagePath(s,u);if(m===null)continue;let p=JSON.parse(await f.readFilePromise(F.ppath.join(m,F.Filename.manifest),"utf8")),{license:P,url:l,vendorName:y,vendorUrl:c}=de(p);o[P]||(o[P]={value:g.formatUtils.tuple(g.formatUtils.Type.NO_HINT,P),children:{}});let S=g.structUtils.convertPackageToLocator(u),O=g.formatUtils.tuple(g.formatUtils.Type.DEPENDENT,{locator:S,descriptor:w}),$=n?{}:{...l?{url:{value:g.formatUtils.tuple(g.formatUtils.Type.NO_HINT,ct("URL",l,t))}}:{},...y?{vendorName:{value:g.formatUtils.tuple(g.formatUtils.Type.NO_HINT,ct("VendorName",y,t))}}:{},...c?{vendorUrl:{value:g.formatUtils.tuple(g.formatUtils.Type.NO_HINT,ct("VendorUrl",c,t))}}:{}},v={value:O,children:$},L=g.structUtils.stringifyLocator(S),T=o[P];if(T){let U=T.children;U[L]=v}}return r},fe=async(s,t,e)=>{let i=new Map,n;if(t){if(e){for(let h of s.workspaces)h.manifest.devDependencies.clear();let a=await g.Cache.find(s.configuration);await s.resolveEverything({report:new g.ThrowReport,cache:a})}n=s.storedDescriptors.values()}else n=s.workspaces.flatMap(a=>{let h=[a.anchoredDescriptor];for(let[f,w]of a.anchoredPackage.dependencies.entries())e&&a.manifest.devDependencies.has(f)||h.push(w);return h});let o=g.miscUtils.sortMap(n,[a=>g.structUtils.stringifyIdent(a),a=>g.structUtils.isVirtualDescriptor(a)?"0":"1",a=>a.range]),r=new Set;for(let a of o.values()){let h=s.storedResolutions.get(a.descriptorHash);if(!h)continue;let f=s.storedPackages.get(h);if(!f)continue;let{descriptorHash:w}=g.structUtils.isVirtualDescriptor(a)?g.structUtils.devirtualizeDescriptor(a):a;r.has(w)||(r.add(w),i.set(a,f))}return i},Ut=async(s,t,e,i)=>{if(!t.length)return;let n=new Set(t.map(r=>s.getWorkspaceByIdent(g.structUtils.parseIdent(r))));if(e)for(let r of n)for(let a of i?["dependencies"]:g.Manifest.hardDependencies)for(let h of r.manifest.getForScope(a).values()){let f=s.tryWorkspaceByDescriptor(h);f!==null&&n.add(f)}for(let r of s.workspaces)n.has(r)||(r.manifest.installConfig=r.manifest.installConfig||{},r.manifest.installConfig.selfReferences=!1,r.manifest.dependencies.clear(),r.manifest.devDependencies.clear(),r.manifest.peerDependencies.clear());s.workspaces=[...n];let o=await g.Cache.find(s.configuration);await s.resolveEverything({report:new g.ThrowReport,cache:o})};function ue(s){let t={},e=s.match(/^([^(<]+)/);if(e){let o=e[0].trim();o&&(t.name=o)}let i=s.match(/<([^>]+)>/);i&&(t.email=i[1]);let n=s.match(/\(([^)]+)\)/);return n&&(t.url=n[1]),t}var de=s=>{let{license:t,licenses:e,repository:i,homepage:n,author:o}=s,r=typeof o=="string"?ue(o):o;return{license:(()=>{if(t)return K(t);if(e){if(!Array.isArray(e))return K(e);if(e.length===1&&e[0])return K(e[0]);if(e.length>1)return`(${e.map(K).join(" OR ")})`}return Dt})(),url:pe(i)||n,vendorName:r?.name,vendorUrl:n||r?.url}},Dt="UNKNOWN",K=s=>(typeof s!="string"?s.type:s)||Dt,pe=s=>{let t=typeof s=="string"?s:s?.url;if(!t)return t;let e=Ct.fromUrl(t);return!e||e.getDefaultRepresentation()!=="shortcut"?t:e.https()},ct=(s,t,e)=>e?t:`${s}: ${t}`;var X=class extends _.Command{static paths=[["licenses","list"]];static usage=_.Command.Usage({description:"display the licenses for all packages in the project",details:`
      This command prints the license information for packages in the project. By default, only direct dependencies are listed.

      If \`-R,--recursive\` is set, the listing will include transitive dependencies (dependencies of direct dependencies).

      If \`--production\` is set, the listing will exclude development dependencies.

      If \`--focus\` is passed, the listing will only include dependencies of the specified workspaces.
    `,examples:[["List all licenses of direct dependencies","$0 licenses list"],["List all licenses of direct and transitive dependencies","$0 licenses list --recursive"],["List all licenses of production dependencies only","$0 licenses list --production"],["List all licenses for specified workspaces only","$0 licenses list --focus <workspace-a> --focus <workspace-b>"]]});recursive=_.Option.Boolean("-R,--recursive",!1,{description:"Include transitive dependencies (dependencies of direct dependencies)"});production=_.Option.Boolean("--production",!1,{description:"Exclude development dependencies"});json=_.Option.Boolean("--json",!1,{description:"Format output as JSON"});excludeMetadata=_.Option.Boolean("--exclude-metadata",!1,{description:"Exclude dependency metadata from output"});focus=_.Option.Array("--focus",[],{description:"Focus on one or more workspaces"});async execute(){let t=await z.Configuration.find(this.context.cwd,this.context.plugins),{project:e,workspace:i}=await z.Project.find(t,this.context.cwd);if(!i)throw new Rt.WorkspaceRequiredError(e.cwd,this.context.cwd);await e.restoreInstallState(),await Ut(e,this.focus,this.recursive,this.production);let n=await Wt(e,this.json,this.recursive,this.production,this.excludeMetadata);z.treeUtils.emitTree(n,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};var me={commands:[X]},ge=me;return Gt(we);})();
return plugin;
}
};


================================================
FILE: .yarn/releases/yarn-4.12.0.cjs
================================================
#!/usr/bin/env node
/* eslint-disable */
//prettier-ignore
(()=>{var xGe=Object.create;var mU=Object.defineProperty;var kGe=Object.getOwnPropertyDescriptor;var QGe=Object.getOwnPropertyNames;var TGe=Object.getPrototypeOf,RGe=Object.prototype.hasOwnProperty;var Ie=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var Xe=(t,e)=>()=>(t&&(e=t(t=0)),e);var _=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Vt=(t,e)=>{for(var r in e)mU(t,r,{get:e[r],enumerable:!0})},FGe=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of QGe(e))!RGe.call(t,a)&&a!==r&&mU(t,a,{get:()=>e[a],enumerable:!(s=kGe(e,a))||s.enumerable});return t};var ut=(t,e,r)=>(r=t!=null?xGe(TGe(t)):{},FGe(e||!t||!t.__esModule?mU(r,"default",{value:t,enumerable:!0}):r,t));var fi={};Vt(fi,{SAFE_TIME:()=>WZ,S_IFDIR:()=>JP,S_IFLNK:()=>KP,S_IFMT:()=>Mf,S_IFREG:()=>N2});var Mf,JP,N2,KP,WZ,YZ=Xe(()=>{Mf=61440,JP=16384,N2=32768,KP=40960,WZ=456789e3});var or={};Vt(or,{EBADF:()=>Mo,EBUSY:()=>NGe,EEXIST:()=>HGe,EINVAL:()=>LGe,EISDIR:()=>_Ge,ENOENT:()=>MGe,ENOSYS:()=>OGe,ENOTDIR:()=>UGe,ENOTEMPTY:()=>GGe,EOPNOTSUPP:()=>qGe,EROFS:()=>jGe,ERR_DIR_CLOSED:()=>yU});function Cc(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function NGe(t){return Cc("EBUSY",t)}function OGe(t,e){return Cc("ENOSYS",`${t}, ${e}`)}function LGe(t){return Cc("EINVAL",`invalid argument, ${t}`)}function Mo(t){return Cc("EBADF",`bad file descriptor, ${t}`)}function MGe(t){return Cc("ENOENT",`no such file or directory, ${t}`)}function UGe(t){return Cc("ENOTDIR",`not a directory, ${t}`)}function _Ge(t){return Cc("EISDIR",`illegal operation on a directory, ${t}`)}function HGe(t){return Cc("EEXIST",`file already exists, ${t}`)}function jGe(t){return Cc("EROFS",`read-only filesystem, ${t}`)}function GGe(t){return Cc("ENOTEMPTY",`directory not empty, ${t}`)}function qGe(t){return Cc("EOPNOTSUPP",`operation not supported, ${t}`)}function yU(){return Cc("ERR_DIR_CLOSED","Directory handle was closed")}var zP=Xe(()=>{});var $a={};Vt($a,{BigIntStatsEntry:()=>iE,DEFAULT_MODE:()=>CU,DirEntry:()=>EU,StatEntry:()=>nE,areStatsEqual:()=>wU,clearStats:()=>XP,convertToBigIntStats:()=>YGe,makeDefaultStats:()=>VZ,makeEmptyStats:()=>WGe});function VZ(){return new nE}function WGe(){return XP(VZ())}function XP(t){for(let e in t)if(Object.hasOwn(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):IU.types.isDate(r)&&(t[e]=new Date(0))}return t}function YGe(t){let e=new iE;for(let r in t)if(Object.hasOwn(t,r)){let s=t[r];typeof s=="number"?e[r]=BigInt(s):IU.types.isDate(s)&&(e[r]=new Date(s))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function wU(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,s=e;return!(r.atimeNs!==s.atimeNs||r.mtimeNs!==s.mtimeNs||r.ctimeNs!==s.ctimeNs||r.birthtimeNs!==s.birthtimeNs)}var IU,CU,EU,nE,iE,BU=Xe(()=>{IU=ut(Ie("util")),CU=33188,EU=class{constructor(){this.name="";this.path="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},nE=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=CU;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},iE=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(CU);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}}});function XGe(t){let e,r;if(e=t.match(KGe))t=e[1];else if(r=t.match(zGe))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function ZGe(t){t=t.replace(/\\/g,"/");let e,r;return(e=t.match(VGe))?t=`/${e[1]}`:(r=t.match(JGe))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t}function ZP(t,e){return t===fe?KZ(e):vU(e)}var O2,vt,Er,fe,J,JZ,VGe,JGe,KGe,zGe,vU,KZ,el=Xe(()=>{O2=ut(Ie("path")),vt={root:"/",dot:".",parent:".."},Er={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml",env:".env"},fe=Object.create(O2.default),J=Object.create(O2.default.posix);fe.cwd=()=>process.cwd();J.cwd=process.platform==="win32"?()=>vU(process.cwd()):process.cwd;process.platform==="win32"&&(J.resolve=(...t)=>t.length>0&&J.isAbsolute(t[0])?O2.default.posix.resolve(...t):O2.default.posix.resolve(J.cwd(),...t));JZ=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};fe.contains=(t,e)=>JZ(fe,t,e);J.contains=(t,e)=>JZ(J,t,e);VGe=/^([a-zA-Z]:.*)$/,JGe=/^\/\/(\.\/)?(.*)$/,KGe=/^\/([a-zA-Z]:.*)$/,zGe=/^\/unc\/(\.dot\/)?(.*)$/;vU=process.platform==="win32"?ZGe:t=>t,KZ=process.platform==="win32"?XGe:t=>t;fe.fromPortablePath=KZ;fe.toPortablePath=vU});async function $P(t,e){let r="0123456789abcdef";await t.mkdirPromise(e.indexPath,{recursive:!0});let s=[];for(let a of r)for(let n of r)s.push(t.mkdirPromise(t.pathUtils.join(e.indexPath,`${a}${n}`),{recursive:!0}));return await Promise.all(s),e.indexPath}async function zZ(t,e,r,s,a){let n=t.pathUtils.normalize(e),c=r.pathUtils.normalize(s),f=[],p=[],{atime:h,mtime:E}=a.stableTime?{atime:dd,mtime:dd}:await r.lstatPromise(c);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[h,E]}),await SU(f,p,t,n,r,c,{...a,didParentExist:!0});for(let C of f)await C();await Promise.all(p.map(C=>C()))}async function SU(t,e,r,s,a,n,c){let f=c.didParentExist?await XZ(r,s):null,p=await a.lstatPromise(n),{atime:h,mtime:E}=c.stableTime?{atime:dd,mtime:dd}:p,C;switch(!0){case p.isDirectory():C=await e5e(t,e,r,s,f,a,n,p,c);break;case p.isFile():C=await n5e(t,e,r,s,f,a,n,p,c);break;case p.isSymbolicLink():C=await i5e(t,e,r,s,f,a,n,p,c);break;default:throw new Error(`Unsupported file type (${p.mode})`)}return(c.linkStrategy?.type!=="HardlinkFromIndex"||!p.isFile())&&((C||f?.mtime?.getTime()!==E.getTime()||f?.atime?.getTime()!==h.getTime())&&(e.push(()=>r.lutimesPromise(s,h,E)),C=!0),(f===null||(f.mode&511)!==(p.mode&511))&&(e.push(()=>r.chmodPromise(s,p.mode&511)),C=!0)),C}async function XZ(t,e){try{return await t.lstatPromise(e)}catch{return null}}async function e5e(t,e,r,s,a,n,c,f,p){if(a!==null&&!a.isDirectory())if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1;let h=!1;a===null&&(t.push(async()=>{try{await r.mkdirPromise(s,{mode:f.mode})}catch(S){if(S.code!=="EEXIST")throw S}}),h=!0);let E=await n.readdirPromise(c),C=p.didParentExist&&!a?{...p,didParentExist:!1}:p;if(p.stableSort)for(let S of E.sort())await SU(t,e,r,r.pathUtils.join(s,S),n,n.pathUtils.join(c,S),C)&&(h=!0);else(await Promise.all(E.map(async P=>{await SU(t,e,r,r.pathUtils.join(s,P),n,n.pathUtils.join(c,P),C)}))).some(P=>P)&&(h=!0);return h}async function t5e(t,e,r,s,a,n,c,f,p,h){let E=await n.checksumFilePromise(c,{algorithm:"sha1"}),C=420,S=f.mode&511,P=`${E}${S!==C?S.toString(8):""}`,I=r.pathUtils.join(h.indexPath,E.slice(0,2),`${P}.dat`),R;(le=>(le[le.Lock=0]="Lock",le[le.Rename=1]="Rename"))(R||={});let N=1,U=await XZ(r,I);if(a){let ie=U&&a.dev===U.dev&&a.ino===U.ino,ue=U?.mtimeMs!==$Ge;if(ie&&ue&&h.autoRepair&&(N=0,U=null),!ie)if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1}let W=!U&&N===1?`${I}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,ee=!1;return t.push(async()=>{if(!U&&(N===0&&await r.lockPromise(I,async()=>{let ie=await n.readFilePromise(c);await r.writeFilePromise(I,ie)}),N===1&&W)){let ie=await n.readFilePromise(c);await r.writeFilePromise(W,ie);try{await r.linkPromise(W,I)}catch(ue){if(ue.code==="EEXIST")ee=!0,await r.unlinkPromise(W);else throw ue}}a||await r.linkPromise(I,s)}),e.push(async()=>{U||(await r.lutimesPromise(I,dd,dd),S!==C&&await r.chmodPromise(I,S)),W&&!ee&&await r.unlinkPromise(W)}),!1}async function r5e(t,e,r,s,a,n,c,f,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1;return t.push(async()=>{let h=await n.readFilePromise(c);await r.writeFilePromise(s,h)}),!0}async function n5e(t,e,r,s,a,n,c,f,p){return p.linkStrategy?.type==="HardlinkFromIndex"?t5e(t,e,r,s,a,n,c,f,p,p.linkStrategy):r5e(t,e,r,s,a,n,c,f,p)}async function i5e(t,e,r,s,a,n,c,f,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1;return t.push(async()=>{await r.symlinkPromise(ZP(r.pathUtils,await n.readlinkPromise(c)),s)}),!0}var dd,$Ge,DU=Xe(()=>{el();dd=new Date(456789e3*1e3),$Ge=dd.getTime()});function ex(t,e,r,s){let a=()=>{let n=r.shift();if(typeof n>"u")return null;let c=t.pathUtils.join(e,n);return Object.assign(t.statSync(c),{name:n,path:void 0})};return new L2(e,a,s)}var L2,ZZ=Xe(()=>{zP();L2=class{constructor(e,r,s={}){this.path=e;this.nextDirent=r;this.opts=s;this.closed=!1}throwIfClosed(){if(this.closed)throw yU()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e<"u"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){this.throwIfClosed(),this.opts.onClose?.(),this.closed=!0}}});function $Z(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var e$,tx,t$=Xe(()=>{e$=Ie("events");BU();tx=class t extends e$.EventEmitter{constructor(r,s,{bigint:a=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=r,this.path=s,this.bigint=a,this.lastStats=this.stat()}static create(r,s,a){let n=new t(r,s,a);return n.start(),n}start(){$Z(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){$Z(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let r=this.bigint?new iE:new nE;return XP(r)}}makeInterval(r){let s=setInterval(()=>{let a=this.stat(),n=this.lastStats;wU(a,n)||(this.lastStats=a,this.emit("change",a,n))},r.interval);return r.persistent?s:s.unref()}registerChangeListener(r,s){this.addListener("change",r),this.changeListeners.set(r,this.makeInterval(s))}unregisterChangeListener(r){this.removeListener("change",r);let s=this.changeListeners.get(r);typeof s<"u"&&clearInterval(s),this.changeListeners.delete(r)}unregisterAllChangeListeners(){for(let r of this.changeListeners.keys())this.unregisterChangeListener(r)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let r of this.changeListeners.values())r.ref();return this}unref(){for(let r of this.changeListeners.values())r.unref();return this}}});function sE(t,e,r,s){let a,n,c,f;switch(typeof r){case"function":a=!1,n=!0,c=5007,f=r;break;default:({bigint:a=!1,persistent:n=!0,interval:c=5007}=r),f=s;break}let p=rx.get(t);typeof p>"u"&&rx.set(t,p=new Map);let h=p.get(e);return typeof h>"u"&&(h=tx.create(t,e,{bigint:a}),p.set(e,h)),h.registerChangeListener(f,{persistent:n,interval:c}),h}function md(t,e,r){let s=rx.get(t);if(typeof s>"u")return;let a=s.get(e);typeof a>"u"||(typeof r>"u"?a.unregisterAllChangeListeners():a.unregisterChangeListener(r),a.hasChangeListeners()||(a.stop(),s.delete(e)))}function yd(t){let e=rx.get(t);if(!(typeof e>"u"))for(let r of e.keys())md(t,r)}var rx,bU=Xe(()=>{t$();rx=new WeakMap});function s5e(t){let e=t.match(/\r?\n/g);if(e===null)return n$.EOL;let r=e.filter(a=>a===`\r
`).length,s=e.length-r;return r>s?`\r
`:`
`}function Ed(t,e){return e.replace(/\r?\n/g,s5e(t))}var r$,n$,mp,Uf,Id=Xe(()=>{r$=Ie("crypto"),n$=Ie("os");DU();el();mp=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let s=[e];for(;s.length>0;){let a=s.shift();if((await this.lstatPromise(a)).isDirectory()){let c=await this.readdirPromise(a);if(r)for(let f of c.sort())s.push(this.pathUtils.join(a,f));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(e,{algorithm:r="sha512"}={}){let s=await this.openPromise(e,"r");try{let n=Buffer.allocUnsafeSlow(65536),c=(0,r$.createHash)(r),f=0;for(;(f=await this.readPromise(s,n,0,65536))!==0;)c.update(f===65536?n:n.slice(0,f));return c.digest("hex")}finally{await this.closePromise(s)}}async removePromise(e,{recursive:r=!0,maxRetries:s=5}={}){let a;try{a=await this.lstatPromise(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(e);await Promise.all(n.map(c=>this.removePromise(this.pathUtils.resolve(e,c))))}for(let n=0;n<=s;n++)try{await this.rmdirPromise(e);break}catch(c){if(c.code!=="EBUSY"&&c.code!=="ENOTEMPTY")throw c;n<s&&await new Promise(f=>setTimeout(f,n*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let s;try{s=this.lstatSync(e)}catch(a){if(a.code==="ENOENT")return;throw a}if(s.isDirectory()){if(r)for(let a of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,a));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:s}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let c=2;c<=a.length;++c){let f=a.slice(0,c).join(this.pathUtils.sep);if(!this.existsSync(f)){try{await this.mkdirPromise(f)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=f,r!=null&&await this.chmodPromise(f,r),s!=null)await this.utimesPromise(f,s[0],s[1]);else{let p=await this.statPromise(this.pathUtils.dirname(f));await this.utimesPromise(f,p.atime,p.mtime)}}}return n}mkdirpSync(e,{chmod:r,utimes:s}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let c=2;c<=a.length;++c){let f=a.slice(0,c).join(this.pathUtils.sep);if(!this.existsSync(f)){try{this.mkdirSync(f)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=f,r!=null&&this.chmodSync(f,r),s!=null)this.utimesSync(f,s[0],s[1]);else{let p=this.statSync(this.pathUtils.dirname(f));this.utimesSync(f,p.atime,p.mtime)}}}return n}async copyPromise(e,r,{baseFs:s=this,overwrite:a=!0,stableSort:n=!1,stableTime:c=!1,linkStrategy:f=null}={}){return await zZ(this,e,s,r,{overwrite:a,stableSort:n,stableTime:c,linkStrategy:f})}copySync(e,r,{baseFs:s=this,overwrite:a=!0}={}){let n=s.lstatSync(r),c=this.existsSync(e);if(n.isDirectory()){this.mkdirpSync(e);let p=s.readdirSync(r);for(let h of p)this.copySync(this.pathUtils.join(e,h),s.pathUtils.join(r,h),{baseFs:s,overwrite:a})}else if(n.isFile()){if(!c||a){c&&this.removeSync(e);let p=s.readFileSync(r);this.writeFileSync(e,p)}}else if(n.isSymbolicLink()){if(!c||a){c&&this.removeSync(e);let p=s.readlinkSync(r);this.symlinkSync(ZP(this.pathUtils,p),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,"0")})`);let f=n.mode&511;this.chmodSync(e,f)}async changeFilePromise(e,r,s={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,s):this.changeFileTextPromise(e,r,s)}async changeFileBufferPromise(e,r,{mode:s}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(e)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(e,r,{mode:s})}async changeFileTextPromise(e,r,{automaticNewlines:s,mode:a}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch{}let c=s?Ed(n,r):r;n!==c&&await this.writeFilePromise(e,c,{mode:a})}changeFileSync(e,r,s={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,s):this.changeFileTextSync(e,r,s)}changeFileBufferSync(e,r,{mode:s}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(e)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(e,r,{mode:s})}changeFileTextSync(e,r,{automaticNewlines:s=!1,mode:a}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch{}let c=s?Ed(n,r):r;n!==c&&this.writeFileSync(e,c,{mode:a})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(s){if(s.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw s}}moveSync(e,r){try{this.renameSync(e,r)}catch(s){if(s.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw s}}async lockPromise(e,r){let s=`${e}.flock`,a=1e3/60,n=Date.now(),c=null,f=async()=>{let p;try{[p]=await this.readJsonPromise(s)}catch{return Date.now()-n<500}try{return process.kill(p,0),!0}catch{return!1}};for(;c===null;)try{c=await this.openPromise(s,"wx")}catch(p){if(p.code==="EEXIST"){if(!await f())try{await this.unlinkPromise(s);continue}catch{}if(Date.now()-n<60*1e3)await new Promise(h=>setTimeout(h,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${s})`)}else throw p}await this.writePromise(c,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(c),await this.unlinkPromise(s)}catch{}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(s){throw s.message+=` (in ${e})`,s}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(s){throw s.message+=` (in ${e})`,s}}async writeJsonPromise(e,r,{compact:s=!1}={}){let a=s?0:2;return await this.writeFilePromise(e,`${JSON.stringify(r,null,a)}
`)}writeJsonSync(e,r,{compact:s=!1}={}){let a=s?0:2;return this.writeFileSync(e,`${JSON.stringify(r,null,a)}
`)}async preserveTimePromise(e,r){let s=await this.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await this.lutimesPromise(e,s.atime,s.mtime)}async preserveTimeSync(e,r){let s=this.lstatSync(e),a=r();typeof a<"u"&&(e=a),this.lutimesSync(e,s.atime,s.mtime)}},Uf=class extends mp{constructor(){super(J)}}});var _s,yp=Xe(()=>{Id();_s=class extends mp{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,s){return this.baseFs.openPromise(this.mapToBase(e),r,s)}openSync(e,r,s){return this.baseFs.openSync(this.mapToBase(e),r,s)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,s,a,n){return await this.baseFs.readPromise(e,r,s,a,n)}readSync(e,r,s,a,n){return this.baseFs.readSync(e,r,s,a,n)}async writePromise(e,r,s,a,n){return typeof r=="string"?await this.baseFs.writePromise(e,r,s):await this.baseFs.writePromise(e,r,s,a,n)}writeSync(e,r,s,a,n){return typeof r=="string"?this.baseFs.writeSync(e,r,s):this.baseFs.writeSync(e,r,s,a,n)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async fchownPromise(e,r,s){return this.baseFs.fchownPromise(e,r,s)}fchownSync(e,r,s){return this.baseFs.fchownSync(e,r,s)}async chownPromise(e,r,s){return this.baseFs.chownPromise(this.mapToBase(e),r,s)}chownSync(e,r,s){return this.baseFs.chownSync(this.mapToBase(e),r,s)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,s=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),s)}copyFileSync(e,r,s=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),s)}async appendFilePromise(e,r,s){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,s)}appendFileSync(e,r,s){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,s)}async writeFilePromise(e,r,s){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,s)}writeFileSync(e,r,s){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,s)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,s){return this.baseFs.utimesPromise(this.mapToBase(e),r,s)}utimesSync(e,r,s){return this.baseFs.utimesSync(this.mapToBase(e),r,s)}async lutimesPromise(e,r,s){return this.baseFs.lutimesPromise(this.mapToBase(e),r,s)}lutimesSync(e,r,s){return this.baseFs.lutimesSync(this.mapToBase(e),r,s)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async rmPromise(e,r){return this.baseFs.rmPromise(this.mapToBase(e),r)}rmSync(e,r){return this.baseFs.rmSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,s){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),a,s);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),c=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkPromise(c,a,s)}symlinkSync(e,r,s){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),a,s);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),c=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkSync(c,a,s)}async readFilePromise(e,r){return this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return this.baseFs.readFileSync(this.fsMapToBase(e),r)}readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}async ftruncatePromise(e,r){return this.baseFs.ftruncatePromise(e,r)}ftruncateSync(e,r){return this.baseFs.ftruncateSync(e,r)}watch(e,r,s){return this.baseFs.watch(this.mapToBase(e),r,s)}watchFile(e,r,s){return this.baseFs.watchFile(this.mapToBase(e),r,s)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}}});var _f,i$=Xe(()=>{yp();_f=class extends _s{constructor(e,{baseFs:r,pathUtils:s}){super(s),this.target=e,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}}});function s$(t){let e=t;return typeof t.path=="string"&&(e.path=fe.toPortablePath(t.path)),e}var o$,Yn,Cd=Xe(()=>{o$=ut(Ie("fs"));Id();el();Yn=class extends Uf{constructor(e=o$.default){super(),this.realFs=e}getExtractHint(){return!1}getRealPath(){return vt.root}resolve(e){return J.resolve(e)}async openPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.open(fe.fromPortablePath(e),r,s,this.makeCallback(a,n))})}openSync(e,r,s){return this.realFs.openSync(fe.fromPortablePath(e),r,s)}async opendirPromise(e,r){return await new Promise((s,a)=>{typeof r<"u"?this.realFs.opendir(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.opendir(fe.fromPortablePath(e),this.makeCallback(s,a))}).then(s=>{let a=s;return Object.defineProperty(a,"path",{value:e,configurable:!0,writable:!0}),a})}opendirSync(e,r){let a=typeof r<"u"?this.realFs.opendirSync(fe.fromPortablePath(e),r):this.realFs.opendirSync(fe.fromPortablePath(e));return Object.defineProperty(a,"path",{value:e,configurable:!0,writable:!0}),a}async readPromise(e,r,s=0,a=0,n=-1){return await new Promise((c,f)=>{this.realFs.read(e,r,s,a,n,(p,h)=>{p?f(p):c(h)})})}readSync(e,r,s,a,n){return this.realFs.readSync(e,r,s,a,n)}async writePromise(e,r,s,a,n){return await new Promise((c,f)=>typeof r=="string"?this.realFs.write(e,r,s,this.makeCallback(c,f)):this.realFs.write(e,r,s,a,n,this.makeCallback(c,f)))}writeSync(e,r,s,a,n){return typeof r=="string"?this.realFs.writeSync(e,r,s):this.realFs.writeSync(e,r,s,a,n)}async closePromise(e){await new Promise((r,s)=>{this.realFs.close(e,this.makeCallback(r,s))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,r){let s=e!==null?fe.fromPortablePath(e):e;return this.realFs.createReadStream(s,r)}createWriteStream(e,r){let s=e!==null?fe.fromPortablePath(e):e;return this.realFs.createWriteStream(s,r)}async realpathPromise(e){return await new Promise((r,s)=>{this.realFs.realpath(fe.fromPortablePath(e),{},this.makeCallback(r,s))}).then(r=>fe.toPortablePath(r))}realpathSync(e){return fe.toPortablePath(this.realFs.realpathSync(fe.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(r=>{this.realFs.exists(fe.fromPortablePath(e),r)})}accessSync(e,r){return this.realFs.accessSync(fe.fromPortablePath(e),r)}async accessPromise(e,r){return await new Promise((s,a)=>{this.realFs.access(fe.fromPortablePath(e),r,this.makeCallback(s,a))})}existsSync(e){return this.realFs.existsSync(fe.fromPortablePath(e))}async statPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.stat(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.stat(fe.fromPortablePath(e),this.makeCallback(s,a))})}statSync(e,r){return r?this.realFs.statSync(fe.fromPortablePath(e),r):this.realFs.statSync(fe.fromPortablePath(e))}async fstatPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.fstat(e,r,this.makeCallback(s,a)):this.realFs.fstat(e,this.makeCallback(s,a))})}fstatSync(e,r){return r?this.realFs.fstatSync(e,r):this.realFs.fstatSync(e)}async lstatPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.lstat(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.lstat(fe.fromPortablePath(e),this.makeCallback(s,a))})}lstatSync(e,r){return r?this.realFs.lstatSync(fe.fromPortablePath(e),r):this.realFs.lstatSync(fe.fromPortablePath(e))}async fchmodPromise(e,r){return await new Promise((s,a)=>{this.realFs.fchmod(e,r,this.makeCallback(s,a))})}fchmodSync(e,r){return this.realFs.fchmodSync(e,r)}async chmodPromise(e,r){return await new Promise((s,a)=>{this.realFs.chmod(fe.fromPortablePath(e),r,this.makeCallback(s,a))})}chmodSync(e,r){return this.realFs.chmodSync(fe.fromPortablePath(e),r)}async fchownPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.fchown(e,r,s,this.makeCallback(a,n))})}fchownSync(e,r,s){return this.realFs.fchownSync(e,r,s)}async chownPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.chown(fe.fromPortablePath(e),r,s,this.makeCallback(a,n))})}chownSync(e,r,s){return this.realFs.chownSync(fe.fromPortablePath(e),r,s)}async renamePromise(e,r){return await new Promise((s,a)=>{this.realFs.rename(fe.fromPortablePath(e),fe.fromPortablePath(r),this.makeCallback(s,a))})}renameSync(e,r){return this.realFs.renameSync(fe.fromPortablePath(e),fe.fromPortablePath(r))}async copyFilePromise(e,r,s=0){return await new Promise((a,n)=>{this.realFs.copyFile(fe.fromPortablePath(e),fe.fromPortablePath(r),s,this.makeCallback(a,n))})}copyFileSync(e,r,s=0){return this.realFs.copyFileSync(fe.fromPortablePath(e),fe.fromPortablePath(r),s)}async appendFilePromise(e,r,s){return await new Promise((a,n)=>{let c=typeof e=="string"?fe.fromPortablePath(e):e;s?this.realFs.appendFile(c,r,s,this.makeCallback(a,n)):this.realFs.appendFile(c,r,this.makeCallback(a,n))})}appendFileSync(e,r,s){let a=typeof e=="string"?fe.fromPortablePath(e):e;s?this.realFs.appendFileSync(a,r,s):this.realFs.appendFileSync(a,r)}async writeFilePromise(e,r,s){return await new Promise((a,n)=>{let c=typeof e=="string"?fe.fromPortablePath(e):e;s?this.realFs.writeFile(c,r,s,this.makeCallback(a,n)):this.realFs.writeFile(c,r,this.makeCallback(a,n))})}writeFileSync(e,r,s){let a=typeof e=="string"?fe.fromPortablePath(e):e;s?this.realFs.writeFileSync(a,r,s):this.realFs.writeFileSync(a,r)}async unlinkPromise(e){return await new Promise((r,s)=>{this.realFs.unlink(fe.fromPortablePath(e),this.makeCallback(r,s))})}unlinkSync(e){return this.realFs.unlinkSync(fe.fromPortablePath(e))}async utimesPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.utimes(fe.fromPortablePath(e),r,s,this.makeCallback(a,n))})}utimesSync(e,r,s){this.realFs.utimesSync(fe.fromPortablePath(e),r,s)}async lutimesPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.lutimes(fe.fromPortablePath(e),r,s,this.makeCallback(a,n))})}lutimesSync(e,r,s){this.realFs.lutimesSync(fe.fromPortablePath(e),r,s)}async mkdirPromise(e,r){return await new Promise((s,a)=>{this.realFs.mkdir(fe.fromPortablePath(e),r,this.makeCallback(s,a))})}mkdirSync(e,r){return this.realFs.mkdirSync(fe.fromPortablePath(e),r)}async rmdirPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.rmdir(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.rmdir(fe.fromPortablePath(e),this.makeCallback(s,a))})}rmdirSync(e,r){return this.realFs.rmdirSync(fe.fromPortablePath(e),r)}async rmPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.rm(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.rm(fe.fromPortablePath(e),this.makeCallback(s,a))})}rmSync(e,r){return this.realFs.rmSync(fe.fromPortablePath(e),r)}async linkPromise(e,r){return await new Promise((s,a)=>{this.realFs.link(fe.fromPortablePath(e),fe.fromPortablePath(r),this.makeCallback(s,a))})}linkSync(e,r){return this.realFs.linkSync(fe.fromPortablePath(e),fe.fromPortablePath(r))}async symlinkPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.symlink(fe.fromPortablePath(e.replace(/\/+$/,"")),fe.fromPortablePath(r),s,this.makeCallback(a,n))})}symlinkSync(e,r,s){return this.realFs.symlinkSync(fe.fromPortablePath(e.replace(/\/+$/,"")),fe.fromPortablePath(r),s)}async readFilePromise(e,r){return await new Promise((s,a)=>{let n=typeof e=="string"?fe.fromPortablePath(e):e;this.realFs.readFile(n,r,this.makeCallback(s,a))})}readFileSync(e,r){let s=typeof e=="string"?fe.fromPortablePath(e):e;return this.realFs.readFileSync(s,r)}async readdirPromise(e,r){return await new Promise((s,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(fe.fromPortablePath(e),r,this.makeCallback(n=>s(n.map(s$)),a)):this.realFs.readdir(fe.fromPortablePath(e),r,this.makeCallback(n=>s(n.map(fe.toPortablePath)),a)):this.realFs.readdir(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.readdir(fe.fromPortablePath(e),this.makeCallback(s,a))})}readdirSync(e,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(fe.fromPortablePath(e),r).map(s$):this.realFs.readdirSync(fe.fromPortablePath(e),r).map(fe.toPortablePath):this.realFs.readdirSync(fe.fromPortablePath(e),r):this.realFs.readdirSync(fe.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((r,s)=>{this.realFs.readlink(fe.fromPortablePath(e),this.makeCallback(r,s))}).then(r=>fe.toPortablePath(r))}readlinkSync(e){return fe.toPortablePath(this.realFs.readlinkSync(fe.fromPortablePath(e)))}async truncatePromise(e,r){return await new Promise((s,a)=>{this.realFs.truncate(fe.fromPortablePath(e),r,this.makeCallback(s,a))})}truncateSync(e,r){return this.realFs.truncateSync(fe.fromPortablePath(e),r)}async ftruncatePromise(e,r){return await new Promise((s,a)=>{this.realFs.ftruncate(e,r,this.makeCallback(s,a))})}ftruncateSync(e,r){return this.realFs.ftruncateSync(e,r)}watch(e,r,s){return this.realFs.watch(fe.fromPortablePath(e),r,s)}watchFile(e,r,s){return this.realFs.watchFile(fe.fromPortablePath(e),r,s)}unwatchFile(e,r){return this.realFs.unwatchFile(fe.fromPortablePath(e),r)}makeCallback(e,r){return(s,a)=>{s?r(s):e(a)}}}});var Sn,a$=Xe(()=>{Cd();yp();el();Sn=class extends _s{constructor(e,{baseFs:r=new Yn}={}){super(J),this.target=this.pathUtils.normalize(e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?J.normalize(e):this.baseFs.resolve(J.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}}});var l$,Hf,c$=Xe(()=>{Cd();yp();el();l$=vt.root,Hf=class extends _s{constructor(e,{baseFs:r=new Yn}={}){super(J),this.target=this.pathUtils.resolve(vt.root,e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(vt.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){let r=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(l$,e));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(l$,this.pathUtils.relative(this.target,e))}}});var oE,u$=Xe(()=>{yp();oE=class extends _s{constructor(r,s){super(s);this.instance=null;this.factory=r}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(r){this.instance=r}mapFromBase(r){return r}mapToBase(r){return r}}});var wd,tl,e0,f$=Xe(()=>{wd=Ie("fs");Id();Cd();bU();zP();el();tl=4278190080,e0=class extends Uf{constructor({baseFs:r=new Yn,filter:s=null,magicByte:a=42,maxOpenFiles:n=1/0,useCache:c=!0,maxAge:f=5e3,typeCheck:p=wd.constants.S_IFREG,getMountPoint:h,factoryPromise:E,factorySync:C}){if(Math.floor(a)!==a||!(a>1&&a<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super();this.fdMap=new Map;this.nextFd=3;this.isMount=new Set;this.notMount=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.baseFs=r,this.mountInstances=c?new Map:null,this.factoryPromise=E,this.factorySync=C,this.filter=s,this.getMountPoint=h,this.magic=a<<24,this.maxAge=f,this.maxOpenFiles=n,this.typeCheck=p}getExtractHint(r){return this.baseFs.getExtractHint(r)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(yd(this),this.mountInstances)for(let[r,{childFs:s}]of this.mountInstances.entries())s.saveAndClose?.(),this.mountInstances.delete(r)}discardAndClose(){if(yd(this),this.mountInstances)for(let[r,{childFs:s}]of this.mountInstances.entries())s.discardAndClose?.(),this.mountInstances.delete(r)}resolve(r){return this.baseFs.resolve(r)}remapFd(r,s){let a=this.nextFd++|this.magic;return this.fdMap.set(a,[r,s]),a}async openPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.openPromise(r,s,a),async(n,{subPath:c})=>this.remapFd(n,await n.openPromise(c,s,a)))}openSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.openSync(r,s,a),(n,{subPath:c})=>this.remapFd(n,n.openSync(c,s,a)))}async opendirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.opendirPromise(r,s),async(a,{subPath:n})=>await a.opendirPromise(n,s),{requireSubpath:!1})}opendirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.opendirSync(r,s),(a,{subPath:n})=>a.opendirSync(n,s),{requireSubpath:!1})}async readPromise(r,s,a,n,c){if((r&tl)!==this.magic)return await this.baseFs.readPromise(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>"u")throw Mo("read");let[p,h]=f;return await p.readPromise(h,s,a,n,c)}readSync(r,s,a,n,c){if((r&tl)!==this.magic)return this.baseFs.readSync(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>"u")throw Mo("readSync");let[p,h]=f;return p.readSync(h,s,a,n,c)}async writePromise(r,s,a,n,c){if((r&tl)!==this.magic)return typeof s=="string"?await this.baseFs.writePromise(r,s,a):await this.baseFs.writePromise(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>"u")throw Mo("write");let[p,h]=f;return typeof s=="string"?await p.writePromise(h,s,a):await p.writePromise(h,s,a,n,c)}writeSync(r,s,a,n,c){if((r&tl)!==this.magic)return typeof s=="string"?this.baseFs.writeSync(r,s,a):this.baseFs.writeSync(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>"u")throw Mo("writeSync");let[p,h]=f;return typeof s=="string"?p.writeSync(h,s,a):p.writeSync(h,s,a,n,c)}async closePromise(r){if((r&tl)!==this.magic)return await this.baseFs.closePromise(r);let s=this.fdMap.get(r);if(typeof s>"u")throw Mo("close");this.fdMap.delete(r);let[a,n]=s;return await a.closePromise(n)}closeSync(r){if((r&tl)!==this.magic)return this.baseFs.closeSync(r);let s=this.fdMap.get(r);if(typeof s>"u")throw Mo("closeSync");this.fdMap.delete(r);let[a,n]=s;return a.closeSync(n)}createReadStream(r,s){return r===null?this.baseFs.createReadStream(r,s):this.makeCallSync(r,()=>this.baseFs.createReadStream(r,s),(a,{archivePath:n,subPath:c})=>{let f=a.createReadStream(c,s);return f.path=fe.fromPortablePath(this.pathUtils.join(n,c)),f})}createWriteStream(r,s){return r===null?this.baseFs.createWriteStream(r,s):this.makeCallSync(r,()=>this.baseFs.createWriteStream(r,s),(a,{subPath:n})=>a.createWriteStream(n,s))}async realpathPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.realpathPromise(r),async(s,{archivePath:a,subPath:n})=>{let c=this.realPaths.get(a);return typeof c>"u"&&(c=await this.baseFs.realpathPromise(a),this.realPaths.set(a,c)),this.pathUtils.join(c,this.pathUtils.relative(vt.root,await s.realpathPromise(n)))})}realpathSync(r){return this.makeCallSync(r,()=>this.baseFs.realpathSync(r),(s,{archivePath:a,subPath:n})=>{let c=this.realPaths.get(a);return typeof c>"u"&&(c=this.baseFs.realpathSync(a),this.realPaths.set(a,c)),this.pathUtils.join(c,this.pathUtils.relative(vt.root,s.realpathSync(n)))})}async existsPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.existsPromise(r),async(s,{subPath:a})=>await s.existsPromise(a))}existsSync(r){return this.makeCallSync(r,()=>this.baseFs.existsSync(r),(s,{subPath:a})=>s.existsSync(a))}async accessPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.accessPromise(r,s),async(a,{subPath:n})=>await a.accessPromise(n,s))}accessSync(r,s){return this.makeCallSync(r,()=>this.baseFs.accessSync(r,s),(a,{subPath:n})=>a.accessSync(n,s))}async statPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.statPromise(r,s),async(a,{subPath:n})=>await a.statPromise(n,s))}statSync(r,s){return this.makeCallSync(r,()=>this.baseFs.statSync(r,s),(a,{subPath:n})=>a.statSync(n,s))}async fstatPromise(r,s){if((r&tl)!==this.magic)return this.baseFs.fstatPromise(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Mo("fstat");let[n,c]=a;return n.fstatPromise(c,s)}fstatSync(r,s){if((r&tl)!==this.magic)return this.baseFs.fstatSync(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Mo("fstatSync");let[n,c]=a;return n.fstatSync(c,s)}async lstatPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.lstatPromise(r,s),async(a,{subPath:n})=>await a.lstatPromise(n,s))}lstatSync(r,s){return this.makeCallSync(r,()=>this.baseFs.lstatSync(r,s),(a,{subPath:n})=>a.lstatSync(n,s))}async fchmodPromise(r,s){if((r&tl)!==this.magic)return this.baseFs.fchmodPromise(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Mo("fchmod");let[n,c]=a;return n.fchmodPromise(c,s)}fchmodSync(r,s){if((r&tl)!==this.magic)return this.baseFs.fchmodSync(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Mo("fchmodSync");let[n,c]=a;return n.fchmodSync(c,s)}async chmodPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.chmodPromise(r,s),async(a,{subPath:n})=>await a.chmodPromise(n,s))}chmodSync(r,s){return this.makeCallSync(r,()=>this.baseFs.chmodSync(r,s),(a,{subPath:n})=>a.chmodSync(n,s))}async fchownPromise(r,s,a){if((r&tl)!==this.magic)return this.baseFs.fchownPromise(r,s,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Mo("fchown");let[c,f]=n;return c.fchownPromise(f,s,a)}fchownSync(r,s,a){if((r&tl)!==this.magic)return this.baseFs.fchownSync(r,s,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Mo("fchownSync");let[c,f]=n;return c.fchownSync(f,s,a)}async chownPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.chownPromise(r,s,a),async(n,{subPath:c})=>await n.chownPromise(c,s,a))}chownSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.chownSync(r,s,a),(n,{subPath:c})=>n.chownSync(c,s,a))}async renamePromise(r,s){return await this.makeCallPromise(r,async()=>await this.makeCallPromise(s,async()=>await this.baseFs.renamePromise(r,s),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(a,{subPath:n})=>await this.makeCallPromise(s,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(c,{subPath:f})=>{if(a!==c)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await a.renamePromise(n,f)}))}renameSync(r,s){return this.makeCallSync(r,()=>this.makeCallSync(s,()=>this.baseFs.renameSync(r,s),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(a,{subPath:n})=>this.makeCallSync(s,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(c,{subPath:f})=>{if(a!==c)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return a.renameSync(n,f)}))}async copyFilePromise(r,s,a=0){let n=async(c,f,p,h)=>{if(a&wd.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${f}' -> ${h}'`),{code:"EXDEV"});if(a&wd.constants.COPYFILE_EXCL&&await this.existsPromise(f))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${f}' -> '${h}'`),{code:"EEXIST"});let E;try{E=await c.readFilePromise(f)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${f}' -> '${h}'`),{code:"EINVAL"})}await p.writeFilePromise(h,E)};return await this.makeCallPromise(r,async()=>await this.makeCallPromise(s,async()=>await this.baseFs.copyFilePromise(r,s,a),async(c,{subPath:f})=>await n(this.baseFs,r,c,f)),async(c,{subPath:f})=>await this.makeCallPromise(s,async()=>await n(c,f,this.baseFs,s),async(p,{subPath:h})=>c!==p?await n(c,f,p,h):await c.copyFilePromise(f,h,a)))}copyFileSync(r,s,a=0){let n=(c,f,p,h)=>{if(a&wd.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${f}' -> ${h}'`),{code:"EXDEV"});if(a&wd.constants.COPYFILE_EXCL&&this.existsSync(f))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${f}' -> '${h}'`),{code:"EEXIST"});let E;try{E=c.readFileSync(f)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${f}' -> '${h}'`),{code:"EINVAL"})}p.writeFileSync(h,E)};return this.makeCallSync(r,()=>this.makeCallSync(s,()=>this.baseFs.copyFileSync(r,s,a),(c,{subPath:f})=>n(this.baseFs,r,c,f)),(c,{subPath:f})=>this.makeCallSync(s,()=>n(c,f,this.baseFs,s),(p,{subPath:h})=>c!==p?n(c,f,p,h):c.copyFileSync(f,h,a)))}async appendFilePromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.appendFilePromise(r,s,a),async(n,{subPath:c})=>await n.appendFilePromise(c,s,a))}appendFileSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.appendFileSync(r,s,a),(n,{subPath:c})=>n.appendFileSync(c,s,a))}async writeFilePromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.writeFilePromise(r,s,a),async(n,{subPath:c})=>await n.writeFilePromise(c,s,a))}writeFileSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.writeFileSync(r,s,a),(n,{subPath:c})=>n.writeFileSync(c,s,a))}async unlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.unlinkPromise(r),async(s,{subPath:a})=>await s.unlinkPromise(a))}unlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.unlinkSync(r),(s,{subPath:a})=>s.unlinkSync(a))}async utimesPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.utimesPromise(r,s,a),async(n,{subPath:c})=>await n.utimesPromise(c,s,a))}utimesSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.utimesSync(r,s,a),(n,{subPath:c})=>n.utimesSync(c,s,a))}async lutimesPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.lutimesPromise(r,s,a),async(n,{subPath:c})=>await n.lutimesPromise(c,s,a))}lutimesSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.lutimesSync(r,s,a),(n,{subPath:c})=>n.lutimesSync(c,s,a))}async mkdirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.mkdirPromise(r,s),async(a,{subPath:n})=>await a.mkdirPromise(n,s))}mkdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.mkdirSync(r,s),(a,{subPath:n})=>a.mkdirSync(n,s))}async rmdirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.rmdirPromise(r,s),async(a,{subPath:n})=>await a.rmdirPromise(n,s))}rmdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.rmdirSync(r,s),(a,{subPath:n})=>a.rmdirSync(n,s))}async rmPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.rmPromise(r,s),async(a,{subPath:n})=>await a.rmPromise(n,s))}rmSync(r,s){return this.makeCallSync(r,()=>this.baseFs.rmSync(r,s),(a,{subPath:n})=>a.rmSync(n,s))}async linkPromise(r,s){return await this.makeCallPromise(s,async()=>await this.baseFs.linkPromise(r,s),async(a,{subPath:n})=>await a.linkPromise(r,n))}linkSync(r,s){return this.makeCallSync(s,()=>this.baseFs.linkSync(r,s),(a,{subPath:n})=>a.linkSync(r,n))}async symlinkPromise(r,s,a){return await this.makeCallPromise(s,async()=>await this.baseFs.symlinkPromise(r,s,a),async(n,{subPath:c})=>await n.symlinkPromise(r,c))}symlinkSync(r,s,a){return this.makeCallSync(s,()=>this.baseFs.symlinkSync(r,s,a),(n,{subPath:c})=>n.symlinkSync(r,c))}async readFilePromise(r,s){return this.makeCallPromise(r,async()=>await this.baseFs.readFilePromise(r,s),async(a,{subPath:n})=>await a.readFilePromise(n,s))}readFileSync(r,s){return this.makeCallSync(r,()=>this.baseFs.readFileSync(r,s),(a,{subPath:n})=>a.readFileSync(n,s))}async readdirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.readdirPromise(r,s),async(a,{subPath:n})=>await a.readdirPromise(n,s),{requireSubpath:!1})}readdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.readdirSync(r,s),(a,{subPath:n})=>a.readdirSync(n,s),{requireSubpath:!1})}async readlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.readlinkPromise(r),async(s,{subPath:a})=>await s.readlinkPromise(a))}readlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.readlinkSync(r),(s,{subPath:a})=>s.readlinkSync(a))}async truncatePromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.truncatePromise(r,s),async(a,{subPath:n})=>await a.truncatePromise(n,s))}truncateSync(r,s){return this.makeCallSync(r,()=>this.baseFs.truncateSync(r,s),(a,{subPath:n})=>a.truncateSync(n,s))}async ftruncatePromise(r,s){if((r&tl)!==this.magic)return this.baseFs.ftruncatePromise(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Mo("ftruncate");let[n,c]=a;return n.ftruncatePromise(c,s)}ftruncateSync(r,s){if((r&tl)!==this.magic)return this.baseFs.ftruncateSync(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Mo("ftruncateSync");let[n,c]=a;return n.ftruncateSync(c,s)}watch(r,s,a){return this.makeCallSync(r,()=>this.baseFs.watch(r,s,a),(n,{subPath:c})=>n.watch(c,s,a))}watchFile(r,s,a){return this.makeCallSync(r,()=>this.baseFs.watchFile(r,s,a),()=>sE(this,r,s,a))}unwatchFile(r,s){return this.makeCallSync(r,()=>this.baseFs.unwatchFile(r,s),()=>md(this,r,s))}async makeCallPromise(r,s,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return await s();let c=this.resolve(r),f=this.findMount(c);return f?n&&f.subPath==="/"?await s():await this.getMountPromise(f.archivePath,async p=>await a(p,f)):await s()}makeCallSync(r,s,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return s();let c=this.resolve(r),f=this.findMount(c);return!f||n&&f.subPath==="/"?s():this.getMountSync(f.archivePath,p=>a(p,f))}findMount(r){if(this.filter&&!this.filter.test(r))return null;let s="";for(;;){let a=r.substring(s.length),n=this.getMountPoint(a,s);if(!n)return null;if(s=this.pathUtils.join(s,n),!this.isMount.has(s)){if(this.notMount.has(s))continue;try{if(this.typeCheck!==null&&(this.baseFs.statSync(s).mode&wd.constants.S_IFMT)!==this.typeCheck){this.notMount.add(s);continue}}catch{return null}this.isMount.add(s)}return{archivePath:s,subPath:this.pathUtils.join(vt.root,r.substring(s.length))}}}limitOpenFiles(r){if(this.mountInstances===null)return;let s=Date.now(),a=s+this.maxAge,n=r===null?0:this.mountInstances.size-r;for(let[c,{childFs:f,expiresAt:p,refCount:h}]of this.mountInstances.entries())if(!(h!==0||f.hasOpenFileHandles?.())){if(s>=p){f.saveAndClose?.(),this.mountInstances.delete(c),n-=1;continue}else if(r===null||n<=0){a=p;break}f.saveAndClose?.(),this.mountInstances.delete(c),n-=1}this.limitOpenFilesTimeout===null&&(r===null&&this.mountInstances.size>0||r!==null)&&isFinite(a)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},a-s).unref())}async getMountPromise(r,s){if(this.mountInstances){let a=this.mountInstances.get(r);if(!a){let n=await this.factoryPromise(this.baseFs,r);a=this.mountInstances.get(r),a||(a={childFs:n(),expiresAt:0,refCount:0})}this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,a.refCount+=1;try{return await s(a.childFs)}finally{a.refCount-=1}}else{let a=(await this.factoryPromise(this.baseFs,r))();try{return await s(a)}finally{a.saveAndClose?.()}}}getMountSync(r,s){if(this.mountInstances){let a=this.mountInstances.get(r);return a||(a={childFs:this.factorySync(this.baseFs,r),expiresAt:0,refCount:0}),this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,s(a.childFs)}else{let a=this.factorySync(this.baseFs,r);try{return s(a)}finally{a.saveAndClose?.()}}}}});var er,nx,A$=Xe(()=>{Id();el();er=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),nx=class t extends mp{static{this.instance=new t}constructor(){super(J)}getExtractHint(){throw er()}getRealPath(){throw er()}resolve(){throw er()}async openPromise(){throw er()}openSync(){throw er()}async opendirPromise(){throw er()}opendirSync(){throw er()}async readPromise(){throw er()}readSync(){throw er()}async writePromise(){throw er()}writeSync(){throw er()}async closePromise(){throw er()}closeSync(){throw er()}createWriteStream(){throw er()}createReadStream(){throw er()}async realpathPromise(){throw er()}realpathSync(){throw er()}async readdirPromise(){throw er()}readdirSync(){throw er()}async existsPromise(e){throw er()}existsSync(e){throw er()}async accessPromise(){throw er()}accessSync(){throw er()}async statPromise(){throw er()}statSync(){throw er()}async fstatPromise(e){throw er()}fstatSync(e){throw er()}async lstatPromise(e){throw er()}lstatSync(e){throw er()}async fchmodPromise(){throw er()}fchmodSync(){throw er()}async chmodPromise(){throw er()}chmodSync(){throw er()}async fchownPromise(){throw er()}fchownSync(){throw er()}async chownPromise(){throw er()}chownSync(){throw er()}async mkdirPromise(){throw er()}mkdirSync(){throw er()}async rmdirPromise(){throw er()}rmdirSync(){throw er()}async rmPromise(){throw er()}rmSync(){throw er()}async linkPromise(){throw er()}linkSync(){throw er()}async symlinkPromise(){throw er()}symlinkSync(){throw er()}async renamePromise(){throw er()}renameSync(){throw er()}async copyFilePromise(){throw er()}copyFileSync(){throw er()}async appendFilePromise(){throw er()}appendFileSync(){throw er()}async writeFilePromise(){throw er()}writeFileSync(){throw er()}async unlinkPromise(){throw er()}unlinkSync(){throw er()}async utimesPromise(){throw er()}utimesSync(){throw er()}async lutimesPromise(){throw er()}lutimesSync(){throw er()}async readFilePromise(){throw er()}readFileSync(){throw er()}async readlinkPromise(){throw er()}readlinkSync(){throw er()}async truncatePromise(){throw er()}truncateSync(){throw er()}async ftruncatePromise(e,r){throw er()}ftruncateSync(e,r){throw er()}watch(){throw er()}watchFile(){throw er()}unwatchFile(){throw er()}}});var t0,p$=Xe(()=>{yp();el();t0=class extends _s{constructor(e){super(fe),this.baseFs=e}mapFromBase(e){return fe.fromPortablePath(e)}mapToBase(e){return fe.toPortablePath(e)}}});var o5e,PU,a5e,uo,h$=Xe(()=>{Cd();yp();el();o5e=/^[0-9]+$/,PU=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,a5e=/^([^/]+-)?[a-f0-9]+$/,uo=class t extends _s{static makeVirtualPath(e,r,s){if(J.basename(e)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!J.basename(r).match(a5e))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let n=J.relative(J.dirname(e),s).split("/"),c=0;for(;c<n.length&&n[c]==="..";)c+=1;let f=n.slice(c);return J.join(e,r,String(c),...f)}static resolveVirtual(e){let r=e.match(PU);if(!r||!r[3]&&r[5])return e;let s=J.dirname(r[1]);if(!r[3]||!r[4])return s;if(!o5e.test(r[4]))return e;let n=Number(r[4]),c="../".repeat(n),f=r[5]||".";return t.resolveVirtual(J.join(s,c,f))}constructor({baseFs:e=new Yn}={}){super(J),this.baseFs=e}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}realpathSync(e){let r=e.match(PU);if(!r)return this.baseFs.realpathSync(e);if(!r[5])return e;let s=this.baseFs.realpathSync(this.mapToBase(e));return t.makeVirtualPath(r[1],r[3],s)}async realpathPromise(e){let r=e.match(PU);if(!r)return await this.baseFs.realpathPromise(e);if(!r[5])return e;let s=await this.baseFs.realpathPromise(this.mapToBase(e));return t.makeVirtualPath(r[1],r[3],s)}mapToBase(e){if(e==="")return e;if(this.pathUtils.isAbsolute(e))return t.resolveVirtual(e);let r=t.resolveVirtual(this.baseFs.resolve(vt.dot)),s=t.resolveVirtual(this.baseFs.resolve(e));return J.relative(r,s)||vt.dot}mapFromBase(e){return e}}});function l5e(t,e){return typeof xU.default.isUtf8<"u"?xU.default.isUtf8(t):Buffer.byteLength(e)===t.byteLength}var xU,g$,d$,ix,m$=Xe(()=>{xU=ut(Ie("buffer")),g$=Ie("url"),d$=Ie("util");yp();el();ix=class extends _s{constructor(e){super(fe),this.baseFs=e}mapFromBase(e){return e}mapToBase(e){if(typeof e=="string")return e;if(e instanceof URL)return(0,g$.fileURLToPath)(e);if(Buffer.isBuffer(e)){let r=e.toString();if(!l5e(e,r))throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return r}throw new Error(`Unsupported path type: ${(0,d$.inspect)(e)}`)}}});var w$,Uo,Ep,r0,sx,ox,aE,Ru,Fu,y$,E$,I$,C$,M2,B$=Xe(()=>{w$=Ie("readline"),Uo=Symbol("kBaseFs"),Ep=Symbol("kFd"),r0=Symbol("kClosePromise"),sx=Symbol("kCloseResolve"),ox=Symbol("kCloseReject"),aE=Symbol("kRefs"),Ru=Symbol("kRef"),Fu=Symbol("kUnref"),M2=class{constructor(e,r){this[C$]=1;this[I$]=void 0;this[E$]=void 0;this[y$]=void 0;this[Uo]=r,this[Ep]=e}get fd(){return this[Ep]}async appendFile(e,r){try{this[Ru](this.appendFile);let s=(typeof r=="string"?r:r?.encoding)??void 0;return await this[Uo].appendFilePromise(this.fd,e,s?{encoding:s}:void 0)}finally{this[Fu]()}}async chown(e,r){try{return this[Ru](this.chown),await this[Uo].fchownPromise(this.fd,e,r)}finally{this[Fu]()}}async chmod(e){try{return this[Ru](this.chmod),await this[Uo].fchmodPromise(this.fd,e)}finally{this[Fu]()}}createReadStream(e){return this[Uo].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Uo].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,r,s,a){try{this[Ru](this.read);let n,c;return ArrayBuffer.isView(e)?typeof r=="object"&&r!==null?(n=e,c=r?.offset??0,s=r?.length??n.byteLength-c,a=r?.position??null):(n=e,c=r??0,s??=0):(n=e?.buffer??Buffer.alloc(16384),c=e?.offset??0,s=e?.length??n.byteLength-c,a=e?.position??null),s===0?{bytesRead:s,buffer:n}:{bytesRead:await this[Uo].readPromise(this.fd,Buffer.isBuffer(n)?n:Buffer.from(n.buffer,n.byteOffset,n.byteLength),c,s,a),buffer:n}}finally{this[Fu]()}}async readFile(e){try{this[Ru](this.readFile);let r=(typeof e=="string"?e:e?.encoding)??void 0;return await this[Uo].readFilePromise(this.fd,r)}finally{this[Fu]()}}readLines(e){return(0,w$.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Ru](this.stat),await this[Uo].fstatPromise(this.fd,e)}finally{this[Fu]()}}async truncate(e){try{return this[Ru](this.truncate),await this[Uo].ftruncatePromise(this.fd,e)}finally{this[Fu]()}}utimes(e,r){throw new Error("Method not implemented.")}async writeFile(e,r){try{this[Ru](this.writeFile);let s=(typeof r=="string"?r:r?.encoding)??void 0;await this[Uo].writeFilePromise(this.fd,e,s)}finally{this[Fu]()}}async write(...e){try{if(this[Ru](this.write),ArrayBuffer.isView(e[0])){let[r,s,a,n]=e;return{bytesWritten:await this[Uo].writePromise(this.fd,r,s??void 0,a??void 0,n??void 0),buffer:r}}else{let[r,s,a]=e;return{bytesWritten:await this[Uo].writePromise(this.fd,r,s,a),buffer:r}}}finally{this[Fu]()}}async writev(e,r){try{this[Ru](this.writev);let s=0;if(typeof r<"u")for(let a of e){let n=await this.write(a,void 0,void 0,r);s+=n.bytesWritten,r+=n.bytesWritten}else for(let a of e){let n=await this.write(a);s+=n.bytesWritten}return{buffers:e,bytesWritten:s}}finally{this[Fu]()}}readv(e,r){throw new Error("Method not implemented.")}close(){if(this[Ep]===-1)return Promise.resolve();if(this[r0])return this[r0];if(this[aE]--,this[aE]===0){let e=this[Ep];this[Ep]=-1,this[r0]=this[Uo].closePromise(e).finally(()=>{this[r0]=void 0})}else this[r0]=new Promise((e,r)=>{this[sx]=e,this[ox]=r}).finally(()=>{this[r0]=void 0,this[ox]=void 0,this[sx]=void 0});return this[r0]}[(Uo,Ep,C$=aE,I$=r0,E$=sx,y$=ox,Ru)](e){if(this[Ep]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=e.name,r}this[aE]++}[Fu](){if(this[aE]--,this[aE]===0){let e=this[Ep];this[Ep]=-1,this[Uo].closePromise(e).then(this[sx],this[ox])}}}});function U2(t,e){e=new ix(e);let r=(s,a,n)=>{let c=s[a];s[a]=n,typeof c?.[lE.promisify.custom]<"u"&&(n[lE.promisify.custom]=c[lE.promisify.custom])};{r(t,"exists",(s,...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{e.existsPromise(s).then(f=>{c(f)},()=>{c(!1)})})}),r(t,"read",(...s)=>{let[a,n,c,f,p,h]=s;if(s.length<=3){let E={};s.length<3?h=s[1]:(E=s[1],h=s[2]),{buffer:n=Buffer.alloc(16384),offset:c=0,length:f=n.byteLength,position:p}=E}if(c==null&&(c=0),f|=0,f===0){process.nextTick(()=>{h(null,0,n)});return}p==null&&(p=-1),process.nextTick(()=>{e.readPromise(a,n,c,f,p).then(E=>{h(null,E,n)},E=>{h(E,0,n)})})});for(let s of v$){let a=s.replace(/Promise$/,"");if(typeof t[a]>"u")continue;let n=e[s];if(typeof n>"u")continue;r(t,a,(...f)=>{let h=typeof f[f.length-1]=="function"?f.pop():()=>{};process.nextTick(()=>{n.apply(e,f).then(E=>{h(null,E)},E=>{h(E)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",s=>{try{return e.existsSync(s)}catch{return!1}}),r(t,"readSync",(...s)=>{let[a,n,c,f,p]=s;return s.length<=3&&({offset:c=0,length:f=n.byteLength,position:p}=s[2]||{}),c==null&&(c=0),f|=0,f===0?0:(p==null&&(p=-1),e.readSync(a,n,c,f,p))});for(let s of c5e){let a=s;if(typeof t[a]>"u")continue;let n=e[s];typeof n>"u"||r(t,a,n.bind(e))}t.realpathSync.native=t.realpathSync}{let s=t.promises;for(let a of v$){let n=a.replace(/Promise$/,"");if(typeof s[n]>"u")continue;let c=e[a];typeof c>"u"||a!=="open"&&r(s,n,(f,...p)=>f instanceof M2?f[n].apply(f,p):c.call(e,f,...p))}r(s,"open",async(...a)=>{let n=await e.openPromise(...a);return new M2(n,e)})}t.read[lE.promisify.custom]=async(s,a,...n)=>({bytesRead:await e.readPromise(s,a,...n),buffer:a}),t.write[lE.promisify.custom]=async(s,a,...n)=>({bytesWritten:await e.writePromise(s,a,...n),buffer:a})}function ax(t,e){let r=Object.create(t);return U2(r,e),r}var lE,c5e,v$,S$=Xe(()=>{lE=Ie("util");m$();B$();c5e=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","rmSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),v$=new Set(["accessPromise","appendFilePr
Download .txt
gitextract_nxiy5m7q/

├── .changeset/
│   └── config.json
├── .cursorignore
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── CODEOWNERS
│   ├── actions/
│   │   └── setup-node-yarn/
│   │       └── action.yml
│   ├── labeler.yml
│   └── workflows/
│       ├── docs-workflow.yaml
│       ├── integrations.yaml
│       ├── labeler.yml
│       └── release.yaml
├── .gitignore
├── .nvmrc
├── .prettierignore
├── .prettierrc
├── .scripts/
│   ├── check-constraints-yarn-4.sh
│   ├── check-exports.mts
│   ├── check-peer.sh
│   ├── check-platform-specific-files.js
│   ├── licenses.mjs
│   ├── publish-dev.sh
│   ├── publish-packages.sh
│   ├── typecheck-rn-68.sh
│   ├── utils/
│   │   ├── license-templates.mjs
│   │   ├── licenses.mjs
│   │   └── parse-licenses.spec.ts
│   └── version.sh
├── .vscode/
│   ├── extensions.json
│   └── settings.json
├── .yarn/
│   ├── plugins/
│   │   ├── @yarnpkg/
│   │   │   └── plugin-catalogs.cjs
│   │   └── plugin-licenses.js
│   ├── releases/
│   │   └── yarn-4.12.0.cjs
│   └── sdks/
│       ├── eslint/
│       │   ├── bin/
│       │   │   └── eslint.js
│       │   ├── lib/
│       │   │   ├── api.js
│       │   │   └── unsupported-api.js
│       │   └── package.json
│       ├── integrations.yml
│       ├── prettier/
│       │   ├── bin/
│       │   │   └── prettier.cjs
│       │   ├── index.cjs
│       │   └── package.json
│       └── typescript/
│           ├── bin/
│           │   ├── tsc
│           │   └── tsserver
│           ├── lib/
│           │   ├── tsc.js
│           │   ├── tsserver.js
│           │   ├── tsserverlibrary.js
│           │   └── typescript.js
│           └── package.json
├── .yarnrc.yml
├── LICENSE
├── README-ko_kr.md
├── README.md
├── bin/
│   └── tools
├── docs/
│   ├── .gitignore
│   ├── .gitkeep
│   ├── .vitepress/
│   │   ├── config.mts
│   │   ├── en.mts
│   │   ├── ko.mts
│   │   ├── shared.mts
│   │   ├── theme/
│   │   │   ├── custom.css
│   │   │   ├── index.ts
│   │   │   └── style.css
│   │   └── utils.ts
│   ├── components/
│   │   └── UsageSection.vue
│   ├── guides/
│   │   ├── comparison.md
│   │   ├── granite-router/
│   │   │   ├── layouts.md
│   │   │   ├── params.md
│   │   │   ├── plugin-router.md
│   │   │   └── routing.md
│   │   ├── introduction.md
│   │   ├── miscellaneous/
│   │   │   └── install-native-app.md
│   │   └── quick-start/
│   │       ├── create-your-app.md
│   │       ├── deploy-your-app.md
│   │       └── setup-aws.md
│   ├── index.md
│   ├── ko/
│   │   ├── guides/
│   │   │   ├── comparison.md
│   │   │   ├── granite-router/
│   │   │   │   ├── layouts.md
│   │   │   │   ├── params.md
│   │   │   │   ├── plugin-router.md
│   │   │   │   └── routing.md
│   │   │   ├── introduction.md
│   │   │   ├── miscellaneous/
│   │   │   │   └── install-native-app.md
│   │   │   └── quick-start/
│   │   │       ├── create-your-app.md
│   │   │       ├── deploy-your-app.md
│   │   │       └── setup-aws.md
│   │   ├── index.md
│   │   └── reference/
│   │       ├── image/
│   │       │   └── ui/
│   │       │       └── Image.md
│   │       ├── manifest.json
│   │       ├── react-native/
│   │       │   ├── config/
│   │       │   │   └── defineConfig.md
│   │       │   ├── core/
│   │       │   │   ├── Granite.md
│   │       │   │   ├── InitialProps.md
│   │       │   │   ├── useInitialProps.md
│   │       │   │   └── useIsInitialScreen.md
│   │       │   ├── environment-check/
│   │       │   │   ├── getSchemeUri.md
│   │       │   │   └── useInitialSearchParams.md
│   │       │   ├── screen-control/
│   │       │   │   ├── IOFlatList.md
│   │       │   │   ├── IOScrollView.md
│   │       │   │   ├── ImpressionArea.md
│   │       │   │   ├── InView.md
│   │       │   │   ├── closeView.md
│   │       │   │   ├── useBackEvent.md
│   │       │   │   ├── useParams.md
│   │       │   │   ├── useRouterBackHandler.md
│   │       │   │   ├── useVisibility.md
│   │       │   │   └── useVisibilityChange.md
│   │       │   ├── screen-navigation/
│   │       │   │   └── openURL.md
│   │       │   └── ui/
│   │       │       ├── BackButton.md
│   │       │       ├── BlurView.md
│   │       │       ├── ColorPreference.md
│   │       │       ├── KeyboardAboveView.md
│   │       │       ├── OnAudioFocusChanged.md
│   │       │       ├── ScrollViewInertialBackground.md
│   │       │       └── Video.md
│   │       └── style-utils/
│   │           └── ui/
│   │               ├── Flex.md
│   │               ├── FlexCenter.md
│   │               ├── FlexCenterHorizontal.md
│   │               ├── FlexCenterVertical.md
│   │               ├── Spacing.md
│   │               ├── Stack.md
│   │               ├── StackHorizontal.md
│   │               ├── StackVertical.md
│   │               ├── margin.md
│   │               └── padding.md
│   ├── package.json
│   └── reference/
│       ├── image/
│       │   └── ui/
│       │       └── Image.md
│       ├── manifest.json
│       ├── react-native/
│       │   ├── config/
│       │   │   └── defineConfig.md
│       │   ├── core/
│       │   │   ├── Granite.md
│       │   │   ├── InitialProps.md
│       │   │   ├── useInitialProps.md
│       │   │   └── useIsInitialScreen.md
│       │   ├── environment-check/
│       │   │   ├── getSchemeUri.md
│       │   │   └── useInitialSearchParams.md
│       │   ├── screen-control/
│       │   │   ├── IOFlatList.md
│       │   │   ├── IOScrollView.md
│       │   │   ├── ImpressionArea.md
│       │   │   ├── InView.md
│       │   │   ├── closeView.md
│       │   │   ├── useBackEvent.md
│       │   │   ├── useParams.md
│       │   │   ├── useRouterBackHandler.md
│       │   │   ├── useVisibility.md
│       │   │   └── useVisibilityChange.md
│       │   ├── screen-navigation/
│       │   │   └── openURL.md
│       │   └── ui/
│       │       ├── BackButton.md
│       │       ├── BlurView.md
│       │       ├── ColorPreference.md
│       │       ├── KeyboardAboveView.md
│       │       ├── OnAudioFocusChanged.md
│       │       ├── ScrollViewInertialBackground.md
│       │       └── Video.md
│       └── style-utils/
│           └── ui/
│               ├── Flex.md
│               ├── FlexCenter.md
│               ├── FlexCenterHorizontal.md
│               ├── FlexCenterVertical.md
│               ├── Spacing.md
│               ├── Stack.md
│               ├── StackHorizontal.md
│               ├── StackVertical.md
│               ├── margin.md
│               └── padding.md
├── eslint.config.cjs
├── infra/
│   ├── deployment-manager/
│   │   ├── CHANGELOG.md
│   │   ├── NOTICE
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── DeployManager.spec.ts
│   │   │   ├── DeployManager.ts
│   │   │   ├── constants.ts
│   │   │   ├── errors/
│   │   │   │   ├── InternalServerError.ts
│   │   │   │   ├── InvalidRequest.ts
│   │   │   │   ├── NotFoundError.ts
│   │   │   │   └── index.ts
│   │   │   ├── index.ts
│   │   │   ├── planCanaryRollout.ts
│   │   │   ├── planRollout.ts
│   │   │   ├── planStableRollout.ts
│   │   │   ├── readBundleList.ts
│   │   │   ├── readCluster.ts
│   │   │   ├── readDeploymentState.ts
│   │   │   ├── resolveBundle.ts
│   │   │   ├── resolveDeploymentId.ts
│   │   │   ├── rollout.ts
│   │   │   ├── rolloutCluster.ts
│   │   │   ├── s3/
│   │   │   │   ├── client.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── paths.ts
│   │   │   │   └── utils.ts
│   │   │   ├── types.ts
│   │   │   ├── updateBundleList.ts
│   │   │   ├── uploadBundle.ts
│   │   │   ├── utils/
│   │   │   │   ├── toDeployedAtString.ts
│   │   │   │   └── toRuntimeString.ts
│   │   │   └── writeBundleList.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── tsup.config.ts
│   ├── forge-cli/
│   │   ├── CHANGELOG.md
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── bin/
│   │   │   └── index.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── commands/
│   │   │   │   ├── deploy.ts
│   │   │   │   └── deployList.ts
│   │   │   ├── helpers/
│   │   │   │   └── command.ts
│   │   │   ├── index.ts
│   │   │   ├── operations/
│   │   │   │   ├── deploy.ts
│   │   │   │   └── deployList.ts
│   │   │   └── utils/
│   │   │       ├── generateDeploymentId.ts
│   │   │       ├── gzip.ts
│   │   │       └── handlePrompts.ts
│   │   ├── tsconfig.json
│   │   └── tsdown.config.ts
│   └── pulumi-aws/
│       ├── CHANGELOG.md
│       ├── NOTICE
│       ├── README.md
│       ├── lambda/
│       │   ├── auto-cache-removal.d.ts
│       │   ├── origin-request.d.ts
│       │   └── origin-response.d.ts
│       ├── package.json
│       ├── pulumi/
│       │   └── index.ts
│       ├── src/
│       │   ├── index.ts
│       │   ├── lambda/
│       │   │   ├── auto-cache-removal.ts
│       │   │   ├── constants.ts
│       │   │   ├── context.ts
│       │   │   ├── origin-request.ts
│       │   │   ├── origin-response.ts
│       │   │   └── utils/
│       │   │       ├── getBundleKey.spec.ts
│       │   │       ├── getBundleKey.ts
│       │   │       ├── invalidation.spec.ts
│       │   │       ├── invalidation.ts
│       │   │       ├── parseAppName.spec.ts
│       │   │       ├── parseAppName.ts
│       │   │       ├── parseGroupId.spec.ts
│       │   │       ├── parseGroupId.ts
│       │   │       ├── parsePlatform.spec.ts
│       │   │       ├── parsePlatform.ts
│       │   │       ├── parseSuffix.spec.ts
│       │   │       ├── parseSuffix.ts
│       │   │       ├── pathParser.spec.ts
│       │   │       └── pathParser.ts
│       │   ├── react-native-cdn.ts
│       │   └── utils/
│       │       └── getTimestampByUUIDv7.ts
│       ├── tsconfig.json
│       └── tsup.config.ts
├── knip.json
├── mise.toml
├── nx.json
├── package.json
├── packages/
│   ├── babel-preset-granite/
│   │   ├── CHANGELOG.md
│   │   ├── NOTICE
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── __tests__/
│   │   │   │   └── preset.spec.ts
│   │   │   └── index.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── vitest.config.mts
│   ├── blur-view/
│   │   ├── CHANGELOG.md
│   │   ├── NOTICE
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── BlurView.tsx
│   │   │   ├── ReactNativeBlurModule.ts
│   │   │   ├── constants.ts
│   │   │   └── index.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── brownfield-module/
│   │   ├── CHANGELOG.md
│   │   ├── GraniteBrownfield.podspec
│   │   ├── android/
│   │   │   └── src/
│   │   │       └── main/
│   │   │           └── kotlin/
│   │   │               └── run/
│   │   │                   └── granite/
│   │   │                       └── brownfield/
│   │   │                           └── typegen/
│   │   │                               ├── GraniteBrownfieldModuleSpec.kt
│   │   │                               └── GraniteBrownfieldModuleTypes.kt
│   │   ├── ios/
│   │   │   └── typegen/
│   │   │       ├── GraniteBrownfieldModuleSpec.swift
│   │   │       └── GraniteBrownfieldModuleTypes.swift
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── spec/
│   │   │       └── GraniteBrownfieldModule.brick.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── cli/
│   │   ├── .ts-prunerc.json
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── babel.config.js
│   │   ├── cli.code-workspace
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   └── run.js
│   │   ├── src/
│   │   │   ├── commands/
│   │   │   │   ├── BuildCommand/
│   │   │   │   │   ├── BuildCommand.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── DevCommand/
│   │   │   │   │   ├── DevCommand.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── HermesCommand/
│   │   │   │   │   ├── HermesCommand.ts
│   │   │   │   │   └── index.ts
│   │   │   │   └── index.ts
│   │   │   ├── constants.ts
│   │   │   ├── errors.ts
│   │   │   ├── index.ts
│   │   │   └── utils/
│   │   │       ├── command.ts
│   │   │       ├── compileHbc.ts
│   │   │       ├── compressToGzip.ts
│   │   │       ├── isExist.ts
│   │   │       └── parseError.ts
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   └── tsup.config.ts
│   ├── cookies/
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── GraniteCookies.podspec
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── android/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       └── main/
│   │   │           ├── AndroidManifest.xml
│   │   │           └── kotlin/
│   │   │               └── run/
│   │   │                   └── granite/
│   │   │                       └── cookies/
│   │   │                           ├── CookiesModule.kt
│   │   │                           └── typegen/
│   │   │                               ├── CookiesSpec.kt
│   │   │                               └── CookiesTypes.kt
│   │   ├── ios/
│   │   │   ├── CookiesModule.swift
│   │   │   └── typegen/
│   │   │       ├── CookiesSpec.swift
│   │   │       └── CookiesTypes.swift
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── spec/
│   │   │       └── cookies.brick.ts
│   │   ├── tsconfig.json
│   │   └── tsdown.config.ts
│   ├── create-granite-app/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── bin.js
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   ├── postpack.js
│   │   │   ├── prepack.js
│   │   │   └── utils/
│   │   │       └── updateWorkspaceProtocol.js
│   │   ├── src/
│   │   │   ├── __test__/
│   │   │   │   ├── cli.spec.ts
│   │   │   │   └── createTmpDir.ts
│   │   │   ├── copyTemplate.ts
│   │   │   ├── copyToolTemplate.ts
│   │   │   ├── cwd.ts
│   │   │   ├── getPackageManager.ts
│   │   │   ├── index.ts
│   │   │   ├── resolveFallback.spec.ts
│   │   │   ├── resolveFallback.ts
│   │   │   ├── transformTemplate.spec.ts
│   │   │   └── transformTemplate.ts
│   │   ├── templates/
│   │   │   └── granite-app/
│   │   │       ├── README.md
│   │   │       ├── _gitignore
│   │   │       ├── babel.config.js
│   │   │       ├── granite.config.ts
│   │   │       ├── index.ts
│   │   │       ├── jest.config.js
│   │   │       ├── jest.setup.ts
│   │   │       ├── package.json
│   │   │       ├── pages/
│   │   │       │   ├── _404.tsx
│   │   │       │   ├── about.tsx
│   │   │       │   └── index.tsx
│   │   │       ├── react-native.config.js
│   │   │       ├── require.context.ts
│   │   │       ├── src/
│   │   │       │   ├── _app.tsx
│   │   │       │   ├── pages/
│   │   │       │   │   ├── about.tsx
│   │   │       │   │   └── index.tsx
│   │   │       │   └── router.gen.ts
│   │   │       └── tsconfig.json
│   │   ├── tool-templates/
│   │   │   ├── biome/
│   │   │   │   ├── biome.json
│   │   │   │   └── package.json
│   │   │   └── eslint-prettier/
│   │   │       ├── .prettierrc
│   │   │       ├── eslint.config.mjs
│   │   │       └── package.json
│   │   ├── tsconfig.json
│   │   ├── vitest.config.mts
│   │   └── vitest.global-setup.mts
│   ├── granite-screen/
│   │   ├── CHANGELOG.md
│   │   ├── GraniteScreen.podspec
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── android/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── build.gradle
│   │   │   ├── src/
│   │   │   │   ├── main/
│   │   │   │   │   ├── AndroidManifest.xml
│   │   │   │   │   ├── cpp/
│   │   │   │   │   │   ├── BundleEvaluator.cpp
│   │   │   │   │   │   ├── BundleEvaluator.h
│   │   │   │   │   │   ├── FileReader.cpp
│   │   │   │   │   │   ├── FileReader.h
│   │   │   │   │   │   └── onLoad.cpp
│   │   │   │   │   └── kotlin/
│   │   │   │   │       └── run/
│   │   │   │   │           └── granite/
│   │   │   │   │               ├── BundleEvaluator.kt
│   │   │   │   │               ├── BundleLoader.kt
│   │   │   │   │               ├── DefaultBundleLoader.kt
│   │   │   │   │               ├── DefaultErrorView.kt
│   │   │   │   │               ├── DefaultLoadingView.kt
│   │   │   │   │               ├── GraniteReactDelegate.kt
│   │   │   │   │               ├── GraniteReactDelegateImpl.kt
│   │   │   │   │               ├── GraniteReactHost.kt
│   │   │   │   │               └── ReactHostFactory.kt
│   │   │   │   └── test/
│   │   │   │       └── cpp/
│   │   │   │           ├── CMakeLists.txt
│   │   │   │           └── FileReaderTest.cpp
│   │   │   └── test-cpp.sh
│   │   ├── gradle-plugin/
│   │   │   ├── .gitignore
│   │   │   ├── LICENSE
│   │   │   ├── README.md
│   │   │   ├── build.gradle.kts
│   │   │   ├── gradle/
│   │   │   │   ├── libs.versions.toml
│   │   │   │   └── wrapper/
│   │   │   │       ├── gradle-wrapper.jar
│   │   │   │       └── gradle-wrapper.properties
│   │   │   ├── gradle.properties
│   │   │   ├── gradlew
│   │   │   ├── gradlew.bat
│   │   │   ├── settings.gradle.kts
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   └── kotlin/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── gradle/
│   │   │       │                   ├── GraniteExtension.kt
│   │   │       │                   ├── GranitePlugin.kt
│   │   │       │                   ├── GraniteRootExtension.kt
│   │   │       │                   ├── GraniteRootProjectPlugin.kt
│   │   │       │                   ├── config/
│   │   │       │                   │   ├── BuildConfigConfigurator.kt
│   │   │       │                   │   ├── DependencyConfigurator.kt
│   │   │       │                   │   ├── DependencyCoordinates.kt
│   │   │       │                   │   ├── DevServerResourceConfigurator.kt
│   │   │       │                   │   ├── JniPackagingConfigurator.kt
│   │   │       │                   │   ├── NdkConfigurator.kt
│   │   │       │                   │   ├── RepositoryConfigurator.kt
│   │   │       │                   │   └── ResourceConfigurator.kt
│   │   │       │                   ├── generators/
│   │   │       │                   │   ├── CMakeGenerator.kt
│   │   │       │                   │   ├── CppAutolinkingGenerator.kt
│   │   │       │                   │   └── EntryPointGenerator.kt
│   │   │       │                   ├── models/
│   │   │       │                   │   ├── AndroidDependencyConfig.kt
│   │   │       │                   │   ├── AutolinkingConfig.kt
│   │   │       │                   │   ├── CMakeEntry.kt
│   │   │       │                   │   └── NativeModule.kt
│   │   │       │                   ├── tasks/
│   │   │       │                   │   ├── AssetPackagingTask.kt
│   │   │       │                   │   ├── AutolinkingTask.kt
│   │   │       │                   │   ├── BundleTask.kt
│   │   │       │                   │   ├── CodegenArtifactsTask.kt
│   │   │       │                   │   └── CodegenSchemaTask.kt
│   │   │       │                   └── utils/
│   │   │       │                       ├── AutolinkingParser.kt
│   │   │       │                       ├── ConflictDetector.kt
│   │   │       │                       ├── JdkValidator.kt
│   │   │       │                       ├── NodeExecutableFinder.kt
│   │   │       │                       ├── ReactNativeVersionReader.kt
│   │   │       │                       └── TaskDependencyValidator.kt
│   │   │       └── test/
│   │   │           ├── kotlin/
│   │   │           │   └── run/
│   │   │           │       └── granite/
│   │   │           │           └── gradle/
│   │   │           │               ├── GraniteExtensionTest.kt
│   │   │           │               ├── GranitePluginTest.kt
│   │   │           │               ├── GraniteRootProjectPluginTest.kt
│   │   │           │               ├── config/
│   │   │           │               │   ├── BuildConfigConfiguratorTest.kt
│   │   │           │               │   ├── DependencyConfiguratorTest.kt
│   │   │           │               │   ├── DevServerResourceConfiguratorTest.kt
│   │   │           │               │   └── ResourceConfiguratorTest.kt
│   │   │           │               ├── fixtures/
│   │   │           │               │   └── NativeModuleFixtures.kt
│   │   │           │               ├── generators/
│   │   │           │               │   ├── CMakeGeneratorTest.kt
│   │   │           │               │   ├── CppAutolinkingGeneratorTest.kt
│   │   │           │               │   └── EntryPointGeneratorTest.kt
│   │   │           │               ├── models/
│   │   │           │               │   ├── AutolinkingConfigTest.kt
│   │   │           │               │   ├── CMakeEntryTest.kt
│   │   │           │               │   └── NativeModuleTest.kt
│   │   │           │               ├── tasks/
│   │   │           │               │   ├── AssetPackagingTaskTest.kt
│   │   │           │               │   ├── AutolinkingTaskTest.kt
│   │   │           │               │   ├── BundleTaskTest.kt
│   │   │           │               │   └── CodegenTasksTest.kt
│   │   │           │               └── utils/
│   │   │           │                   ├── AutolinkingParserTest.kt
│   │   │           │                   ├── ConflictDetectorTest.kt
│   │   │           │                   ├── JdkValidatorTest.kt
│   │   │           │                   ├── ReactNativeVersionReaderTest.kt
│   │   │           │                   ├── TaskDependencyValidatorTest.kt
│   │   │           │                   └── TaskTestUtils.kt
│   │   │           └── resources/
│   │   │               └── fixtures/
│   │   │                   └── sample-rn-config.json
│   │   ├── ios/
│   │   │   ├── BundleLoader/
│   │   │   │   ├── BundleEvaluator.h
│   │   │   │   ├── BundleEvaluator.mm
│   │   │   │   └── BundleLoadable.swift
│   │   │   ├── GraniteBundleLoaderTypes.swift
│   │   │   ├── GraniteScreen.h
│   │   │   └── ReactNativeHosting/
│   │   │       ├── DefaultViews.swift
│   │   │       ├── GraniteDefaultModuleProvider.h
│   │   │       ├── GraniteDefaultModuleProvider.mm
│   │   │       ├── GraniteHostingHelper.swift
│   │   │       ├── GraniteNativeFactory.swift
│   │   │       ├── GraniteNativeFactoryDelegateImpl.swift
│   │   │       ├── GraniteNativeFactoryImpl.swift
│   │   │       ├── GraniteReactHost.swift
│   │   │       └── GraniteScreen-Bridging-Header.h
│   │   ├── package.json
│   │   └── react-native.config.js
│   ├── image/
│   │   ├── CHANGELOG.md
│   │   ├── GraniteImage.podspec
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── android/
│   │   │   ├── build.gradle
│   │   │   ├── gradle.properties
│   │   │   └── src/
│   │   │       ├── coil/
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── image/
│   │   │       │                   └── providers/
│   │   │       │                       └── CoilImageProvider.kt
│   │   │       ├── glide/
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── image/
│   │   │       │                   └── providers/
│   │   │       │                       └── GlideImageProvider.kt
│   │   │       ├── main/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── image/
│   │   │       │                   ├── GraniteImage.kt
│   │   │       │                   ├── GraniteImageEvents.kt
│   │   │       │                   ├── GraniteImageManager.kt
│   │   │       │                   ├── GraniteImageModule.kt
│   │   │       │                   ├── GraniteImagePackage.kt
│   │   │       │                   ├── GraniteImageProvider.kt
│   │   │       │                   └── GraniteImageRegistry.kt
│   │   │       └── okhttp/
│   │   │           └── java/
│   │   │               └── run/
│   │   │                   └── granite/
│   │   │                       └── image/
│   │   │                           └── providers/
│   │   │                               └── OkHttpImageProvider.kt
│   │   ├── example/
│   │   │   ├── .bundle/
│   │   │   │   └── config
│   │   │   ├── .detoxrc.js
│   │   │   ├── .watchmanconfig
│   │   │   ├── Gemfile
│   │   │   ├── README.md
│   │   │   ├── android/
│   │   │   │   ├── app/
│   │   │   │   │   ├── build.gradle
│   │   │   │   │   ├── debug.keystore
│   │   │   │   │   ├── proguard-rules.pro
│   │   │   │   │   └── src/
│   │   │   │   │       ├── androidTest/
│   │   │   │   │       │   └── java/
│   │   │   │   │       │       └── run/
│   │   │   │   │       │           └── granite/
│   │   │   │   │       │               └── image/
│   │   │   │   │       │                   └── example/
│   │   │   │   │       │                       └── DetoxTest.java
│   │   │   │   │       ├── debug/
│   │   │   │   │       │   └── AndroidManifest.xml
│   │   │   │   │       └── main/
│   │   │   │   │           ├── AndroidManifest.xml
│   │   │   │   │           ├── java/
│   │   │   │   │           │   └── run/
│   │   │   │   │           │       └── granite/
│   │   │   │   │           │           └── image/
│   │   │   │   │           │               └── example/
│   │   │   │   │           │                   ├── MainActivity.kt
│   │   │   │   │           │                   └── MainApplication.kt
│   │   │   │   │           └── res/
│   │   │   │   │               ├── drawable/
│   │   │   │   │               │   └── rn_edit_text_material.xml
│   │   │   │   │               └── values/
│   │   │   │   │                   ├── strings.xml
│   │   │   │   │                   └── styles.xml
│   │   │   │   ├── build.gradle
│   │   │   │   ├── gradle/
│   │   │   │   │   └── wrapper/
│   │   │   │   │       ├── gradle-wrapper.jar
│   │   │   │   │       └── gradle-wrapper.properties
│   │   │   │   ├── gradle.properties
│   │   │   │   ├── gradlew
│   │   │   │   ├── gradlew.bat
│   │   │   │   └── settings.gradle
│   │   │   ├── app.json
│   │   │   ├── babel.config.js
│   │   │   ├── e2e/
│   │   │   │   ├── GraniteImage.e2e.ts
│   │   │   │   └── jest.config.js
│   │   │   ├── index.js
│   │   │   ├── ios/
│   │   │   │   ├── .xcode.env
│   │   │   │   ├── GraniteImageExample/
│   │   │   │   │   ├── AppDelegate.swift
│   │   │   │   │   ├── Images.xcassets/
│   │   │   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── PrivacyInfo.xcprivacy
│   │   │   │   ├── GraniteImageExample.xcodeproj/
│   │   │   │   │   ├── project.pbxproj
│   │   │   │   │   └── xcshareddata/
│   │   │   │   │       └── xcschemes/
│   │   │   │   │           └── GraniteImageExample.xcscheme
│   │   │   │   ├── GraniteImageExample.xcworkspace/
│   │   │   │   │   └── contents.xcworkspacedata
│   │   │   │   └── Podfile
│   │   │   ├── jest.config.js
│   │   │   ├── metro.config.js
│   │   │   ├── package.json
│   │   │   ├── react-native.config.js
│   │   │   └── src/
│   │   │       └── App.tsx
│   │   ├── image.code-workspace
│   │   ├── ios/
│   │   │   ├── GraniteImageComponentView.h
│   │   │   ├── GraniteImageComponentView.mm
│   │   │   ├── GraniteImageModule.swift
│   │   │   ├── GraniteImageModuleBridge.m
│   │   │   ├── GraniteImageProvider.swift
│   │   │   ├── GraniteImageRegistry.swift
│   │   │   └── Providers/
│   │   │       └── SDWebImageProvider.swift
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── GraniteImage.tsx
│   │   │   ├── GraniteImageNativeComponent.ts
│   │   │   ├── NativeGraniteImageModule.ts
│   │   │   └── index.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── jest/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── jest-next.code-workspace
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── jest.config.ts
│   │   │   ├── setup/
│   │   │   │   ├── index.ts
│   │   │   │   └── reactNative.ts
│   │   │   └── utils/
│   │   │       └── requireFromRoot.ts
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   └── tsup.config.ts
│   ├── jest.config.js
│   ├── lottie/
│   │   ├── CHANGELOG.md
│   │   ├── GraniteLottie.podspec
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── android/
│   │   │   ├── build.gradle
│   │   │   ├── gradle.properties
│   │   │   └── src/
│   │   │       ├── default/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── lottie/
│   │   │       │                   └── builtin/
│   │   │       │                       ├── BuiltInLottieContentProvider.kt
│   │   │       │                       ├── BuiltInLottieInitializer.kt
│   │   │       │                       └── BuiltInLottieProvider.kt
│   │   │       └── main/
│   │   │           ├── AndroidManifest.xml
│   │   │           └── java/
│   │   │               └── run/
│   │   │                   └── granite/
│   │   │                       └── lottie/
│   │   │                           ├── GraniteLottieEvents.kt
│   │   │                           ├── GraniteLottieProvider.kt
│   │   │                           ├── GraniteLottieRegistry.kt
│   │   │                           ├── GraniteLottieView.kt
│   │   │                           ├── GraniteLottieViewManager.kt
│   │   │                           └── GraniteLottieViewPackage.kt
│   │   ├── ios/
│   │   │   ├── GraniteLottieProvider.swift
│   │   │   ├── GraniteLottieRegistry.swift
│   │   │   ├── GraniteLottieView.h
│   │   │   ├── GraniteLottieView.mm
│   │   │   └── Providers/
│   │   │       └── BuiltInLottieProvider.swift
│   │   ├── lottie.code-workspace
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── GraniteLottieView.tsx
│   │   │   ├── GraniteLottieViewNativeComponent.ts
│   │   │   ├── index.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── mpack/
│   │   ├── .scripts/
│   │   │   └── copy-vendors-dts.mjs
│   │   ├── .ts-prunerc.json
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── internal.d.ts
│   │   ├── mpack.code-workspace
│   │   ├── package.json
│   │   ├── plugins.d.ts
│   │   ├── src/
│   │   │   ├── bundler/
│   │   │   │   ├── Bundler.ts
│   │   │   │   ├── PluginDriver.ts
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── bundle.spec.ts
│   │   │   │   │   └── fixtures/
│   │   │   │   │       ├── alias/
│   │   │   │   │       │   └── index.js
│   │   │   │   │       ├── banner/
│   │   │   │   │       │   └── index.js
│   │   │   │   │       ├── default/
│   │   │   │   │       │   └── index.js
│   │   │   │   │       ├── es6/
│   │   │   │   │       │   └── index.js
│   │   │   │   │       └── flow/
│   │   │   │   │           └── index.js
│   │   │   │   ├── index.ts
│   │   │   │   ├── internal/
│   │   │   │   │   └── presets.ts
│   │   │   │   └── plugins/
│   │   │   │       ├── buildStatusPlugin/
│   │   │   │       │   ├── buildStatusPlugin.ts
│   │   │   │       │   └── index.ts
│   │   │   │       ├── index.ts
│   │   │   │       ├── requireContextPlugin/
│   │   │   │       │   ├── __fixtures__/
│   │   │   │       │   │   └── preview.require.context.ts
│   │   │   │       │   ├── __tests__/
│   │   │   │       │   │   └── scripts.spec.ts
│   │   │   │       │   ├── index.ts
│   │   │   │       │   ├── requireContextPlugin.ts
│   │   │   │       │   └── scripts.ts
│   │   │   │       ├── resolveHelpers.spec.ts
│   │   │   │       ├── resolveHelpers.ts
│   │   │   │       ├── resolvePlugin/
│   │   │   │       │   ├── __tests__/
│   │   │   │       │   │   ├── fixtures/
│   │   │   │       │   │   │   ├── deps-alias/
│   │   │   │       │   │   │   │   ├── build.js
│   │   │   │       │   │   │   │   ├── entry.ts
│   │   │   │       │   │   │   │   ├── foo-2.ts
│   │   │   │       │   │   │   │   ├── foo.ts
│   │   │   │       │   │   │   │   └── index.js
│   │   │   │       │   │   │   └── protocols/
│   │   │   │       │   │   │       └── entry.ts
│   │   │   │       │   │   └── resolvePlugin.spec.ts
│   │   │   │       │   ├── alias/
│   │   │   │       │   │   └── setupAliasResolver.ts
│   │   │   │       │   ├── index.ts
│   │   │   │       │   ├── protocol/
│   │   │   │       │   │   └── setupProtocolResolver.ts
│   │   │   │       │   └── resolvePlugin.ts
│   │   │   │       ├── shared/
│   │   │   │       │   └── swc.ts
│   │   │   │       ├── transformPlugin/
│   │   │   │       │   ├── __tests__/
│   │   │   │       │   │   ├── fixtures/
│   │   │   │       │   │   │   ├── entry.ts
│   │   │   │       │   │   │   ├── initialize.ts
│   │   │   │       │   │   │   └── prelude/
│   │   │   │       │   │   │       ├── build.js
│   │   │   │       │   │   │       ├── index.js
│   │   │   │       │   │   │       └── initialize.js
│   │   │   │       │   │   └── transformPlugin.spec.ts
│   │   │   │       │   ├── helpers/
│   │   │   │       │   │   └── preludeScript.ts
│   │   │   │       │   ├── index.ts
│   │   │   │       │   ├── steps/
│   │   │   │       │   │   ├── createCacheSteps.ts
│   │   │   │       │   │   ├── createFlowStripStep.ts
│   │   │   │       │   │   ├── createFullyTransformStep.ts
│   │   │   │       │   │   ├── createTransformCodegenStep.ts
│   │   │   │       │   │   └── createTransformToHermesSyntaxStep.ts
│   │   │   │       │   └── transformPlugin.ts
│   │   │   │       └── types.ts
│   │   │   ├── cache/
│   │   │   │   ├── Cache.ts
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── Cache.spec.ts
│   │   │   │   └── index.ts
│   │   │   ├── constants/
│   │   │   │   └── index.ts
│   │   │   ├── experimental/
│   │   │   │   ├── index.ts
│   │   │   │   ├── operations/
│   │   │   │   │   └── serve.ts
│   │   │   │   └── server/
│   │   │   │       ├── DevServer.ts
│   │   │   │       ├── constants.ts
│   │   │   │       ├── debugger/
│   │   │   │       │   ├── DebuggerEventHandler.ts
│   │   │   │       │   └── types.ts
│   │   │   │       ├── helpers/
│   │   │   │       │   ├── createBundlerForDevServer.ts
│   │   │   │       │   └── mergeBundles.ts
│   │   │   │       ├── index.ts
│   │   │   │       ├── middlewares/
│   │   │   │       │   ├── createLiveReloadMiddleware.ts
│   │   │   │       │   └── index.ts
│   │   │   │       ├── plugins/
│   │   │   │       │   ├── index.ts
│   │   │   │       │   ├── indexPagePlugin.ts
│   │   │   │       │   ├── reply.ts
│   │   │   │       │   ├── serveBundlePlugin.ts
│   │   │   │       │   ├── statusPlugin.ts
│   │   │   │       │   └── symbolicatePlugin/
│   │   │   │       │       ├── index.ts
│   │   │   │       │       ├── parseStackFrame.ts
│   │   │   │       │       ├── symbolicate.ts
│   │   │   │       │       └── symbolicatePlugin.ts
│   │   │   │       ├── types.ts
│   │   │   │       └── wss/
│   │   │   │           ├── WebSocketServerDelegate.ts
│   │   │   │           ├── WebSocketServerRouter.ts
│   │   │   │           └── index.ts
│   │   │   ├── index.ts
│   │   │   ├── lib.d.ts
│   │   │   ├── logger/
│   │   │   │   ├── Logger.ts
│   │   │   │   ├── clientLogger.ts
│   │   │   │   └── index.ts
│   │   │   ├── metro/
│   │   │   │   ├── assetRegistry.ts
│   │   │   │   ├── build.ts
│   │   │   │   ├── enhancedResolver.ts
│   │   │   │   ├── getMetroConfig.ts
│   │   │   │   ├── getMonorepoRoot.spec.ts
│   │   │   │   ├── getMonorepoRoot.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── pnpapi.ts
│   │   │   ├── operations/
│   │   │   │   ├── OpenDebuggerKeyboardHandler.ts
│   │   │   │   ├── attachKeyHandlers.ts
│   │   │   │   ├── build.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── keyReporter.ts
│   │   │   │   └── serve.ts
│   │   │   ├── performance/
│   │   │   │   ├── Performance.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── printSummary.ts
│   │   │   ├── plugins/
│   │   │   │   ├── index.ts
│   │   │   │   └── statusPlugin.ts
│   │   │   ├── shared/
│   │   │   │   └── PersistentStorage.ts
│   │   │   ├── testing/
│   │   │   │   ├── buildWithEsbuild.ts
│   │   │   │   ├── evaluate.ts
│   │   │   │   ├── fixtures/
│   │   │   │   │   └── build-with-config.js
│   │   │   │   ├── index.ts
│   │   │   │   ├── initializeFixture.ts
│   │   │   │   └── tempDir.ts
│   │   │   ├── transformer/
│   │   │   │   ├── AsyncTransformPipeline.ts
│   │   │   │   ├── TransformPipeline.ts
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── AsyncTransformPipeline.spec.ts
│   │   │   │   │   └── fixtures/
│   │   │   │   │       └── index.ts
│   │   │   │   └── index.ts
│   │   │   ├── types/
│   │   │   │   ├── BundlerConfig.ts
│   │   │   │   ├── Id.ts
│   │   │   │   ├── Plugin.ts
│   │   │   │   └── index.ts
│   │   │   ├── utils/
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── esbuildUtils.spec.ts
│   │   │   │   │   ├── getDefaultOutfileName.spec.ts
│   │   │   │   │   ├── getId.spec.ts
│   │   │   │   │   ├── md5.spec.ts
│   │   │   │   │   ├── replaceModulePath.spec.ts
│   │   │   │   │   └── replacePlaceholder.spec.ts
│   │   │   │   ├── buildResult.ts
│   │   │   │   ├── cleanupOutputDirectory.ts
│   │   │   │   ├── defineStepName.ts
│   │   │   │   ├── esbuildUtils.ts
│   │   │   │   ├── getBundleName.ts
│   │   │   │   ├── getBundleOutputs.ts
│   │   │   │   ├── getDefaultOutfileName.ts
│   │   │   │   ├── getDefaultReactNativePath.ts
│   │   │   │   ├── getId.ts
│   │   │   │   ├── getSourcemapName.ts
│   │   │   │   ├── isDebugMode.ts
│   │   │   │   ├── md5.ts
│   │   │   │   ├── printErrors.ts
│   │   │   │   ├── printLogo.ts
│   │   │   │   ├── printServerUrl.ts
│   │   │   │   ├── printSummary.ts
│   │   │   │   ├── progressBar.ts
│   │   │   │   ├── promise.ts
│   │   │   │   ├── replaceModulePath.ts
│   │   │   │   ├── replacePlaceholders.ts
│   │   │   │   ├── stripExtension.ts
│   │   │   │   └── writeBundle.ts
│   │   │   └── vendors/
│   │   │       ├── index.ts
│   │   │       ├── metro/
│   │   │       │   └── src/
│   │   │       │       ├── Assets.js
│   │   │       │       ├── Bundler/
│   │   │       │       │   └── util.js
│   │   │       │       ├── Bundler.js
│   │   │       │       ├── DeltaBundler/
│   │   │       │       │   ├── DeltaCalculator.js
│   │   │       │       │   ├── Serializers/
│   │   │       │       │   │   ├── baseBytecodeBundle.js
│   │   │       │       │   │   ├── baseJSBundle.js
│   │   │       │       │   │   ├── getAllFiles.js
│   │   │       │       │   │   ├── getAssets.js
│   │   │       │       │   │   ├── getExplodedSourceMap.js
│   │   │       │       │   │   ├── getRamBundleInfo.js
│   │   │       │       │   │   ├── helpers/
│   │   │       │       │   │   │   ├── bytecode.js
│   │   │       │       │   │   │   ├── getInlineSourceMappingURL.js
│   │   │       │       │   │   │   ├── getSourceMapInfo.js
│   │   │       │       │   │   │   ├── getTransitiveDependencies.js
│   │   │       │       │   │   │   ├── js.js
│   │   │       │       │   │   │   ├── processBytecodeModules.js
│   │   │       │       │   │   │   └── processModules.js
│   │   │       │       │   │   ├── hmrJSBundle.js
│   │   │       │       │   │   ├── sourceMapGenerator.js
│   │   │       │       │   │   ├── sourceMapObject.js
│   │   │       │       │   │   └── sourceMapString.js
│   │   │       │       │   ├── Transformer.js
│   │   │       │       │   ├── Worker.flow.js
│   │   │       │       │   ├── Worker.js
│   │   │       │       │   ├── WorkerFarm.js
│   │   │       │       │   ├── getTransformCacheKey.js
│   │   │       │       │   ├── graphOperations.js
│   │   │       │       │   ├── mergeDeltas.js
│   │   │       │       │   └── types.flow.js
│   │   │       │       ├── DeltaBundler.js
│   │   │       │       ├── HmrServer.js
│   │   │       │       ├── IncrementalBundler/
│   │   │       │       │   ├── GraphNotFoundError.js
│   │   │       │       │   ├── ResourceNotFoundError.js
│   │   │       │       │   └── RevisionNotFoundError.js
│   │   │       │       ├── IncrementalBundler.js
│   │   │       │       ├── ModuleGraph/
│   │   │       │       │   ├── module.js
│   │   │       │       │   ├── node-haste/
│   │   │       │       │   │   ├── HasteFS.js
│   │   │       │       │   │   ├── Module.js
│   │   │       │       │   │   ├── ModuleCache.js
│   │   │       │       │   │   ├── Package.js
│   │   │       │       │   │   ├── node-haste.flow.js
│   │   │       │       │   │   └── node-haste.js
│   │   │       │       │   ├── output/
│   │   │       │       │   │   ├── indexed-ram-bundle.js
│   │   │       │       │   │   ├── multiple-files-ram-bundle.js
│   │   │       │       │   │   ├── plain-bundle.js
│   │   │       │       │   │   ├── reverse-dependency-map-references.js
│   │   │       │       │   │   └── util.js
│   │   │       │       │   ├── silent-console.js
│   │   │       │       │   ├── types.flow.js
│   │   │       │       │   └── worker/
│   │   │       │       │       ├── JsFileWrapping.js
│   │   │       │       │       ├── Platforms.js
│   │   │       │       │       ├── collectDependencies.js
│   │   │       │       │       ├── generate.js
│   │   │       │       │       ├── generateImportNames.js
│   │   │       │       │       └── mergeSourceMaps.js
│   │   │       │       ├── Server/
│   │   │       │       │   ├── MultipartResponse.js
│   │   │       │       │   └── symbolicate.js
│   │   │       │       ├── Server.js
│   │   │       │       ├── cli-utils.js
│   │   │       │       ├── cli.js
│   │   │       │       ├── commands/
│   │   │       │       │   ├── build.js
│   │   │       │       │   ├── dependencies.js
│   │   │       │       │   └── serve.js
│   │   │       │       ├── index.d.ts
│   │   │       │       ├── index.flow.js
│   │   │       │       ├── index.js
│   │   │       │       ├── isPnP.js
│   │   │       │       ├── lib/
│   │   │       │       │   ├── BatchProcessor.js
│   │   │       │       │   ├── CountingSet.js
│   │   │       │       │   ├── JsonReporter.js
│   │   │       │       │   ├── RamBundleParser.js
│   │   │       │       │   ├── ReportableEvent.d.ts
│   │   │       │       │   ├── TerminalReporter.d.ts
│   │   │       │       │   ├── TerminalReporter.js
│   │   │       │       │   ├── bundleToBytecode.js
│   │   │       │       │   ├── bundleToString.js
│   │   │       │       │   ├── contextModule.js
│   │   │       │       │   ├── contextModuleTemplates.js
│   │   │       │       │   ├── countLines.js
│   │   │       │       │   ├── createModuleIdFactory.js
│   │   │       │       │   ├── createWebsocketServer.js
│   │   │       │       │   ├── debounceAsyncQueue.js
│   │   │       │       │   ├── formatBundlingError.js
│   │   │       │       │   ├── getAppendScripts.js
│   │   │       │       │   ├── getGraphId.js
│   │   │       │       │   ├── getMaxWorkers.js
│   │   │       │       │   ├── getPreludeCode.js
│   │   │       │       │   ├── getPrependedScripts.js
│   │   │       │       │   ├── logToConsole.js
│   │   │       │       │   ├── parseCustomResolverOptions.js
│   │   │       │       │   ├── parseCustomTransformOptions.js
│   │   │       │       │   ├── parseOptionsFromUrl.js
│   │   │       │       │   ├── relativizeSourceMap.js
│   │   │       │       │   ├── reporting.js
│   │   │       │       │   ├── splitBundleOptions.js
│   │   │       │       │   └── transformHelpers.js
│   │   │       │       ├── node-haste/
│   │   │       │       │   ├── DependencyGraph/
│   │   │       │       │   │   ├── ModuleResolution.js
│   │   │       │       │   │   └── createHasteMap.js
│   │   │       │       │   ├── DependencyGraph.js
│   │   │       │       │   ├── Module.js
│   │   │       │       │   ├── ModuleCache.js
│   │   │       │       │   ├── Package.js
│   │   │       │       │   └── lib/
│   │   │       │       │       ├── AssetPaths.js
│   │   │       │       │       └── parsePlatformFilePath.js
│   │   │       │       └── shared/
│   │   │       │           ├── output/
│   │   │       │           │   ├── RamBundle/
│   │   │       │           │   │   ├── as-assets.js
│   │   │       │           │   │   ├── as-indexed-file.js
│   │   │       │           │   │   ├── buildSourcemapWithMetadata.js
│   │   │       │           │   │   ├── magic-number.js
│   │   │       │           │   │   ├── util.js
│   │   │       │           │   │   └── write-sourcemap.js
│   │   │       │           │   ├── RamBundle.js
│   │   │       │           │   ├── bundle.flow.js
│   │   │       │           │   ├── bundle.js
│   │   │       │           │   ├── meta.js
│   │   │       │           │   ├── unbundle.js
│   │   │       │           │   └── writeFile.js
│   │   │       │           └── types.flow.js
│   │   │       ├── metro-config/
│   │   │       │   └── src/
│   │   │       │       ├── configTypes.flow.js
│   │   │       │       ├── defaults/
│   │   │       │       │   ├── defaults.js
│   │   │       │       │   ├── exclusionList.d.ts
│   │   │       │       │   ├── exclusionList.js
│   │   │       │       │   ├── index.d.ts
│   │   │       │       │   ├── index.js
│   │   │       │       │   └── validConfig.js
│   │   │       │       ├── index.js
│   │   │       │       ├── loadConfig.d.ts
│   │   │       │       └── loadConfig.js
│   │   │       ├── metro-core/
│   │   │       │   └── src/
│   │   │       │       ├── Logger.js
│   │   │       │       ├── Terminal.d.ts
│   │   │       │       ├── Terminal.js
│   │   │       │       ├── canonicalize.js
│   │   │       │       ├── errors/
│   │   │       │       │   ├── AmbiguousModuleResolutionError.js
│   │   │       │       │   └── PackageResolutionError.js
│   │   │       │       ├── errors.js
│   │   │       │       └── index.js
│   │   │       ├── metro-inspector-proxy/
│   │   │       │   └── src/
│   │   │       │       ├── Device.js
│   │   │       │       ├── InspectorProxy.d.ts
│   │   │       │       ├── InspectorProxy.js
│   │   │       │       ├── cli.js
│   │   │       │       ├── index.js
│   │   │       │       └── types.js
│   │   │       └── metro-transform-worker/
│   │   │           └── src/
│   │   │               ├── index.js
│   │   │               └── utils/
│   │   │                   ├── assetTransformer.js
│   │   │                   └── getMinifier.js
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   ├── tsconfig.spec.json
│   │   ├── tsup.config.mts
│   │   ├── vendors.d.ts
│   │   ├── vitest.config.mts
│   │   └── vitest.global-setup.mts
│   ├── native/
│   │   ├── .scripts/
│   │   │   ├── generate-fingerprint.mts
│   │   │   └── sync-packages.mts
│   │   ├── @react-native-async-storage/
│   │   │   └── async-storage/
│   │   │       ├── index.d.ts
│   │   │       └── jest/
│   │   │           └── async-storage-mock.d.ts
│   │   ├── @react-native-community/
│   │   │   └── blur.d.ts
│   │   ├── @react-navigation/
│   │   │   ├── elements.d.ts
│   │   │   ├── native-stack.d.ts
│   │   │   └── native.d.ts
│   │   ├── @shopify/
│   │   │   └── flash-list.d.ts
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── babel.config.js
│   │   ├── fingerprint/
│   │   │   ├── index.d.ts
│   │   │   ├── index.js
│   │   │   └── index.mjs
│   │   ├── fingerprint.d.ts
│   │   ├── jest.config.js
│   │   ├── lottie-react-native.d.ts
│   │   ├── native-packages.json
│   │   ├── native.code-workspace
│   │   ├── package.json
│   │   ├── react-native-fast-image.d.ts
│   │   ├── react-native-gesture-handler/
│   │   │   ├── index.d.ts
│   │   │   └── jestSetup.d.ts
│   │   ├── react-native-pager-view.d.ts
│   │   ├── react-native-safe-area-context/
│   │   │   ├── index.d.ts
│   │   │   └── jest/
│   │   │       └── mock.d.ts
│   │   ├── react-native-screens.d.ts
│   │   ├── react-native-svg.d.ts
│   │   ├── react-native-video.d.ts
│   │   ├── react-native-webview.d.ts
│   │   ├── src/
│   │   │   ├── @react-native-async-storage/
│   │   │   │   └── async-storage/
│   │   │   │       ├── index.ts
│   │   │   │       └── jest/
│   │   │   │           └── async-storage-mock.ts
│   │   │   ├── @react-native-community/
│   │   │   │   └── blur.ts
│   │   │   ├── @react-navigation/
│   │   │   │   ├── elements.ts
│   │   │   │   ├── native-stack.ts
│   │   │   │   └── native.ts
│   │   │   ├── @shopify/
│   │   │   │   └── flash-list.ts
│   │   │   ├── lottie-react-native.ts
│   │   │   ├── react-native-fast-image.ts
│   │   │   ├── react-native-gesture-handler/
│   │   │   │   ├── index.ts
│   │   │   │   ├── jestSetup.js
│   │   │   │   └── jestSetup.ts
│   │   │   ├── react-native-pager-view.ts
│   │   │   ├── react-native-safe-area-context/
│   │   │   │   ├── index.ts
│   │   │   │   └── jest/
│   │   │   │       └── mock.ts
│   │   │   ├── react-native-screens.ts
│   │   │   ├── react-native-svg.ts
│   │   │   ├── react-native-video.ts
│   │   │   └── react-native-webview.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── naver-map/
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── GraniteNaverMap.podspec
│   │   ├── NOTICE
│   │   ├── android/
│   │   │   ├── build.gradle
│   │   │   ├── gradle.properties
│   │   │   └── src/
│   │   │       ├── builtinProvider/
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── navermap/
│   │   │       │                   └── builtinProvider/
│   │   │       │                       └── BuiltInGraniteNaverMapProvider.kt
│   │   │       ├── main/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── navermap/
│   │   │       │                   ├── GraniteNaverMapEvents.kt
│   │   │       │                   ├── GraniteNaverMapPackage.kt
│   │   │       │                   ├── GraniteNaverMapProvider.kt
│   │   │       │                   ├── GraniteNaverMapRegistry.kt
│   │   │       │                   └── GraniteNaverMapView.kt
│   │   │       ├── newarch/
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── navermap/
│   │   │       │                   └── GraniteNaverMapViewManager.kt
│   │   │       └── oldarch/
│   │   │           └── java/
│   │   │               └── run/
│   │   │                   └── granite/
│   │   │                       └── navermap/
│   │   │                           └── GraniteNaverMapViewManager.kt
│   │   ├── example/
│   │   │   ├── .detoxrc.js
│   │   │   ├── android/
│   │   │   │   ├── app/
│   │   │   │   │   ├── build.gradle
│   │   │   │   │   ├── debug.keystore
│   │   │   │   │   └── src/
│   │   │   │   │       ├── androidTest/
│   │   │   │   │       │   ├── AndroidManifest.xml
│   │   │   │   │       │   └── java/
│   │   │   │   │       │       └── run/
│   │   │   │   │       │           └── granite/
│   │   │   │   │       │               └── navermap/
│   │   │   │   │       │                   └── example/
│   │   │   │   │       │                       └── DetoxTest.java
│   │   │   │   │       └── main/
│   │   │   │   │           ├── AndroidManifest.xml
│   │   │   │   │           ├── java/
│   │   │   │   │           │   └── run/
│   │   │   │   │           │       └── granite/
│   │   │   │   │           │           └── navermap/
│   │   │   │   │           │               └── example/
│   │   │   │   │           │                   ├── MainActivity.kt
│   │   │   │   │           │                   └── MainApplication.kt
│   │   │   │   │           └── res/
│   │   │   │   │               ├── drawable/
│   │   │   │   │               │   ├── ic_launcher_foreground.xml
│   │   │   │   │               │   └── rn_edit_text_material.xml
│   │   │   │   │               └── values/
│   │   │   │   │                   ├── colors.xml
│   │   │   │   │                   ├── strings.xml
│   │   │   │   │                   └── styles.xml
│   │   │   │   ├── build.gradle
│   │   │   │   └── settings.gradle
│   │   │   ├── app.json
│   │   │   ├── babel.config.js
│   │   │   ├── e2e/
│   │   │   │   ├── GraniteNaverMap.e2e.ts
│   │   │   │   ├── jest.config.js
│   │   │   │   └── tsconfig.json
│   │   │   ├── index.js
│   │   │   ├── ios/
│   │   │   │   ├── .xcode.env
│   │   │   │   ├── GraniteNaverMapExample/
│   │   │   │   │   ├── AppDelegate.swift
│   │   │   │   │   ├── Images.xcassets/
│   │   │   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── PrivacyInfo.xcprivacy
│   │   │   │   ├── GraniteNaverMapExample.xcodeproj/
│   │   │   │   │   └── project.pbxproj
│   │   │   │   ├── GraniteNaverMapExample.xcworkspace/
│   │   │   │   │   └── contents.xcworkspacedata
│   │   │   │   └── Podfile
│   │   │   ├── jest.config.js
│   │   │   ├── metro.config.js
│   │   │   ├── package.json
│   │   │   ├── react-native.config.js
│   │   │   └── src/
│   │   │       └── App.tsx
│   │   ├── ios/
│   │   │   ├── GraniteNaverMap-Bridging-Header.h
│   │   │   ├── GraniteNaverMapProvider.swift
│   │   │   ├── GraniteNaverMapRegistry.swift
│   │   │   ├── GraniteNaverMapView.h
│   │   │   ├── GraniteNaverMapView.mm
│   │   │   ├── GraniteNaverMapViewImpl.swift
│   │   │   ├── GraniteNaverMapViewManager.m
│   │   │   ├── GraniteNaverMapViewManager.swift
│   │   │   ├── GraniteNaverMapViewWrapper.swift
│   │   │   └── builtinProvider/
│   │   │       ├── BuiltInNaverMapProvider.swift
│   │   │       ├── GraniteNaverMapMarkerData.swift
│   │   │       ├── NMFMarker+Extension.swift
│   │   │       ├── RCTConvert+NMFMapView.h
│   │   │       └── RCTConvert+NMFMapView.m
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── NaverMapView.tsx
│   │   │   ├── index.tsx
│   │   │   ├── internals/
│   │   │   │   ├── colorUtils.ts
│   │   │   │   ├── context.ts
│   │   │   │   ├── id.ts
│   │   │   │   ├── useMapOverlay.ts
│   │   │   │   └── usePreservedReference.ts
│   │   │   ├── overlays/
│   │   │   │   ├── ArrowheadPath.ts
│   │   │   │   ├── Circle.ts
│   │   │   │   ├── GroundOverlay.ts
│   │   │   │   ├── InfoWindow.ts
│   │   │   │   ├── Marker.ts
│   │   │   │   ├── Path.ts
│   │   │   │   ├── Polygon.ts
│   │   │   │   ├── Polyline.ts
│   │   │   │   └── index.ts
│   │   │   ├── specs/
│   │   │   │   └── GraniteNaverMapViewNativeComponent.ts
│   │   │   └── types/
│   │   │       ├── Coord.ts
│   │   │       └── index.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── plugin-core/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── config/
│   │   │   │   ├── defineConfig.ts
│   │   │   │   ├── graniteGlobals.ts
│   │   │   │   └── loadConfig.ts
│   │   │   ├── createContext.ts
│   │   │   ├── index.ts
│   │   │   ├── schema/
│   │   │   │   └── pluginConfig.ts
│   │   │   ├── types/
│   │   │   │   ├── BuildConfig.ts
│   │   │   │   ├── BuildResult.ts
│   │   │   │   ├── DevServerConfig.ts
│   │   │   │   ├── GranitePlugin.ts
│   │   │   │   ├── MetroConfig.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── vendors/
│   │   │   │       └── metro.ts
│   │   │   └── utils/
│   │   │       ├── buildResult.ts
│   │   │       ├── createPluginHooksDriver.ts
│   │   │       ├── flattenPlugins.spec.ts
│   │   │       ├── flattenPlugins.ts
│   │   │       ├── mergeBabel.spec.ts
│   │   │       ├── mergeBabel.ts
│   │   │       ├── mergeBuildConfigs.spec.ts
│   │   │       ├── mergeBuildConfigs.ts
│   │   │       ├── mergeConfig.spec.ts
│   │   │       ├── mergeConfig.ts
│   │   │       ├── mergeDevServer.spec.ts
│   │   │       ├── mergeDevServer.ts
│   │   │       ├── mergeEsbuild.spec.ts
│   │   │       ├── mergeEsbuild.ts
│   │   │       ├── mergeExtra.spec.ts
│   │   │       ├── mergeExtra.ts
│   │   │       ├── mergeMetro.spec.ts
│   │   │       ├── mergeMetro.ts
│   │   │       ├── mergeResolver.spec.ts
│   │   │       ├── mergeResolver.ts
│   │   │       ├── mergeSwc.spec.ts
│   │   │       ├── mergeSwc.ts
│   │   │       ├── mergeTransformer.spec.ts
│   │   │       ├── mergeTransformer.ts
│   │   │       ├── resolveConfig.spec.ts
│   │   │       ├── resolveConfig.ts
│   │   │       └── resolvePlugins.ts
│   │   ├── tsconfig.json
│   │   └── tsdown.config.ts
│   ├── plugin-env/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── envPlugin.ts
│   │   │   ├── generateEnvType.ts
│   │   │   ├── getRuntimeEnvScript.spec.ts
│   │   │   ├── getRuntimeEnvScript.ts
│   │   │   ├── index.ts
│   │   │   ├── plugins/
│   │   │   │   ├── babel.spec.ts
│   │   │   │   └── babel.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── vitest.config.mts
│   ├── plugin-hermes/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── compileHbc.ts
│   │   │   ├── composeSourcemap.ts
│   │   │   ├── hermesPlugin.ts
│   │   │   ├── index.ts
│   │   │   ├── resolveHermesBinaryPath.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── vitest.config.mts
│   ├── plugin-micro-frontend/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── runtime.d.ts
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── log.ts
│   │   │   ├── microFrontendPlugin.ts
│   │   │   ├── prelude.spec.ts
│   │   │   ├── prelude.ts
│   │   │   ├── remote.ts
│   │   │   ├── resolver.ts
│   │   │   ├── runtime/
│   │   │   │   ├── createContainer.ts
│   │   │   │   ├── exposeModule.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── registerShared.ts
│   │   │   │   ├── runtime.spec.ts
│   │   │   │   ├── types.ts
│   │   │   │   ├── utils.spec.ts
│   │   │   │   └── utils.ts
│   │   │   ├── types.ts
│   │   │   └── utils/
│   │   │       ├── intoShared.spec.ts
│   │   │       ├── intoShared.ts
│   │   │       └── resolveReactNativeBasePath.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── vitest.config.mts
│   ├── plugin-router/
│   │   ├── CHANGELOG.md
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── __fixtures__/
│   │   │   ├── has-named-export-route.tsx
│   │   │   ├── has-variable-export-route.tsx
│   │   │   └── no-export-route.tsx
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── checkExportRoute.spec.ts
│   │   │   ├── checkExportRoute.ts
│   │   │   ├── generateRouterFile.ts
│   │   │   ├── getComponentName.spec.ts
│   │   │   ├── getComponentName.ts
│   │   │   ├── getPageName.spec.ts
│   │   │   ├── getPageName.ts
│   │   │   ├── getPath.spec.ts
│   │   │   ├── getPath.ts
│   │   │   ├── index.ts
│   │   │   ├── routerPlugin.ts
│   │   │   ├── template.ts
│   │   │   ├── transformNewRouteFile.spec.ts
│   │   │   ├── transformNewRouteFile.ts
│   │   │   ├── types.ts
│   │   │   ├── utils/
│   │   │   │   ├── transformTemplate.spec.ts
│   │   │   │   └── transformTemplate.ts
│   │   │   └── watchRouter.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── vitest.config.mts
│   ├── plugin-rozenite/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── rozenitePlugin.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── vitest.config.mts
│   ├── plugin-sentry/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── extractSentryDebugId.spec.ts
│   │   │   ├── extractSentryDebugId.ts
│   │   │   ├── index.ts
│   │   │   ├── injectSentryDebugId.ts
│   │   │   ├── resolveHermesBundle.ts
│   │   │   ├── sentryClientActions.ts
│   │   │   ├── sentryPlugin.ts
│   │   │   ├── snippets.ts
│   │   │   ├── types.ts
│   │   │   └── uploadSourcemap.ts
│   │   ├── tsconfig.json
│   │   ├── tsdown.config.ts
│   │   └── vitest.config.mts
│   ├── react-native/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── async-bridges.d.ts
│   │   ├── babel.config.js
│   │   ├── bin/
│   │   │   └── cli.js
│   │   ├── cli.d.ts
│   │   ├── config.d.ts
│   │   ├── constant-bridges.d.ts
│   │   ├── jest.d.ts
│   │   ├── package.json
│   │   ├── presets.d.ts
│   │   ├── react-native.code-workspace
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── App/
│   │   │   │   │   ├── index.android.tsx
│   │   │   │   │   ├── index.d.ts
│   │   │   │   │   └── index.ios.tsx
│   │   │   │   ├── AppRoot.tsx
│   │   │   │   ├── Granite.tsx
│   │   │   │   ├── HostAppRoot.tsx
│   │   │   │   ├── context/
│   │   │   │   │   ├── InitialPropsContext.tsx
│   │   │   │   │   ├── getSearchParamsFromUrl.spec.ts
│   │   │   │   │   ├── getSearchParamsFromUrl.ts
│   │   │   │   │   └── useInitialSearchParams.ts
│   │   │   │   └── index.ts
│   │   │   ├── async-bridges.ts
│   │   │   ├── cli.ts
│   │   │   ├── config.ts
│   │   │   ├── constant-bridges.ts
│   │   │   ├── constants.ts
│   │   │   ├── dev-entrypoint/
│   │   │   │   └── index.tsx
│   │   │   ├── event/
│   │   │   │   ├── abstract.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── useGraniteEvent.ts
│   │   │   ├── image/
│   │   │   │   ├── Image.tsx
│   │   │   │   ├── SvgImage.tsx
│   │   │   │   ├── index.ts
│   │   │   │   └── types.ts
│   │   │   ├── impression-area/
│   │   │   │   ├── ImpressionArea.tsx
│   │   │   │   └── index.ts
│   │   │   ├── index.ts
│   │   │   ├── initial-props/
│   │   │   │   ├── InitialProps.ts
│   │   │   │   └── index.ts
│   │   │   ├── intersection-observer/
│   │   │   │   ├── IOContext.ts
│   │   │   │   ├── IOFlatList.ts
│   │   │   │   ├── IOManager.ts
│   │   │   │   ├── IOScrollView.ts
│   │   │   │   ├── InView.tsx
│   │   │   │   ├── IntersectionObserver.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── withIO.tsx
│   │   │   ├── jest.ts
│   │   │   ├── keyboard/
│   │   │   │   ├── KeyboardAboveView.tsx
│   │   │   │   ├── getInitialKeyboardHeight.ts
│   │   │   │   ├── getKeyboardEventNames.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── useKeyboardAnimatedHeight.tsx
│   │   │   │   └── useKeyboardHeight.tsx
│   │   │   ├── lottie/
│   │   │   │   ├── Lottie.tsx
│   │   │   │   ├── ensureSafeLottie.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── useFetchResource.ts
│   │   │   ├── native-modules/
│   │   │   │   ├── index.ts
│   │   │   │   └── natives/
│   │   │   │       ├── closeView.ts
│   │   │   │       ├── getSchemeUri.ts
│   │   │   │       ├── index.ts
│   │   │   │       └── openURL.ts
│   │   │   ├── polyfills/
│   │   │   │   └── index.ts
│   │   │   ├── router/
│   │   │   │   ├── Router.tsx
│   │   │   │   ├── components/
│   │   │   │   │   ├── BackButton.tsx
│   │   │   │   │   ├── CanGoBackGuard.tsx
│   │   │   │   │   ├── ErrorBoundary.tsx
│   │   │   │   │   ├── StackNavigator.tsx
│   │   │   │   │   └── useRouterBackHandler.tsx
│   │   │   │   ├── constants.ts
│   │   │   │   ├── createRoute.test-d.ts
│   │   │   │   ├── createRoute.ts
│   │   │   │   ├── hooks/
│   │   │   │   │   ├── useInitialRouteName.tsx
│   │   │   │   │   ├── useIsInitialScreen.ts
│   │   │   │   │   └── useRouterControls.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── types/
│   │   │   │   │   ├── ErrorComponent.ts
│   │   │   │   │   ├── RequireContext.ts
│   │   │   │   │   ├── RouteScreen.ts
│   │   │   │   │   ├── Screen.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── screen-option.ts
│   │   │   │   └── utils/
│   │   │   │       ├── createParentRouteScreenMap.spec.ts
│   │   │   │       ├── createParentRouteScreenMap.ts
│   │   │   │       ├── defaultParserParams.spec.ts
│   │   │   │       ├── defaultParserParams.ts
│   │   │   │       ├── index.ts
│   │   │   │       ├── matchers.ts
│   │   │   │       ├── mergeParentLayoutScreen.spec.tsx
│   │   │   │       ├── mergeParentLayoutScreen.tsx
│   │   │   │       ├── path.spec.ts
│   │   │   │       ├── path.ts
│   │   │   │       ├── screen.tsx
│   │   │   │       ├── standardSchema.ts
│   │   │   │       └── validateRouteParams.ts
│   │   │   ├── scroll-view-inertial-background/
│   │   │   │   ├── ScrollViewInertialBackground.tsx
│   │   │   │   └── index.ts
│   │   │   ├── status-bar/
│   │   │   │   ├── StatusBar.android.tsx
│   │   │   │   ├── StatusBar.d.ts
│   │   │   │   ├── StatusBar.ios.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── utils.ts
│   │   │   ├── types/
│   │   │   │   └── global.ts
│   │   │   ├── use-back-event/
│   │   │   │   ├── index.ts
│   │   │   │   └── useBackEvent.tsx
│   │   │   ├── utils/
│   │   │   │   ├── getSchemePrefix.spec.ts
│   │   │   │   ├── getSchemePrefix.ts
│   │   │   │   ├── isNewArchEnabled.ts
│   │   │   │   ├── noop.ts
│   │   │   │   └── usePreservedCallback.ts
│   │   │   ├── video/
│   │   │   │   ├── Video.tsx
│   │   │   │   └── index.ts
│   │   │   └── visibility/
│   │   │       ├── VisibilityProvider.tsx
│   │   │       ├── index.ts
│   │   │       ├── onVisibilityChanged.ts
│   │   │       ├── react-navigation/
│   │   │       │   ├── index.ts
│   │   │       │   ├── useIsFocusedSafely.tsx
│   │   │       │   └── useNavigationSafely.tsx
│   │   │       ├── useIsAppForeground.tsx
│   │   │       ├── useVisibility.tsx
│   │   │       ├── useVisibilityChange.ts
│   │   │       ├── useVisibilityChanged.tsx
│   │   │       └── utils/
│   │   │           └── usePrevious.tsx
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   ├── tsup.config.ts
│   │   ├── types.d.ts
│   │   └── vitest.config.mts
│   ├── style-utils/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── babel.config.js
│   │   ├── jest.config.js
│   │   ├── jest.setup-matchers.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── box-spacing.spec.tsx
│   │   │   ├── box-spacing.tsx
│   │   │   ├── children.spec.tsx
│   │   │   ├── children.tsx
│   │   │   ├── flex.spec.tsx
│   │   │   ├── flex.tsx
│   │   │   ├── index.ts
│   │   │   ├── spacing.spec.tsx
│   │   │   ├── spacing.tsx
│   │   │   ├── stack.spec.tsx
│   │   │   └── stack.tsx
│   │   ├── style-utils.code-workspace
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   ├── utils/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── ensureSafetyInvoke.ts
│   │   │   ├── getPackageRoot.ts
│   │   │   ├── index.ts
│   │   │   ├── localTempDirectory.ts
│   │   │   └── readZipContent.ts
│   │   ├── tsconfig.json
│   │   └── tsup.config.ts
│   ├── video/
│   │   ├── CHANGELOG.md
│   │   ├── GraniteVideo.podspec
│   │   ├── NOTICE
│   │   ├── android/
│   │   │   ├── README.md
│   │   │   ├── build.gradle
│   │   │   ├── gradle.properties
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── video/
│   │   │       │                   ├── GraniteVideoModule.kt
│   │   │       │                   ├── GraniteVideoPackage.kt
│   │   │       │                   ├── GraniteVideoView.kt
│   │   │       │                   ├── GraniteVideoViewManager.kt
│   │   │       │                   ├── event/
│   │   │       │                   │   ├── GraniteVideoEvents.kt
│   │   │       │                   │   ├── VideoEventDispatcher.kt
│   │   │       │                   │   └── VideoEventListenerAdapter.kt
│   │   │       │                   └── provider/
│   │   │       │                       └── GraniteVideoProvider.kt
│   │   │       ├── media3/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   └── java/
│   │   │       │       └── run/
│   │   │       │           └── granite/
│   │   │       │               └── video/
│   │   │       │                   └── provider/
│   │   │       │                       └── media3/
│   │   │       │                           ├── ExoPlayerProvider.kt
│   │   │       │                           ├── Media3ContentProvider.kt
│   │   │       │                           ├── Media3Initializer.kt
│   │   │       │                           ├── factory/
│   │   │       │                           │   ├── ExoPlayerFactory.kt
│   │   │       │                           │   ├── MediaSourceFactory.kt
│   │   │       │                           │   ├── TrackSelectorFactory.kt
│   │   │       │                           │   └── VideoSurfaceFactory.kt
│   │   │       │                           ├── listener/
│   │   │       │                           │   └── ExoPlayerEventListener.kt
│   │   │       │                           └── scheduler/
│   │   │       │                               └── ProgressScheduler.kt
│   │   │       └── test/
│   │   │           ├── java/
│   │   │           │   └── run/
│   │   │           │       └── granite/
│   │   │           │           └── video/
│   │   │           │               ├── GraniteVideoViewRobolectricTest.kt
│   │   │           │               ├── event/
│   │   │           │               │   └── VideoEventListenerAdapterTest.kt
│   │   │           │               ├── helpers/
│   │   │           │               │   ├── FakeGraniteVideoProvider.kt
│   │   │           │               │   └── TestProgressScheduler.kt
│   │   │           │               └── provider/
│   │   │           │                   ├── GraniteVideoRegistryTest.kt
│   │   │           │                   ├── ProviderContractTest.kt
│   │   │           │                   └── media3/
│   │   │           │                       └── listener/
│   │   │           │                           └── ExoPlayerEventListenerTest.kt
│   │   │           └── resources/
│   │   │               └── kotest.properties
│   │   ├── example/
│   │   │   ├── .bundle/
│   │   │   │   └── config
│   │   │   ├── .detoxrc.js
│   │   │   ├── .watchmanconfig
│   │   │   ├── Gemfile
│   │   │   ├── README.md
│   │   │   ├── android/
│   │   │   │   ├── app/
│   │   │   │   │   ├── build.gradle
│   │   │   │   │   ├── debug.keystore
│   │   │   │   │   ├── proguard-rules.pro
│   │   │   │   │   └── src/
│   │   │   │   │       ├── androidTest/
│   │   │   │   │       │   ├── AndroidManifest.xml
│   │   │   │   │       │   └── java/
│   │   │   │   │       │       └── run/
│   │   │   │   │       │           └── granite/
│   │   │   │   │       │               └── video/
│   │   │   │   │       │                   └── example/
│   │   │   │   │       │                       └── DetoxTest.java
│   │   │   │   │       └── main/
│   │   │   │   │           ├── AndroidManifest.xml
│   │   │   │   │           ├── java/
│   │   │   │   │           │   └── run/
│   │   │   │   │           │       └── granite/
│   │   │   │   │           │           └── video/
│   │   │   │   │           │               └── example/
│   │   │   │   │           │                   ├── MainActivity.kt
│   │   │   │   │           │                   └── MainApplication.kt
│   │   │   │   │           └── res/
│   │   │   │   │               ├── drawable/
│   │   │   │   │               │   └── rn_edit_text_material.xml
│   │   │   │   │               └── values/
│   │   │   │   │                   ├── strings.xml
│   │   │   │   │                   └── styles.xml
│   │   │   │   ├── build.gradle
│   │   │   │   ├── gradle/
│   │   │   │   │   └── wrapper/
│   │   │   │   │       ├── gradle-wrapper.jar
│   │   │   │   │       └── gradle-wrapper.properties
│   │   │   │   ├── gradle.properties
│   │   │   │   ├── gradlew
│   │   │   │   ├── gradlew.bat
│   │   │   │   └── settings.gradle
│   │   │   ├── app.json
│   │   │   ├── babel.config.js
│   │   │   ├── e2e/
│   │   │   │   ├── GraniteVideo.e2e.ts
│   │   │   │   ├── jest.config.js
│   │   │   │   └── tsconfig.json
│   │   │   ├── index.js
│   │   │   ├── ios/
│   │   │   │   ├── .xcode.env
│   │   │   │   ├── GraniteVideoExample/
│   │   │   │   │   ├── AppDelegate.swift
│   │   │   │   │   ├── Images.xcassets/
│   │   │   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── PrivacyInfo.xcprivacy
│   │   │   │   ├── GraniteVideoExample.xcodeproj/
│   │   │   │   │   ├── project.pbxproj
│   │   │   │   │   └── xcshareddata/
│   │   │   │   │       └── xcschemes/
│   │   │   │   │           └── GraniteVideoExample.xcscheme
│   │   │   │   ├── GraniteVideoExample.xcworkspace/
│   │   │   │   │   └── contents.xcworkspacedata
│   │   │   │   └── Podfile
│   │   │   ├── jest.config.js
│   │   │   ├── metro.config.js
│   │   │   ├── package.json
│   │   │   ├── react-native.config.js
│   │   │   └── src/
│   │   │       └── App.tsx
│   │   ├── ios/
│   │   │   ├── GraniteVideoComponentsProvider.h
│   │   │   ├── GraniteVideoProvider.swift
│   │   │   ├── GraniteVideoView.h
│   │   │   ├── GraniteVideoView.mm
│   │   │   └── Providers/
│   │   │       └── AVPlayerProvider.swift
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── GraniteVideo.tsx
│   │   │   ├── GraniteVideoNativeComponent.ts
│   │   │   ├── index.ts
│   │   │   └── types.ts
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   └── vitest/
│       ├── CHANGELOG.md
│       ├── LICENSE
│       ├── NOTICE
│       ├── README.md
│       ├── package.json
│       ├── src/
│       │   ├── assets.ts
│       │   ├── globals.d.ts
│       │   ├── index.ts
│       │   ├── jestBridge.spec.ts
│       │   ├── jestBridge.ts
│       │   ├── mirror.spec.ts
│       │   ├── mirror.ts
│       │   ├── reactNative.spec.ts
│       │   ├── reactNative.ts
│       │   ├── reactNativeRuntime.spec.ts
│       │   ├── reactNativeRuntime.ts
│       │   ├── runtimeBootstrap.ts
│       │   ├── setup.ts
│       │   ├── transpile.spec.ts
│       │   └── transpile.ts
│       ├── tsconfig.json
│       ├── tsdown.config.ts
│       └── vitest.config.mts
├── services/
│   ├── counter/
│   │   ├── README.md
│   │   ├── babel.config.js
│   │   ├── eslint.config.mjs
│   │   ├── granite.config.ts
│   │   ├── index.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _404.tsx
│   │   │   └── index.tsx
│   │   ├── react-native.config.js
│   │   ├── require.context.ts
│   │   ├── src/
│   │   │   ├── _app.tsx
│   │   │   ├── env.d.ts
│   │   │   ├── pages/
│   │   │   │   └── index.tsx
│   │   │   └── router.gen.ts
│   │   └── tsconfig.json
│   ├── pulumi-testbed/
│   │   ├── .gitignore
│   │   ├── Pulumi.dev.yaml
│   │   ├── Pulumi.yaml
│   │   ├── README.md
│   │   ├── index.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── shared/
│   │   ├── README.md
│   │   ├── VERSION
│   │   ├── granite.config.ts
│   │   ├── index.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── _app.tsx
│   │   │   ├── components/
│   │   │   │   └── ErrorPage.tsx
│   │   │   ├── pages/
│   │   │   │   └── MainPage.tsx
│   │   │   ├── types.ts
│   │   │   └── utils/
│   │   │       ├── getGlobal.ts
│   │   │       ├── isMetro.ts
│   │   │       ├── loadAppContent.ts
│   │   │       ├── resolveAppContent.ts
│   │   │       └── waitForCondition.ts
│   │   └── tsconfig.json
│   └── showcase/
│       ├── README.md
│       ├── babel.config.js
│       ├── eslint.config.mjs
│       ├── granite.config.ts
│       ├── index.ts
│       ├── package.json
│       ├── pages/
│       │   ├── _404.tsx
│       │   ├── about.tsx
│       │   ├── index.tsx
│       │   └── showcase/
│       │       ├── _layout.tsx
│       │       ├── image.tsx
│       │       ├── index.tsx
│       │       ├── initial-props.tsx
│       │       ├── lottie.tsx
│       │       ├── search-params.tsx
│       │       ├── status-bar.tsx
│       │       ├── use-back-event.tsx
│       │       ├── video.tsx
│       │       └── webview.tsx
│       ├── react-native.config.js
│       ├── require.context.ts
│       ├── src/
│       │   ├── _app.tsx
│       │   ├── components/
│       │   │   ├── Button.test.tsx
│       │   │   ├── Button.tsx
│       │   │   ├── ButtonTestScenario.tsx
│       │   │   ├── Checkbox.tsx
│       │   │   ├── ReactNativeCodegenTestScenario.tsx
│       │   │   ├── TextInput.tsx
│       │   │   ├── Top.tsx
│       │   │   └── react-native-codegen.test.tsx
│       │   ├── env.d.ts
│       │   ├── pages/
│       │   │   ├── about.tsx
│       │   │   ├── index.tsx
│       │   │   └── showcase/
│       │   │       ├── index.tsx
│       │   │       ├── lottie.tsx
│       │   │       ├── status-bar.tsx
│       │   │       ├── use-back-event.tsx
│       │   │       ├── video.tsx
│       │   │       └── webview.tsx
│       │   └── router.gen.ts
│       ├── tsconfig.json
│       └── vitest.config.ts
├── tools/
│   ├── README.md
│   ├── package.json
│   ├── src/
│   │   ├── commands/
│   │   │   ├── attw.ts
│   │   │   └── linked-pack.ts
│   │   ├── index.ts
│   │   ├── project.ts
│   │   └── utils.ts
│   ├── tsconfig.json
│   └── tsup.config.ts
├── tsconfig.json
└── yarn.config.mjs
Download .txt
Showing preview only (819K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (8486 symbols across 547 files)

FILE: .scripts/check-platform-specific-files.js
  constant EXCLUDED_FOLDERS (line 14) | const EXCLUDED_FOLDERS = ['__tests__', '__fixtures__'];
  constant PLATFORM_SPECIFIED_PREFIX (line 15) | const PLATFORM_SPECIFIED_PREFIX = ['native', 'android', 'ios'];
  constant EXCLUDED_FILES (line 16) | const EXCLUDED_FILES = ['e2e.ts', 'test.ts'];
  function isPlatformSpecified (line 25) | function isPlatformSpecified(filePath) {
  function exploreDirectory (line 31) | function exploreDirectory(dir) {
  function hasESM (line 50) | function hasESM(exportsMap) {

FILE: .scripts/licenses.mjs
  constant ALLOWED_LICENSE_MAP (line 17) | const ALLOWED_LICENSE_MAP = {
  constant FOCUSED_WORKSPACES (line 31) | const FOCUSED_WORKSPACES = [
  function runGenerate (line 47) | async function runGenerate() {
  function runCheck (line 74) | async function runCheck() {
  function runConsistencyCheck (line 115) | async function runConsistencyCheck() {

FILE: .scripts/utils/licenses.mjs
  function $ (line 6) | function $(file, args, options) {
  function getWorkspaces (line 17) | async function getWorkspaces() {
  function targetWorkspaces (line 30) | async function targetWorkspaces(workspaces, focusedWorkspaces) {
  function formatLicenses (line 62) | function formatLicenses(packages, extendsLicense, allowedLicenseMap) {
  function transformNoticeTemplate (line 80) | async function transformNoticeTemplate({ workspaceName, license, extends...
  function generateLicenses (line 98) | async function generateLicenses({ workspaceName, location, license, exte...
  function consistencyCheckLicenses (line 103) | async function consistencyCheckLicenses({
  function getLicensesMetaList (line 116) | async function getLicensesMetaList({ workspaceName }) {
  function parseLicenses (line 130) | function parseLicenses(stdout) {

FILE: .yarn/plugins/@yarnpkg/plugin-catalogs.cjs
  method extglobChars (line 6) | extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e....
  method globChars (line 6) | globChars(e){return e===!0?ar:it}
  function mt (line 6) | function mt(e,r,t=!1){return r&&(r.windows===null||r.windows===void 0)&&...
  function Bt (line 6) | function Bt(){let e=new Map;for(let[r,t]of Object.entries(x)){for(let[o,...
  function K (line 6) | function K(e,r=globalThis.Deno?globalThis.Deno.args:xe.default.argv){let...
  function jt (line 6) | function jt(){if("FORCE_COLOR"in T)return T.FORCE_COLOR==="true"?1:T.FOR...
  function Ft (line 6) | function Ft(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e...
  function Wt (line 6) | function Wt(e,{streamIsTTY:r,sniffFlags:t=!0}={}){let o=jt();o!==void 0&...
  function Ye (line 6) | function Ye(e,r={}){let t=Wt(e,{streamIsTTY:e&&e.isTTY,...r});return Ft(t)}
  function ze (line 6) | function ze(e,r,t){let o=e.indexOf(r);if(o===-1)return e;let n=r.length,...
  function Je (line 6) | function Je(e,r,t,o){let n=0,c="";do{let u=e[o-1]==="\r";c+=e.slice(n,u?...
  function ge (line 9) | function ge(e){return Kt(e)}
  method get (line 9) | get(){let t=Oe(this,we(r.open,r.close,this[ue]),this[pe]);return Object....
  method get (line 9) | get(){let e=Oe(this,this[ue],!0);return Object.defineProperty(this,"visi...
  method get (line 9) | get(){let{level:t}=this;return function(...o){let n=we(ke(e,rt[t],"color...
  method get (line 9) | get(){let{level:t}=this;return function(...o){let n=we(ke(e,rt[t],"bgCol...
  method get (line 9) | get(){return this[He].level}
  method set (line 9) | set(e){this[He].level=e}
  method constructor (line 10) | constructor(t,o){super(t);this.code=o;this.name="CatalogConfigurationErr...
  method constructor (line 10) | constructor(){this.configCache=new Map}
  method getInheritanceChain (line 10) | getInheritanceChain(r){let t=r.split("/"),o=[];for(let n=0;n<t.length;n+...
  method resolveInheritedRange (line 10) | resolveInheritedRange(r,t,o){let n=this.getInheritanceChain(t);for(let u...
  method validateInheritanceStructure (line 10) | validateInheritanceStructure(r){if(!r.list)return!0;let t=Object.keys(r....
  method readConfiguration (line 10) | async readConfiguration(r){let o=r.cwd,n=this.configCache.get(o);if(n)re...
  method getRange (line 10) | async getRange(r,t,o){let n=await this.readConfiguration(r),c=t.length==...
  method getDefaultAliasGroups (line 10) | async getDefaultAliasGroups(r){let t=await this.readConfiguration(r.proj...
  method findDependency (line 10) | async findDependency(r,t){let o=Ue.structUtils.stringifyIdent(t),n=await...
  method clearCache (line 10) | clearCache(r){this.configCache.delete(r)}
  method shouldIgnoreWorkspace (line 10) | async shouldIgnoreWorkspace(r){if(!r.manifest.name)return!1;let t=await ...
  method getValidationLevel (line 10) | async getValidationLevel(r){let t=await this.readConfiguration(r.project...
  method isValidConfiguration (line 10) | isValidConfiguration(r){if(!r||typeof r!="object"||!("list"in r)||!r.lis...
  function vr (line 10) | async function vr(e){let r=await Y.readConfiguration(e.project),t=new Se...
  function Tt (line 10) | async function Tt(e,r){if(r.range.startsWith(X)){if(await Y.shouldIgnore...

FILE: .yarn/plugins/plugin-licenses.js
  method addEventListener (line 6) | addEventListener(i,n){this._onabort.push(n)}
  method constructor (line 6) | constructor(){t()}
  method abort (line 6) | abort(i){if(!this.signal.aborted){this.signal.reason=i,this.signal.abort...
  method constructor (line 6) | constructor(t){super(t),this.fill(0)}
  method create (line 6) | static create(t){let e=gt(t);if(!e)return[];s.#n=!0;let i=new s(t,e);ret...
  method constructor (line 6) | constructor(t,e){if(!s.#n)throw new TypeError("instantiate Stack using S...
  method push (line 6) | push(t){this.heap[this.length++]=t}
  method pop (line 6) | pop(){return this.heap[--this.length]}
  method unsafeExposeInternals (line 6) | static unsafeExposeInternals(t){return{starts:t.#$,ttls:t.#p,sizes:t.#y,...
  method max (line 6) | get max(){return this.#n}
  method maxSize (line 6) | get maxSize(){return this.#l}
  method calculatedSize (line 6) | get calculatedSize(){return this.#w}
  method size (line 6) | get size(){return this.#r}
  method fetchMethod (line 6) | get fetchMethod(){return this.#x}
  method memoMethod (line 6) | get memoMethod(){return this.#k}
  method dispose (line 6) | get dispose(){return this.#e}
  method disposeAfter (line 6) | get disposeAfter(){return this.#g}
  method constructor (line 6) | constructor(t){let{max:e=0,ttl:i,ttlResolution:n=1,ttlAutopurge:o,update...
  method getRemainingTTL (line 6) | getRemainingTTL(t){return this.#o.has(t)?1/0:0}
  method #U (line 6) | #U(){let t=new R(this.#n),e=new R(this.#n);this.#p=t,this.#$=e,this.#D=(...
  method #N (line 6) | #N(){let t=new R(this.#n);this.#w=0,this.#y=t,this.#_=e=>{this.#w-=t[e],...
  method #P (line 6) | *#P({allowStale:t=this.allowStale}={}){if(this.#r)for(let e=this.#a;!(!t...
  method #A (line 6) | *#A({allowStale:t=this.allowStale}={}){if(this.#r)for(let e=this.#c;!(!t...
  method #I (line 6) | #I(t){return t!==void 0&&this.#o.get(this.#i[t])===t}
  method entries (line 6) | *entries(){for(let t of this.#P())this.#t[t]!==void 0&&this.#i[t]!==void...
  method rentries (line 6) | *rentries(){for(let t of this.#A())this.#t[t]!==void 0&&this.#i[t]!==voi...
  method keys (line 6) | *keys(){for(let t of this.#P()){let e=this.#i[t];e!==void 0&&!this.#s(th...
  method rkeys (line 6) | *rkeys(){for(let t of this.#A()){let e=this.#i[t];e!==void 0&&!this.#s(t...
  method values (line 6) | *values(){for(let t of this.#P())this.#t[t]!==void 0&&!this.#s(this.#t[t...
  method rvalues (line 6) | *rvalues(){for(let t of this.#A())this.#t[t]!==void 0&&!this.#s(this.#t[...
  method [Symbol.iterator] (line 6) | [Symbol.iterator](){return this.entries()}
  method find (line 6) | find(t,e={}){for(let i of this.#P()){let n=this.#t[i],o=this.#s(n)?n.__s...
  method forEach (line 6) | forEach(t,e=this){for(let i of this.#P()){let n=this.#t[i],o=this.#s(n)?...
  method rforEach (line 6) | rforEach(t,e=this){for(let i of this.#A()){let n=this.#t[i],o=this.#s(n)...
  method purgeStale (line 6) | purgeStale(){let t=!1;for(let e of this.#A({allowStale:!0}))this.#m(e)&&...
  method info (line 6) | info(t){let e=this.#o.get(t);if(e===void 0)return;let i=this.#t[e],n=thi...
  method dump (line 6) | dump(){let t=[];for(let e of this.#P({allowStale:!0})){let i=this.#i[e],...
  method load (line 6) | load(t){this.clear();for(let[e,i]of t){if(i.start){let n=Date.now()-i.st...
  method set (line 6) | set(t,e,i={}){if(e===void 0)return this.delete(t),this;let{ttl:n=this.tt...
  method pop (line 6) | pop(){try{for(;this.#r;){let t=this.#t[this.#c];if(this.#C(!0),this.#s(t...
  method #C (line 6) | #C(t){let e=this.#c,i=this.#i[e],n=this.#t[e];return this.#T&&this.#s(n)...
  method has (line 6) | has(t,e={}){let{updateAgeOnHas:i=this.updateAgeOnHas,status:n}=e,o=this....
  method peek (line 6) | peek(t,e={}){let{allowStale:i=this.allowStale}=e,n=this.#o.get(t);if(n==...
  method #W (line 6) | #W(t,e,i,n){let o=e===void 0?void 0:this.#t[e];if(this.#s(o))return o;le...
  method #s (line 6) | #s(t){if(!this.#T)return!1;let e=t;return!!e&&e instanceof Promise&&e.ha...
  method fetch (line 6) | async fetch(t,e={}){let{allowStale:i=this.allowStale,updateAgeOnGet:n=th...
  method forceFetch (line 6) | async forceFetch(t,e={}){let i=await this.fetch(t,e);if(i===void 0)throw...
  method memo (line 6) | memo(t,e={}){let i=this.#k;if(!i)throw new Error("no memoMethod provided...
  method get (line 6) | get(t,e={}){let{allowStale:i=this.allowStale,updateAgeOnGet:n=this.updat...
  method #z (line 6) | #z(t,e){this.#d[e]=t,this.#f[t]=e}
  method #E (line 6) | #E(t){t!==this.#a&&(t===this.#c?this.#c=this.#f[t]:this.#z(this.#d[t],th...
  method delete (line 6) | delete(t){return this.#v(t,"delete")}
  method #v (line 6) | #v(t,e){let i=!1;if(this.#r!==0){let n=this.#o.get(t);if(n!==void 0)if(i...
  method clear (line 6) | clear(){return this.#M("delete")}
  method #M (line 6) | #M(t){for(let e of this.#A({allowStale:!0})){let i=this.#t[e];if(this.#s...
  method constructor (line 6) | constructor(t,e,i,n,o,r,a={}){Object.assign(this,s.#n[t],{type:t,user:e,...
  method addHost (line 6) | static addHost(t,e){s.#n[t]=e,s.#n.byDomain[e.domain]=t,s.#n.byShortcut[...
  method fromUrl (line 6) | static fromUrl(t,e){if(typeof t!="string")return;let i=t+JSON.stringify(...
  method parseUrl (line 6) | static parseUrl(t){return ee(t)}
  method #e (line 6) | #e(t,e){if(typeof t!="function")return null;let i={...this,...this.opts,...
  method hash (line 6) | hash(){return this.committish?`#${this.committish}`:""}
  method ssh (line 6) | ssh(t){return this.#e(this.sshtemplate,t)}
  method sshurl (line 6) | sshurl(t){return this.#e(this.sshurltemplate,t)}
  method browse (line 6) | browse(t,...e){return typeof t!="string"?this.#e(this.browsetemplate,t):...
  method browseFile (line 6) | browseFile(t,...e){return typeof e[0]!="string"?this.#e(this.browseblobt...
  method docs (line 6) | docs(t){return this.#e(this.docstemplate,t)}
  method bugs (line 6) | bugs(t){return this.#e(this.bugstemplate,t)}
  method https (line 6) | https(t){return this.#e(this.httpstemplate,t)}
  method git (line 6) | git(t){return this.#e(this.gittemplate,t)}
  method shortcut (line 6) | shortcut(t){return this.#e(this.shortcuttemplate,t)}
  method path (line 6) | path(t){return this.#e(this.pathtemplate,t)}
  method tarball (line 6) | tarball(t){return this.#e(this.tarballtemplate,{...t,noCommittish:!1})}
  method file (line 6) | file(t,e){return this.#e(this.filetemplate,{...e,path:t})}
  method edit (line 6) | edit(t,e){return this.#e(this.edittemplate,{...e,path:t})}
  method getDefaultRepresentation (line 6) | getDefaultRepresentation(){return this.default}
  method toString (line 6) | toString(t){return this.default&&typeof this[this.default]=="function"?t...
  function ue (line 6) | function ue(s){let t={},e=s.match(/^([^(<]+)/);if(e){let o=e[0].trim();o...
  method execute (line 14) | async execute(){let t=await z.Configuration.find(this.context.cwd,this.c...

FILE: .yarn/releases/yarn-4.12.0.cjs
  function Cc (line 4) | function Cc(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}
  function NGe (line 4) | function NGe(t){return Cc("EBUSY",t)}
  function OGe (line 4) | function OGe(t,e){return Cc("ENOSYS",`${t}, ${e}`)}
  function LGe (line 4) | function LGe(t){return Cc("EINVAL",`invalid argument, ${t}`)}
  function Mo (line 4) | function Mo(t){return Cc("EBADF",`bad file descriptor, ${t}`)}
  function MGe (line 4) | function MGe(t){return Cc("ENOENT",`no such file or directory, ${t}`)}
  function UGe (line 4) | function UGe(t){return Cc("ENOTDIR",`not a directory, ${t}`)}
  function _Ge (line 4) | function _Ge(t){return Cc("EISDIR",`illegal operation on a directory, ${...
  function HGe (line 4) | function HGe(t){return Cc("EEXIST",`file already exists, ${t}`)}
  function jGe (line 4) | function jGe(t){return Cc("EROFS",`read-only filesystem, ${t}`)}
  function GGe (line 4) | function GGe(t){return Cc("ENOTEMPTY",`directory not empty, ${t}`)}
  function qGe (line 4) | function qGe(t){return Cc("EOPNOTSUPP",`operation not supported, ${t}`)}
  function yU (line 4) | function yU(){return Cc("ERR_DIR_CLOSED","Directory handle was closed")}
  function VZ (line 4) | function VZ(){return new nE}
  function WGe (line 4) | function WGe(){return XP(VZ())}
  function XP (line 4) | function XP(t){for(let e in t)if(Object.hasOwn(t,e)){let r=t[e];typeof r...
  function YGe (line 4) | function YGe(t){let e=new iE;for(let r in t)if(Object.hasOwn(t,r)){let s...
  function wU (line 4) | function wU(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs...
  method constructor (line 4) | constructor(){this.name="";this.path="";this.mode=0}
  method isBlockDevice (line 4) | isBlockDevice(){return!1}
  method isCharacterDevice (line 4) | isCharacterDevice(){return!1}
  method isDirectory (line 4) | isDirectory(){return(this.mode&61440)===16384}
  method isFIFO (line 4) | isFIFO(){return!1}
  method isFile (line 4) | isFile(){return(this.mode&61440)===32768}
  method isSocket (line 4) | isSocket(){return!1}
  method isSymbolicLink (line 4) | isSymbolicLink(){return(this.mode&61440)===40960}
  method constructor (line 4) | constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atim...
  method isBlockDevice (line 4) | isBlockDevice(){return!1}
  method isCharacterDevice (line 4) | isCharacterDevice(){return!1}
  method isDirectory (line 4) | isDirectory(){return(this.mode&61440)===16384}
  method isFIFO (line 4) | isFIFO(){return!1}
  method isFile (line 4) | isFile(){return(this.mode&61440)===32768}
  method isSocket (line 4) | isSocket(){return!1}
  method isSymbolicLink (line 4) | isSymbolicLink(){return(this.mode&61440)===40960}
  method constructor (line 4) | constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);...
  method isBlockDevice (line 4) | isBlockDevice(){return!1}
  method isCharacterDevice (line 4) | isCharacterDevice(){return!1}
  method isDirectory (line 4) | isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}
  method isFIFO (line 4) | isFIFO(){return!1}
  method isFile (line 4) | isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}
  method isSocket (line 4) | isSocket(){return!1}
  method isSymbolicLink (line 4) | isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}
  function XGe (line 4) | function XGe(t){let e,r;if(e=t.match(KGe))t=e[1];else if(r=t.match(zGe))...
  function ZGe (line 4) | function ZGe(t){t=t.replace(/\\/g,"/");let e,r;return(e=t.match(VGe))?t=...
  function ZP (line 4) | function ZP(t,e){return t===fe?KZ(e):vU(e)}
  function $P (line 4) | async function $P(t,e){let r="0123456789abcdef";await t.mkdirPromise(e.i...
  function zZ (line 4) | async function zZ(t,e,r,s,a){let n=t.pathUtils.normalize(e),c=r.pathUtil...
  function SU (line 4) | async function SU(t,e,r,s,a,n,c){let f=c.didParentExist?await XZ(r,s):nu...
  function XZ (line 4) | async function XZ(t,e){try{return await t.lstatPromise(e)}catch{return n...
  function e5e (line 4) | async function e5e(t,e,r,s,a,n,c,f,p){if(a!==null&&!a.isDirectory())if(p...
  function t5e (line 4) | async function t5e(t,e,r,s,a,n,c,f,p,h){let E=await n.checksumFilePromis...
  function r5e (line 4) | async function r5e(t,e,r,s,a,n,c,f,p){if(a!==null)if(p.overwrite)t.push(...
  function n5e (line 4) | async function n5e(t,e,r,s,a,n,c,f,p){return p.linkStrategy?.type==="Har...
  function i5e (line 4) | async function i5e(t,e,r,s,a,n,c,f,p){if(a!==null)if(p.overwrite)t.push(...
  function ex (line 4) | function ex(t,e,r,s){let a=()=>{let n=r.shift();if(typeof n>"u")return n...
  method constructor (line 4) | constructor(e,r,s={}){this.path=e;this.nextDirent=r;this.opts=s;this.clo...
  method throwIfClosed (line 4) | throwIfClosed(){if(this.closed)throw yU()}
  method [Symbol.asyncIterator] (line 4) | async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==nu...
  method read (line 4) | read(e){let r=this.readSync();return typeof e<"u"?e(null,r):Promise.reso...
  method readSync (line 4) | readSync(){return this.throwIfClosed(),this.nextDirent()}
  method close (line 4) | close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}
  method closeSync (line 4) | closeSync(){this.throwIfClosed(),this.opts.onClose?.(),this.closed=!0}
  function $Z (line 4) | function $Z(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: e...
  method constructor (line 4) | constructor(r,s,{bigint:a=!1}={}){super();this.status="ready";this.chang...
  method create (line 4) | static create(r,s,a){let n=new t(r,s,a);return n.start(),n}
  method start (line 4) | start(){$Z(this.status,"ready"),this.status="running",this.startTimeout=...
  method stop (line 4) | stop(){$Z(this.status,"running"),this.status="stopped",this.startTimeout...
  method stat (line 4) | stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}c...
  method makeInterval (line 4) | makeInterval(r){let s=setInterval(()=>{let a=this.stat(),n=this.lastStat...
  method registerChangeListener (line 4) | registerChangeListener(r,s){this.addListener("change",r),this.changeList...
  method unregisterChangeListener (line 4) | unregisterChangeListener(r){this.removeListener("change",r);let s=this.c...
  method unregisterAllChangeListeners (line 4) | unregisterAllChangeListeners(){for(let r of this.changeListeners.keys())...
  method hasChangeListeners (line 4) | hasChangeListeners(){return this.changeListeners.size>0}
  method ref (line 4) | ref(){for(let r of this.changeListeners.values())r.ref();return this}
  method unref (line 4) | unref(){for(let r of this.changeListeners.values())r.unref();return this}
  function sE (line 4) | function sE(t,e,r,s){let a,n,c,f;switch(typeof r){case"function":a=!1,n=...
  function md (line 4) | function md(t,e,r){let s=rx.get(t);if(typeof s>"u")return;let a=s.get(e)...
  function yd (line 4) | function yd(t){let e=rx.get(t);if(!(typeof e>"u"))for(let r of e.keys())...
  function s5e (line 4) | function s5e(t){let e=t.match(/\r?\n/g);if(e===null)return n$.EOL;let r=...
  function Ed (line 7) | function Ed(t,e){return e.replace(/\r?\n/g,s5e(t))}
  method constructor (line 7) | constructor(e){this.pathUtils=e}
  method genTraversePromise (line 7) | async*genTraversePromise(e,{stableSort:r=!1}={}){let s=[e];for(;s.length...
  method checksumFilePromise (line 7) | async checksumFilePromise(e,{algorithm:r="sha512"}={}){let s=await this....
  method removePromise (line 7) | async removePromise(e,{recursive:r=!0,maxRetries:s=5}={}){let a;try{a=aw...
  method removeSync (line 7) | removeSync(e,{recursive:r=!0}={}){let s;try{s=this.lstatSync(e)}catch(a)...
  method mkdirpPromise (line 7) | async mkdirpPromise(e,{chmod:r,utimes:s}={}){if(e=this.resolve(e),e===th...
  method mkdirpSync (line 7) | mkdirpSync(e,{chmod:r,utimes:s}={}){if(e=this.resolve(e),e===this.pathUt...
  method copyPromise (line 7) | async copyPromise(e,r,{baseFs:s=this,overwrite:a=!0,stableSort:n=!1,stab...
  method copySync (line 7) | copySync(e,r,{baseFs:s=this,overwrite:a=!0}={}){let n=s.lstatSync(r),c=t...
  method changeFilePromise (line 7) | async changeFilePromise(e,r,s={}){return Buffer.isBuffer(r)?this.changeF...
  method changeFileBufferPromise (line 7) | async changeFileBufferPromise(e,r,{mode:s}={}){let a=Buffer.alloc(0);try...
  method changeFileTextPromise (line 7) | async changeFileTextPromise(e,r,{automaticNewlines:s,mode:a}={}){let n="...
  method changeFileSync (line 7) | changeFileSync(e,r,s={}){return Buffer.isBuffer(r)?this.changeFileBuffer...
  method changeFileBufferSync (line 7) | changeFileBufferSync(e,r,{mode:s}={}){let a=Buffer.alloc(0);try{a=this.r...
  method changeFileTextSync (line 7) | changeFileTextSync(e,r,{automaticNewlines:s=!1,mode:a}={}){let n="";try{...
  method movePromise (line 7) | async movePromise(e,r){try{await this.renamePromise(e,r)}catch(s){if(s.c...
  method moveSync (line 7) | moveSync(e,r){try{this.renameSync(e,r)}catch(s){if(s.code==="EXDEV")this...
  method lockPromise (line 7) | async lockPromise(e,r){let s=`${e}.flock`,a=1e3/60,n=Date.now(),c=null,f...
  method readJsonPromise (line 7) | async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{...
  method readJsonSync (line 7) | readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(...
  method writeJsonPromise (line 7) | async writeJsonPromise(e,r,{compact:s=!1}={}){let a=s?0:2;return await t...
  method writeJsonSync (line 8) | writeJsonSync(e,r,{compact:s=!1}={}){let a=s?0:2;return this.writeFileSy...
  method preserveTimePromise (line 9) | async preserveTimePromise(e,r){let s=await this.lstatPromise(e),a=await ...
  method preserveTimeSync (line 9) | async preserveTimeSync(e,r){let s=this.lstatSync(e),a=r();typeof a<"u"&&...
  method constructor (line 9) | constructor(){super(J)}
  method getExtractHint (line 9) | getExtractHint(e){return this.baseFs.getExtractHint(e)}
  method resolve (line 9) | resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}
  method getRealPath (line 9) | getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}
  method openPromise (line 9) | async openPromise(e,r,s){return this.baseFs.openPromise(this.mapToBase(e...
  method openSync (line 9) | openSync(e,r,s){return this.baseFs.openSync(this.mapToBase(e),r,s)}
  method opendirPromise (line 9) | async opendirPromise(e,r){return Object.assign(await this.baseFs.opendir...
  method opendirSync (line 9) | opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapTo...
  method readPromise (line 9) | async readPromise(e,r,s,a,n){return await this.baseFs.readPromise(e,r,s,...
  method readSync (line 9) | readSync(e,r,s,a,n){return this.baseFs.readSync(e,r,s,a,n)}
  method writePromise (line 9) | async writePromise(e,r,s,a,n){return typeof r=="string"?await this.baseF...
  method writeSync (line 9) | writeSync(e,r,s,a,n){return typeof r=="string"?this.baseFs.writeSync(e,r...
  method closePromise (line 9) | async closePromise(e){return this.baseFs.closePromise(e)}
  method closeSync (line 9) | closeSync(e){this.baseFs.closeSync(e)}
  method createReadStream (line 9) | createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this....
  method createWriteStream (line 9) | createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?thi...
  method realpathPromise (line 9) | async realpathPromise(e){return this.mapFromBase(await this.baseFs.realp...
  method realpathSync (line 9) | realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.ma...
  method existsPromise (line 9) | async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}
  method existsSync (line 9) | existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}
  method accessSync (line 9) | accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}
  method accessPromise (line 9) | async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase...
  method statPromise (line 9) | async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}
  method statSync (line 9) | statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}
  method fstatPromise (line 9) | async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}
  method fstatSync (line 9) | fstatSync(e,r){return this.baseFs.fstatSync(e,r)}
  method lstatPromise (line 9) | lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}
  method lstatSync (line 9) | lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}
  method fchmodPromise (line 9) | async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}
  method fchmodSync (line 9) | fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}
  method chmodPromise (line 9) | async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e...
  method chmodSync (line 9) | chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}
  method fchownPromise (line 9) | async fchownPromise(e,r,s){return this.baseFs.fchownPromise(e,r,s)}
  method fchownSync (line 9) | fchownSync(e,r,s){return this.baseFs.fchownSync(e,r,s)}
  method chownPromise (line 9) | async chownPromise(e,r,s){return this.baseFs.chownPromise(this.mapToBase...
  method chownSync (line 9) | chownSync(e,r,s){return this.baseFs.chownSync(this.mapToBase(e),r,s)}
  method renamePromise (line 9) | async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase...
  method renameSync (line 9) | renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.map...
  method copyFilePromise (line 9) | async copyFilePromise(e,r,s=0){return this.baseFs.copyFilePromise(this.m...
  method copyFileSync (line 9) | copyFileSync(e,r,s=0){return this.baseFs.copyFileSync(this.mapToBase(e),...
  method appendFilePromise (line 9) | async appendFilePromise(e,r,s){return this.baseFs.appendFilePromise(this...
  method appendFileSync (line 9) | appendFileSync(e,r,s){return this.baseFs.appendFileSync(this.fsMapToBase...
  method writeFilePromise (line 9) | async writeFilePromise(e,r,s){return this.baseFs.writeFilePromise(this.f...
  method writeFileSync (line 9) | writeFileSync(e,r,s){return this.baseFs.writeFileSync(this.fsMapToBase(e...
  method unlinkPromise (line 9) | async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}
  method unlinkSync (line 9) | unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}
  method utimesPromise (line 9) | async utimesPromise(e,r,s){return this.baseFs.utimesPromise(this.mapToBa...
  method utimesSync (line 9) | utimesSync(e,r,s){return this.baseFs.utimesSync(this.mapToBase(e),r,s)}
  method lutimesPromise (line 9) | async lutimesPromise(e,r,s){return this.baseFs.lutimesPromise(this.mapTo...
  method lutimesSync (line 9) | lutimesSync(e,r,s){return this.baseFs.lutimesSync(this.mapToBase(e),r,s)}
  method mkdirPromise (line 9) | async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e...
  method mkdirSync (line 9) | mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}
  method rmdirPromise (line 9) | async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e...
  method rmdirSync (line 9) | rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}
  method rmPromise (line 9) | async rmPromise(e,r){return this.baseFs.rmPromise(this.mapToBase(e),r)}
  method rmSync (line 9) | rmSync(e,r){return this.baseFs.rmSync(this.mapToBase(e),r)}
  method linkPromise (line 9) | async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),...
  method linkSync (line 9) | linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBa...
  method symlinkPromise (line 9) | async symlinkPromise(e,r,s){let a=this.mapToBase(r);if(this.pathUtils.is...
  method symlinkSync (line 9) | symlinkSync(e,r,s){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(...
  method readFilePromise (line 9) | async readFilePromise(e,r){return this.baseFs.readFilePromise(this.fsMap...
  method readFileSync (line 9) | readFileSync(e,r){return this.baseFs.readFileSync(this.fsMapToBase(e),r)}
  method readdirPromise (line 9) | readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}
  method readdirSync (line 9) | readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}
  method readlinkPromise (line 9) | async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readl...
  method readlinkSync (line 9) | readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.ma...
  method truncatePromise (line 9) | async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapTo...
  method truncateSync (line 9) | truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}
  method ftruncatePromise (line 9) | async ftruncatePromise(e,r){return this.baseFs.ftruncatePromise(e,r)}
  method ftruncateSync (line 9) | ftruncateSync(e,r){return this.baseFs.ftruncateSync(e,r)}
  method watch (line 9) | watch(e,r,s){return this.baseFs.watch(this.mapToBase(e),r,s)}
  method watchFile (line 9) | watchFile(e,r,s){return this.baseFs.watchFile(this.mapToBase(e),r,s)}
  method unwatchFile (line 9) | unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}
  method fsMapToBase (line 9) | fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}
  method constructor (line 9) | constructor(e,{baseFs:r,pathUtils:s}){super(s),this.target=e,this.baseFs=r}
  method getRealPath (line 9) | getRealPath(){return this.target}
  method getBaseFs (line 9) | getBaseFs(){return this.baseFs}
  method mapFromBase (line 9) | mapFromBase(e){return e}
  method mapToBase (line 9) | mapToBase(e){return e}
  function s$ (line 9) | function s$(t){let e=t;return typeof t.path=="string"&&(e.path=fe.toPort...
  method constructor (line 9) | constructor(e=o$.default){super(),this.realFs=e}
  method getExtractHint (line 9) | getExtractHint(){return!1}
  method getRealPath (line 9) | getRealPath(){return vt.root}
  method resolve (line 9) | resolve(e){return J.resolve(e)}
  method openPromise (line 9) | async openPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.op...
  method openSync (line 9) | openSync(e,r,s){return this.realFs.openSync(fe.fromPortablePath(e),r,s)}
  method opendirPromise (line 9) | async opendirPromise(e,r){return await new Promise((s,a)=>{typeof r<"u"?...
  method opendirSync (line 9) | opendirSync(e,r){let a=typeof r<"u"?this.realFs.opendirSync(fe.fromPorta...
  method readPromise (line 9) | async readPromise(e,r,s=0,a=0,n=-1){return await new Promise((c,f)=>{thi...
  method readSync (line 9) | readSync(e,r,s,a,n){return this.realFs.readSync(e,r,s,a,n)}
  method writePromise (line 9) | async writePromise(e,r,s,a,n){return await new Promise((c,f)=>typeof r==...
  method writeSync (line 9) | writeSync(e,r,s,a,n){return typeof r=="string"?this.realFs.writeSync(e,r...
  method closePromise (line 9) | async closePromise(e){await new Promise((r,s)=>{this.realFs.close(e,this...
  method closeSync (line 9) | closeSync(e){this.realFs.closeSync(e)}
  method createReadStream (line 9) | createReadStream(e,r){let s=e!==null?fe.fromPortablePath(e):e;return thi...
  method createWriteStream (line 9) | createWriteStream(e,r){let s=e!==null?fe.fromPortablePath(e):e;return th...
  method realpathPromise (line 9) | async realpathPromise(e){return await new Promise((r,s)=>{this.realFs.re...
  method realpathSync (line 9) | realpathSync(e){return fe.toPortablePath(this.realFs.realpathSync(fe.fro...
  method existsPromise (line 9) | async existsPromise(e){return await new Promise(r=>{this.realFs.exists(f...
  method accessSync (line 9) | accessSync(e,r){return this.realFs.accessSync(fe.fromPortablePath(e),r)}
  method accessPromise (line 9) | async accessPromise(e,r){return await new Promise((s,a)=>{this.realFs.ac...
  method existsSync (line 9) | existsSync(e){return this.realFs.existsSync(fe.fromPortablePath(e))}
  method statPromise (line 9) | async statPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.st...
  method statSync (line 9) | statSync(e,r){return r?this.realFs.statSync(fe.fromPortablePath(e),r):th...
  method fstatPromise (line 9) | async fstatPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.f...
  method fstatSync (line 9) | fstatSync(e,r){return r?this.realFs.fstatSync(e,r):this.realFs.fstatSync...
  method lstatPromise (line 9) | async lstatPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.l...
  method lstatSync (line 9) | lstatSync(e,r){return r?this.realFs.lstatSync(fe.fromPortablePath(e),r):...
  method fchmodPromise (line 9) | async fchmodPromise(e,r){return await new Promise((s,a)=>{this.realFs.fc...
  method fchmodSync (line 9) | fchmodSync(e,r){return this.realFs.fchmodSync(e,r)}
  method chmodPromise (line 9) | async chmodPromise(e,r){return await new Promise((s,a)=>{this.realFs.chm...
  method chmodSync (line 9) | chmodSync(e,r){return this.realFs.chmodSync(fe.fromPortablePath(e),r)}
  method fchownPromise (line 9) | async fchownPromise(e,r,s){return await new Promise((a,n)=>{this.realFs....
  method fchownSync (line 9) | fchownSync(e,r,s){return this.realFs.fchownSync(e,r,s)}
  method chownPromise (line 9) | async chownPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.c...
  method chownSync (line 9) | chownSync(e,r,s){return this.realFs.chownSync(fe.fromPortablePath(e),r,s)}
  method renamePromise (line 9) | async renamePromise(e,r){return await new Promise((s,a)=>{this.realFs.re...
  method renameSync (line 9) | renameSync(e,r){return this.realFs.renameSync(fe.fromPortablePath(e),fe....
  method copyFilePromise (line 9) | async copyFilePromise(e,r,s=0){return await new Promise((a,n)=>{this.rea...
  method copyFileSync (line 9) | copyFileSync(e,r,s=0){return this.realFs.copyFileSync(fe.fromPortablePat...
  method appendFilePromise (line 9) | async appendFilePromise(e,r,s){return await new Promise((a,n)=>{let c=ty...
  method appendFileSync (line 9) | appendFileSync(e,r,s){let a=typeof e=="string"?fe.fromPortablePath(e):e;...
  method writeFilePromise (line 9) | async writeFilePromise(e,r,s){return await new Promise((a,n)=>{let c=typ...
  method writeFileSync (line 9) | writeFileSync(e,r,s){let a=typeof e=="string"?fe.fromPortablePath(e):e;s...
  method unlinkPromise (line 9) | async unlinkPromise(e){return await new Promise((r,s)=>{this.realFs.unli...
  method unlinkSync (line 9) | unlinkSync(e){return this.realFs.unlinkSync(fe.fromPortablePath(e))}
  method utimesPromise (line 9) | async utimesPromise(e,r,s){return await new Promise((a,n)=>{this.realFs....
  method utimesSync (line 9) | utimesSync(e,r,s){this.realFs.utimesSync(fe.fromPortablePath(e),r,s)}
  method lutimesPromise (line 9) | async lutimesPromise(e,r,s){return await new Promise((a,n)=>{this.realFs...
  method lutimesSync (line 9) | lutimesSync(e,r,s){this.realFs.lutimesSync(fe.fromPortablePath(e),r,s)}
  method mkdirPromise (line 9) | async mkdirPromise(e,r){return await new Promise((s,a)=>{this.realFs.mkd...
  method mkdirSync (line 9) | mkdirSync(e,r){return this.realFs.mkdirSync(fe.fromPortablePath(e),r)}
  method rmdirPromise (line 9) | async rmdirPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.r...
  method rmdirSync (line 9) | rmdirSync(e,r){return this.realFs.rmdirSync(fe.fromPortablePath(e),r)}
  method rmPromise (line 9) | async rmPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.rm(f...
  method rmSync (line 9) | rmSync(e,r){return this.realFs.rmSync(fe.fromPortablePath(e),r)}
  method linkPromise (line 9) | async linkPromise(e,r){return await new Promise((s,a)=>{this.realFs.link...
  method linkSync (line 9) | linkSync(e,r){return this.realFs.linkSync(fe.fromPortablePath(e),fe.from...
  method symlinkPromise (line 9) | async symlinkPromise(e,r,s){return await new Promise((a,n)=>{this.realFs...
  method symlinkSync (line 9) | symlinkSync(e,r,s){return this.realFs.symlinkSync(fe.fromPortablePath(e....
  method readFilePromise (line 9) | async readFilePromise(e,r){return await new Promise((s,a)=>{let n=typeof...
  method readFileSync (line 9) | readFileSync(e,r){let s=typeof e=="string"?fe.fromPortablePath(e):e;retu...
  method readdirPromise (line 9) | async readdirPromise(e,r){return await new Promise((s,a)=>{r?r.recursive...
  method readdirSync (line 9) | readdirSync(e,r){return r?r.recursive&&process.platform==="win32"?r.with...
  method readlinkPromise (line 9) | async readlinkPromise(e){return await new Promise((r,s)=>{this.realFs.re...
  method readlinkSync (line 9) | readlinkSync(e){return fe.toPortablePath(this.realFs.readlinkSync(fe.fro...
  method truncatePromise (line 9) | async truncatePromise(e,r){return await new Promise((s,a)=>{this.realFs....
  method truncateSync (line 9) | truncateSync(e,r){return this.realFs.truncateSync(fe.fromPortablePath(e)...
  method ftruncatePromise (line 9) | async ftruncatePromise(e,r){return await new Promise((s,a)=>{this.realFs...
  method ftruncateSync (line 9) | ftruncateSync(e,r){return this.realFs.ftruncateSync(e,r)}
  method watch (line 9) | watch(e,r,s){return this.realFs.watch(fe.fromPortablePath(e),r,s)}
  method watchFile (line 9) | watchFile(e,r,s){return this.realFs.watchFile(fe.fromPortablePath(e),r,s)}
  method unwatchFile (line 9) | unwatchFile(e,r){return this.realFs.unwatchFile(fe.fromPortablePath(e),r)}
  method makeCallback (line 9) | makeCallback(e,r){return(s,a)=>{s?r(s):e(a)}}
  method constructor (line 9) | constructor(e,{baseFs:r=new Yn}={}){super(J),this.target=this.pathUtils....
  method getRealPath (line 9) | getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),th...
  method resolve (line 9) | resolve(e){return this.pathUtils.isAbsolute(e)?J.normalize(e):this.baseF...
  method mapFromBase (line 9) | mapFromBase(e){return e}
  method mapToBase (line 9) | mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(t...
  method constructor (line 9) | constructor(e,{baseFs:r=new Yn}={}){super(J),this.target=this.pathUtils....
  method getRealPath (line 9) | getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),th...
  method getTarget (line 9) | getTarget(){return this.target}
  method getBaseFs (line 9) | getBaseFs(){return this.baseFs}
  method mapToBase (line 9) | mapToBase(e){let r=this.pathUtils.normalize(e);if(this.pathUtils.isAbsol...
  method mapFromBase (line 9) | mapFromBase(e){return this.pathUtils.resolve(l$,this.pathUtils.relative(...
  method constructor (line 9) | constructor(r,s){super(s);this.instance=null;this.factory=r}
  method baseFs (line 9) | get baseFs(){return this.instance||(this.instance=this.factory()),this.i...
  method baseFs (line 9) | set baseFs(r){this.instance=r}
  method mapFromBase (line 9) | mapFromBase(r){return r}
  method mapToBase (line 9) | mapToBase(r){return r}
  method constructor (line 9) | constructor({baseFs:r=new Yn,filter:s=null,magicByte:a=42,maxOpenFiles:n...
  method getExtractHint (line 9) | getExtractHint(r){return this.baseFs.getExtractHint(r)}
  method getRealPath (line 9) | getRealPath(){return this.baseFs.getRealPath()}
  method saveAndClose (line 9) | saveAndClose(){if(yd(this),this.mountInstances)for(let[r,{childFs:s}]of ...
  method discardAndClose (line 9) | discardAndClose(){if(yd(this),this.mountInstances)for(let[r,{childFs:s}]...
  method resolve (line 9) | resolve(r){return this.baseFs.resolve(r)}
  method remapFd (line 9) | remapFd(r,s){let a=this.nextFd++|this.magic;return this.fdMap.set(a,[r,s...
  method openPromise (line 9) | async openPromise(r,s,a){return await this.makeCallPromise(r,async()=>aw...
  method openSync (line 9) | openSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.openSync(r,s,...
  method opendirPromise (line 9) | async opendirPromise(r,s){return await this.makeCallPromise(r,async()=>a...
  method opendirSync (line 9) | opendirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.opendirSync(...
  method readPromise (line 9) | async readPromise(r,s,a,n,c){if((r&tl)!==this.magic)return await this.ba...
  method readSync (line 9) | readSync(r,s,a,n,c){if((r&tl)!==this.magic)return this.baseFs.readSync(r...
  method writePromise (line 9) | async writePromise(r,s,a,n,c){if((r&tl)!==this.magic)return typeof s=="s...
  method writeSync (line 9) | writeSync(r,s,a,n,c){if((r&tl)!==this.magic)return typeof s=="string"?th...
  method closePromise (line 9) | async closePromise(r){if((r&tl)!==this.magic)return await this.baseFs.cl...
  method closeSync (line 9) | closeSync(r){if((r&tl)!==this.magic)return this.baseFs.closeSync(r);let ...
  method createReadStream (line 9) | createReadStream(r,s){return r===null?this.baseFs.createReadStream(r,s):...
  method createWriteStream (line 9) | createWriteStream(r,s){return r===null?this.baseFs.createWriteStream(r,s...
  method realpathPromise (line 9) | async realpathPromise(r){return await this.makeCallPromise(r,async()=>aw...
  method realpathSync (line 9) | realpathSync(r){return this.makeCallSync(r,()=>this.baseFs.realpathSync(...
  method existsPromise (line 9) | async existsPromise(r){return await this.makeCallPromise(r,async()=>awai...
  method existsSync (line 9) | existsSync(r){return this.makeCallSync(r,()=>this.baseFs.existsSync(r),(...
  method accessPromise (line 9) | async accessPromise(r,s){return await this.makeCallPromise(r,async()=>aw...
  method accessSync (line 9) | accessSync(r,s){return this.makeCallSync(r,()=>this.baseFs.accessSync(r,...
  method statPromise (line 9) | async statPromise(r,s){return await this.makeCallPromise(r,async()=>awai...
  method statSync (line 9) | statSync(r,s){return this.makeCallSync(r,()=>this.baseFs.statSync(r,s),(...
  method fstatPromise (line 9) | async fstatPromise(r,s){if((r&tl)!==this.magic)return this.baseFs.fstatP...
  method fstatSync (line 9) | fstatSync(r,s){if((r&tl)!==this.magic)return this.baseFs.fstatSync(r,s);...
  method lstatPromise (line 9) | async lstatPromise(r,s){return await this.makeCallPromise(r,async()=>awa...
  method lstatSync (line 9) | lstatSync(r,s){return this.makeCallSync(r,()=>this.baseFs.lstatSync(r,s)...
  method fchmodPromise (line 9) | async fchmodPromise(r,s){if((r&tl)!==this.magic)return this.baseFs.fchmo...
  method fchmodSync (line 9) | fchmodSync(r,s){if((r&tl)!==this.magic)return this.baseFs.fchmodSync(r,s...
  method chmodPromise (line 9) | async chmodPromise(r,s){return await this.makeCallPromise(r,async()=>awa...
  method chmodSync (line 9) | chmodSync(r,s){return this.makeCallSync(r,()=>this.baseFs.chmodSync(r,s)...
  method fchownPromise (line 9) | async fchownPromise(r,s,a){if((r&tl)!==this.magic)return this.baseFs.fch...
  method fchownSync (line 9) | fchownSync(r,s,a){if((r&tl)!==this.magic)return this.baseFs.fchownSync(r...
  method chownPromise (line 9) | async chownPromise(r,s,a){return await this.makeCallPromise(r,async()=>a...
  method chownSync (line 9) | chownSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.chownSync(r,...
  method renamePromise (line 9) | async renamePromise(r,s){return await this.makeCallPromise(r,async()=>aw...
  method renameSync (line 9) | renameSync(r,s){return this.makeCallSync(r,()=>this.makeCallSync(s,()=>t...
  method copyFilePromise (line 9) | async copyFilePromise(r,s,a=0){let n=async(c,f,p,h)=>{if(a&wd.constants....
  method copyFileSync (line 9) | copyFileSync(r,s,a=0){let n=(c,f,p,h)=>{if(a&wd.constants.COPYFILE_FICLO...
  method appendFilePromise (line 9) | async appendFilePromise(r,s,a){return await this.makeCallPromise(r,async...
  method appendFileSync (line 9) | appendFileSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.appendF...
  method writeFilePromise (line 9) | async writeFilePromise(r,s,a){return await this.makeCallPromise(r,async(...
  method writeFileSync (line 9) | writeFileSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.writeFil...
  method unlinkPromise (line 9) | async unlinkPromise(r){return await this.makeCallPromise(r,async()=>awai...
  method unlinkSync (line 9) | unlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.unlinkSync(r),(...
  method utimesPromise (line 9) | async utimesPromise(r,s,a){return await this.makeCallPromise(r,async()=>...
  method utimesSync (line 9) | utimesSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.utimesSync(...
  method lutimesPromise (line 9) | async lutimesPromise(r,s,a){return await this.makeCallPromise(r,async()=...
  method lutimesSync (line 9) | lutimesSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.lutimesSyn...
  method mkdirPromise (line 9) | async mkdirPromise(r,s){return await this.makeCallPromise(r,async()=>awa...
  method mkdirSync (line 9) | mkdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.mkdirSync(r,s)...
  method rmdirPromise (line 9) | async rmdirPromise(r,s){return await this.makeCallPromise(r,async()=>awa...
  method rmdirSync (line 9) | rmdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.rmdirSync(r,s)...
  method rmPromise (line 9) | async rmPromise(r,s){return await this.makeCallPromise(r,async()=>await ...
  method rmSync (line 9) | rmSync(r,s){return this.makeCallSync(r,()=>this.baseFs.rmSync(r,s),(a,{s...
  method linkPromise (line 9) | async linkPromise(r,s){return await this.makeCallPromise(s,async()=>awai...
  method linkSync (line 9) | linkSync(r,s){return this.makeCallSync(s,()=>this.baseFs.linkSync(r,s),(...
  method symlinkPromise (line 9) | async symlinkPromise(r,s,a){return await this.makeCallPromise(s,async()=...
  method symlinkSync (line 9) | symlinkSync(r,s,a){return this.makeCallSync(s,()=>this.baseFs.symlinkSyn...
  method readFilePromise (line 9) | async readFilePromise(r,s){return this.makeCallPromise(r,async()=>await ...
  method readFileSync (line 9) | readFileSync(r,s){return this.makeCallSync(r,()=>this.baseFs.readFileSyn...
  method readdirPromise (line 9) | async readdirPromise(r,s){return await this.makeCallPromise(r,async()=>a...
  method readdirSync (line 9) | readdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.readdirSync(...
  method readlinkPromise (line 9) | async readlinkPromise(r){return await this.makeCallPromise(r,async()=>aw...
  method readlinkSync (line 9) | readlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.readlinkSync(...
  method truncatePromise (line 9) | async truncatePromise(r,s){return await this.makeCallPromise(r,async()=>...
  method truncateSync (line 9) | truncateSync(r,s){return this.makeCallSync(r,()=>this.baseFs.truncateSyn...
  method ftruncatePromise (line 9) | async ftruncatePromise(r,s){if((r&tl)!==this.magic)return this.baseFs.ft...
  method ftruncateSync (line 9) | ftruncateSync(r,s){if((r&tl)!==this.magic)return this.baseFs.ftruncateSy...
  method watch (line 9) | watch(r,s,a){return this.makeCallSync(r,()=>this.baseFs.watch(r,s,a),(n,...
  method watchFile (line 9) | watchFile(r,s,a){return this.makeCallSync(r,()=>this.baseFs.watchFile(r,...
  method unwatchFile (line 9) | unwatchFile(r,s){return this.makeCallSync(r,()=>this.baseFs.unwatchFile(...
  method makeCallPromise (line 9) | async makeCallPromise(r,s,a,{requireSubpath:n=!0}={}){if(typeof r!="stri...
  method makeCallSync (line 9) | makeCallSync(r,s,a,{requireSubpath:n=!0}={}){if(typeof r!="string")retur...
  method findMount (line 9) | findMount(r){if(this.filter&&!this.filter.test(r))return null;let s="";f...
  method limitOpenFiles (line 9) | limitOpenFiles(r){if(this.mountInstances===null)return;let s=Date.now(),...
  method getMountPromise (line 9) | async getMountPromise(r,s){if(this.mountInstances){let a=this.mountInsta...
  method getMountSync (line 9) | getMountSync(r,s){if(this.mountInstances){let a=this.mountInstances.get(...
  method constructor (line 9) | constructor(){super(J)}
  method getExtractHint (line 9) | getExtractHint(){throw er()}
  method getRealPath (line 9) | getRealPath(){throw er()}
  method resolve (line 9) | resolve(){throw er()}
  method openPromise (line 9) | async openPromise(){throw er()}
  method openSync (line 9) | openSync(){throw er()}
  method opendirPromise (line 9) | async opendirPromise(){throw er()}
  method opendirSync (line 9) | opendirSync(){throw er()}
  method readPromise (line 9) | async readPromise(){throw er()}
  method readSync (line 9) | readSync(){throw er()}
  method writePromise (line 9) | async writePromise(){throw er()}
  method writeSync (line 9) | writeSync(){throw er()}
  method closePromise (line 9) | async closePromise(){throw er()}
  method closeSync (line 9) | closeSync(){throw er()}
  method createWriteStream (line 9) | createWriteStream(){throw er()}
  method createReadStream (line 9) | createReadStream(){throw er()}
  method realpathPromise (line 9) | async realpathPromise(){throw er()}
  method realpathSync (line 9) | realpathSync(){throw er()}
  method readdirPromise (line 9) | async readdirPromise(){throw er()}
  method readdirSync (line 9) | readdirSync(){throw er()}
  method existsPromise (line 9) | async existsPromise(e){throw er()}
  method existsSync (line 9) | existsSync(e){throw er()}
  method accessPromise (line 9) | async accessPromise(){throw er()}
  method accessSync (line 9) | accessSync(){throw er()}
  method statPromise (line 9) | async statPromise(){throw er()}
  method statSync (line 9) | statSync(){throw er()}
  method fstatPromise (line 9) | async fstatPromise(e){throw er()}
  method fstatSync (line 9) | fstatSync(e){throw er()}
  method lstatPromise (line 9) | async lstatPromise(e){throw er()}
  method lstatSync (line 9) | lstatSync(e){throw er()}
  method fchmodPromise (line 9) | async fchmodPromise(){throw er()}
  method fchmodSync (line 9) | fchmodSync(){throw er()}
  method chmodPromise (line 9) | async chmodPromise(){throw er()}
  method chmodSync (line 9) | chmodSync(){throw er()}
  method fchownPromise (line 9) | async fchownPromise(){throw er()}
  method fchownSync (line 9) | fchownSync(){throw er()}
  method chownPromise (line 9) | async chownPromise(){throw er()}
  method chownSync (line 9) | chownSync(){throw er()}
  method mkdirPromise (line 9) | async mkdirPromise(){throw er()}
  method mkdirSync (line 9) | mkdirSync(){throw er()}
  method rmdirPromise (line 9) | async rmdirPromise(){throw er()}
  method rmdirSync (line 9) | rmdirSync(){throw er()}
  method rmPromise (line 9) | async rmPromise(){throw er()}
  method rmSync (line 9) | rmSync(){throw er()}
  method linkPromise (line 9) | async linkPromise(){throw er()}
  method linkSync (line 9) | linkSync(){throw er()}
  method symlinkPromise (line 9) | async symlinkPromise(){throw er()}
  method symlinkSync (line 9) | symlinkSync(){throw er()}
  method renamePromise (line 9) | async renamePromise(){throw er()}
  method renameSync (line 9) | renameSync(){throw er()}
  method copyFilePromise (line 9) | async copyFilePromise(){throw er()}
  method copyFileSync (line 9) | copyFileSync(){throw er()}
  method appendFilePromise (line 9) | async appendFilePromise(){throw er()}
  method appendFileSync (line 9) | appendFileSync(){throw er()}
  method writeFilePromise (line 9) | async writeFilePromise(){throw er()}
  method writeFileSync (line 9) | writeFileSync(){throw er()}
  method unlinkPromise (line 9) | async unlinkPromise(){throw er()}
  method unlinkSync (line 9) | unlinkSync(){throw er()}
  method utimesPromise (line 9) | async utimesPromise(){throw er()}
  method utimesSync (line 9) | utimesSync(){throw er()}
  method lutimesPromise (line 9) | async lutimesPromise(){throw er()}
  method lutimesSync (line 9) | lutimesSync(){throw er()}
  method readFilePromise (line 9) | async readFilePromise(){throw er()}
  method readFileSync (line 9) | readFileSync(){throw er()}
  method readlinkPromise (line 9) | async readlinkPromise(){throw er()}
  method readlinkSync (line 9) | readlinkSync(){throw er()}
  method truncatePromise (line 9) | async truncatePromise(){throw er()}
  method truncateSync (line 9) | truncateSync(){throw er()}
  method ftruncatePromise (line 9) | async ftruncatePromise(e,r){throw er()}
  method ftruncateSync (line 9) | ftruncateSync(e,r){throw er()}
  method watch (line 9) | watch(){throw er()}
  method watchFile (line 9) | watchFile(){throw er()}
  method unwatchFile (line 9) | unwatchFile(){throw er()}
  method constructor (line 9) | constructor(e){super(fe),this.baseFs=e}
  method mapFromBase (line 9) | mapFromBase(e){return fe.fromPortablePath(e)}
  method mapToBase (line 9) | mapToBase(e){return fe.toPortablePath(e)}
  method makeVirtualPath (line 9) | static makeVirtualPath(e,r,s){if(J.basename(e)!=="__virtual__")throw new...
  method resolveVirtual (line 9) | static resolveVirtual(e){let r=e.match(PU);if(!r||!r[3]&&r[5])return e;l...
  method constructor (line 9) | constructor({baseFs:e=new Yn}={}){super(J),this.baseFs=e}
  method getExtractHint (line 9) | getExtractHint(e){return this.baseFs.getExtractHint(e)}
  method getRealPath (line 9) | getRealPath(){return this.baseFs.getRealPath()}
  method realpathSync (line 9) | realpathSync(e){let r=e.match(PU);if(!r)return this.baseFs.realpathSync(...
  method realpathPromise (line 9) | async realpathPromise(e){let r=e.match(PU);if(!r)return await this.baseF...
  method mapToBase (line 9) | mapToBase(e){if(e==="")return e;if(this.pathUtils.isAbsolute(e))return t...
  method mapFromBase (line 9) | mapFromBase(e){return e}
  function l5e (line 9) | function l5e(t,e){return typeof xU.default.isUtf8<"u"?xU.default.isUtf8(...
  method constructor (line 9) | constructor(e){super(fe),this.baseFs=e}
  method mapFromBase (line 9) | mapFromBase(e){return e}
  method mapToBase (line 9) | mapToBase(e){if(typeof e=="string")return e;if(e instanceof URL)return(0...
  method constructor (line 9) | constructor(e,r){this[C$]=1;this[I$]=void 0;this[E$]=void 0;this[y$]=voi...
  method fd (line 9) | get fd(){return this[Ep]}
  method appendFile (line 9) | async appendFile(e,r){try{this[Ru](this.appendFile);let s=(typeof r=="st...
  method chown (line 9) | async chown(e,r){try{return this[Ru](this.chown),await this[Uo].fchownPr...
  method chmod (line 9) | async chmod(e){try{return this[Ru](this.chmod),await this[Uo].fchmodProm...
  method createReadStream (line 9) | createReadStream(e){return this[Uo].createReadStream(null,{...e,fd:this....
  method createWriteStream (line 9) | createWriteStream(e){return this[Uo].createWriteStream(null,{...e,fd:thi...
  method datasync (line 9) | datasync(){throw new Error("Method not implemented.")}
  method sync (line 9) | sync(){throw new Error("Method not implemented.")}
  method read (line 9) | async read(e,r,s,a){try{this[Ru](this.read);let n,c;return ArrayBuffer.i...
  method readFile (line 9) | async readFile(e){try{this[Ru](this.readFile);let r=(typeof e=="string"?...
  method readLines (line 9) | readLines(e){return(0,w$.createInterface)({input:this.createReadStream(e...
  method stat (line 9) | async stat(e){try{return this[Ru](this.stat),await this[Uo].fstatPromise...
  method truncate (line 9) | async truncate(e){try{return this[Ru](this.truncate),await this[Uo].ftru...
  method utimes (line 9) | utimes(e,r){throw new Error("Method not implemented.")}
  method writeFile (line 9) | async writeFile(e,r){try{this[Ru](this.writeFile);let s=(typeof r=="stri...
  method write (line 9) | async write(...e){try{if(this[Ru](this.write),ArrayBuffer.isView(e[0])){...
  method writev (line 9) | async writev(e,r){try{this[Ru](this.writev);let s=0;if(typeof r<"u")for(...
  method readv (line 9) | readv(e,r){throw new Error("Method not implemented.")}
  method close (line 9) | close(){if(this[Ep]===-1)return Promise.resolve();if(this[r0])return thi...
  method [(Uo,Ep,C$=aE,I$=r0,E$=sx,y$=ox,Ru)] (line 9) | [(Uo,Ep,C$=aE,I$=r0,E$=sx,y$=ox,Ru)](e){if(this[Ep]===-1){let r=new Erro...
  method [Fu] (line 9) | [Fu](){if(this[aE]--,this[aE]===0){let e=this[Ep];this[Ep]=-1,this[Uo].c...
  function U2 (line 9) | function U2(t,e){e=new ix(e);let r=(s,a,n)=>{let c=s[a];s[a]=n,typeof c?...
  function ax (line 9) | function ax(t,e){let r=Object.create(t);return U2(r,e),r}
  function D$ (line 9) | function D$(t){let e=Math.ceil(Math.random()*4294967296).toString(16).pa...
  function b$ (line 9) | function b$(){if(kU)return kU;let t=fe.toPortablePath(P$.default.tmpdir(...
  method detachTemp (line 9) | detachTemp(t){Nu.delete(t)}
  method mktempSync (line 9) | mktempSync(t){let{tmpdir:e,realTmpdir:r}=b$();for(;;){let s=D$("xfs-");t...
  method mktempPromise (line 9) | async mktempPromise(t){let{tmpdir:e,realTmpdir:r}=b$();for(;;){let s=D$(...
  method rmtempPromise (line 9) | async rmtempPromise(){await Promise.all(Array.from(Nu.values()).map(asyn...
  method rmtempSync (line 9) | rmtempSync(){for(let t of Nu)try{ce.removeSync(t),Nu.delete(t)}catch{}}
  function u5e (line 9) | function u5e(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT...
  function Q$ (line 9) | function Q$(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:u5e(e,r)}
  function T$ (line 9) | function T$(t,e,r){k$.stat(t,function(s,a){r(s,s?!1:Q$(a,t,e))})}
  function f5e (line 9) | function f5e(t,e){return Q$(k$.statSync(t),t,e)}
  function O$ (line 9) | function O$(t,e,r){N$.stat(t,function(s,a){r(s,s?!1:L$(a,e))})}
  function A5e (line 9) | function A5e(t,e){return L$(N$.statSync(t),e)}
  function L$ (line 9) | function L$(t,e){return t.isFile()&&p5e(t,e)}
  function p5e (line 9) | function p5e(t,e){var r=t.mode,s=t.uid,a=t.gid,n=e.uid!==void 0?e.uid:pr...
  function QU (line 9) | function QU(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Pro...
  function h5e (line 9) | function h5e(t,e){try{return lx.sync(t,e||{})}catch(r){if(e&&e.ignoreErr...
  function Z$ (line 9) | function Z$(t,e){let r=t.options.env||process.env,s=process.cwd(),a=t.op...
  function E5e (line 9) | function E5e(t){return Z$(t)||Z$(t,!0)}
  function I5e (line 9) | function I5e(t){return t=t.replace(RU,"^$1"),t}
  function C5e (line 9) | function C5e(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"...
  function v5e (line 9) | function v5e(t){let r=Buffer.alloc(150),s;try{s=NU.openSync(t,"r"),NU.re...
  function k5e (line 9) | function k5e(t){t.file=lee(t);let e=t.file&&D5e(t.file);return e?(t.args...
  function Q5e (line 9) | function Q5e(t){if(!b5e)return t;let e=k5e(t),r=!P5e.test(e);if(t.option...
  function T5e (line 9) | function T5e(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[]...
  function LU (line 9) | function LU(t,e){return Object.assign(new Error(`${e} ${t.command} ENOEN...
  function R5e (line 9) | function R5e(t,e){if(!OU)return;let r=t.emit;t.emit=function(s,a){if(s==...
  function Aee (line 9) | function Aee(t,e){return OU&&t===1&&!e.file?LU(e.original,"spawn"):null}
  function F5e (line 9) | function F5e(t,e){return OU&&t===1&&!e.file?LU(e.original,"spawnSync"):n...
  function dee (line 9) | function dee(t,e,r){let s=MU(t,e,r),a=gee.spawn(s.command,s.args,s.optio...
  function N5e (line 9) | function N5e(t,e,r){let s=MU(t,e,r),a=gee.spawnSync(s.command,s.args,s.o...
  function O5e (line 9) | function O5e(t,e){function r(){this.constructor=t}r.prototype=e.prototyp...
  function Bd (line 9) | function Bd(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.lo...
  function s (line 9) | function s(h){return h.charCodeAt(0).toString(16).toUpperCase()}
  function a (line 9) | function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace...
  function n (line 9) | function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replac...
  function c (line 9) | function c(h){return r[h.type](h)}
  function f (line 9) | function f(h){var E=new Array(h.length),C,S;for(C=0;C<h.length;C++)E[C]=...
  function p (line 9) | function p(h){return h?'"'+a(h)+'"':"end of input"}
  function L5e (line 9) | function L5e(t,e){e=e!==void 0?e:{};var r={},s={Start:Wa},a=Wa,n=functio...
  function ux (line 12) | function ux(t,e={isGlobPattern:()=>!1}){try{return(0,Eee.parse)(t,e)}cat...
  function fE (line 12) | function fE(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:s},a...
  function fx (line 12) | function fx(t){return`${AE(t.chain)}${t.then?` ${HU(t.then)}`:""}`}
  function HU (line 12) | function HU(t){return`${t.type} ${fx(t.line)}`}
  function AE (line 12) | function AE(t){return`${GU(t)}${t.then?` ${jU(t.then)}`:""}`}
  function jU (line 12) | function jU(t){return`${t.type} ${AE(t.chain)}`}
  function GU (line 12) | function GU(t){switch(t.type){case"command":return`${t.envs.length>0?`${...
  function cx (line 12) | function cx(t){return`${t.name}=${t.args[0]?vd(t.args[0]):""}`}
  function qU (line 12) | function qU(t){switch(t.type){case"redirection":return H2(t);case"argume...
  function H2 (line 12) | function H2(t){return`${t.subtype} ${t.args.map(e=>vd(e)).join(" ")}`}
  function vd (line 12) | function vd(t){return t.segments.map(e=>WU(e)).join("")}
  function WU (line 12) | function WU(t){let e=(s,a)=>a?`"${s}"`:s,r=s=>s===""?"''":s.match(/[()}<...
  function Ax (line 12) | function Ax(t){let e=a=>{switch(a){case"addition":return"+";case"subtrac...
  function _5e (line 13) | function _5e(t,e){function r(){this.constructor=t}r.prototype=e.prototyp...
  function Sd (line 13) | function Sd(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.lo...
  function s (line 13) | function s(h){return h.charCodeAt(0).toString(16).toUpperCase()}
  function a (line 13) | function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace...
  function n (line 13) | function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replac...
  function c (line 13) | function c(h){return r[h.type](h)}
  function f (line 13) | function f(h){var E=new Array(h.length),C,S;for(C=0;C<h.length;C++)E[C]=...
  function p (line 13) | function p(h){return h?'"'+a(h)+'"':"end of input"}
  function H5e (line 13) | function H5e(t,e){e=e!==void 0?e:{};var r={},s={resolution:Ne},a=Ne,n="/...
  function px (line 13) | function px(t){let e=t.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The...
  function hx (line 13) | function hx(t){let e="";return t.from&&(e+=t.from.fullName,t.from.descri...
  function bee (line 13) | function bee(t){return typeof t>"u"||t===null}
  function j5e (line 13) | function j5e(t){return typeof t=="object"&&t!==null}
  function G5e (line 13) | function G5e(t){return Array.isArray(t)?t:bee(t)?[]:[t]}
  function q5e (line 13) | function q5e(t,e){var r,s,a,n;if(e)for(n=Object.keys(e),r=0,s=n.length;r...
  function W5e (line 13) | function W5e(t,e){var r="",s;for(s=0;s<e;s+=1)r+=t;return r}
  function Y5e (line 13) | function Y5e(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}
  function j2 (line 13) | function j2(t,e){Error.call(this),this.name="YAMLException",this.reason=...
  function YU (line 13) | function YU(t,e,r,s,a){this.name=t,this.buffer=e,this.position=r,this.li...
  function K5e (line 17) | function K5e(t){var e={};return t!==null&&Object.keys(t).forEach(functio...
  function z5e (line 17) | function z5e(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(V5e.i...
  function VU (line 17) | function VU(t,e,r){var s=[];return t.include.forEach(function(a){r=VU(a,...
  function Z5e (line 17) | function Z5e(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;...
  function hE (line 17) | function hE(t){this.include=t.include||[],this.implicit=t.implicit||[],t...
  function iqe (line 17) | function iqe(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~...
  function sqe (line 17) | function sqe(){return null}
  function oqe (line 17) | function oqe(t){return t===null}
  function lqe (line 17) | function lqe(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="...
  function cqe (line 17) | function cqe(t){return t==="true"||t==="True"||t==="TRUE"}
  function uqe (line 17) | function uqe(t){return Object.prototype.toString.call(t)==="[object Bool...
  function pqe (line 17) | function pqe(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}
  function hqe (line 17) | function hqe(t){return 48<=t&&t<=55}
  function gqe (line 17) | function gqe(t){return 48<=t&&t<=57}
  function dqe (line 17) | function dqe(t){if(t===null)return!1;var e=t.length,r=0,s=!1,a;if(!e)ret...
  function mqe (line 17) | function mqe(t){var e=t,r=1,s,a,n=[];return e.indexOf("_")!==-1&&(e=e.re...
  function yqe (line 17) | function yqe(t){return Object.prototype.toString.call(t)==="[object Numb...
  function Cqe (line 17) | function Cqe(t){return!(t===null||!Iqe.test(t)||t[t.length-1]==="_")}
  function wqe (line 17) | function wqe(t){var e,r,s,a;return e=t.replace(/_/g,"").toLowerCase(),r=...
  function vqe (line 17) | function vqe(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".na...
  function Sqe (line 17) | function Sqe(t){return Object.prototype.toString.call(t)==="[object Numb...
  function xqe (line 17) | function xqe(t){return t===null?!1:ete.exec(t)!==null||tte.exec(t)!==null}
  function kqe (line 17) | function kqe(t){var e,r,s,a,n,c,f,p=0,h=null,E,C,S;if(e=ete.exec(t),e===...
  function Qqe (line 17) | function Qqe(t){return t.toISOString()}
  function Rqe (line 17) | function Rqe(t){return t==="<<"||t===null}
  function Nqe (line 18) | function Nqe(t){if(t===null)return!1;var e,r,s=0,a=t.length,n=zU;for(r=0...
  function Oqe (line 18) | function Oqe(t){var e,r,s=t.replace(/[\r\n=]/g,""),a=s.length,n=zU,c=0,f...
  function Lqe (line 18) | function Lqe(t){var e="",r=0,s,a,n=t.length,c=zU;for(s=0;s<n;s++)s%3===0...
  function Mqe (line 18) | function Mqe(t){return xd&&xd.isBuffer(t)}
  function jqe (line 18) | function jqe(t){if(t===null)return!0;var e=[],r,s,a,n,c,f=t;for(r=0,s=f....
  function Gqe (line 18) | function Gqe(t){return t!==null?t:[]}
  function Yqe (line 18) | function Yqe(t){if(t===null)return!0;var e,r,s,a,n,c=t;for(n=new Array(c...
  function Vqe (line 18) | function Vqe(t){if(t===null)return[];var e,r,s,a,n,c=t;for(n=new Array(c...
  function zqe (line 18) | function zqe(t){if(t===null)return!0;var e,r=t;for(e in r)if(Kqe.call(r,...
  function Xqe (line 18) | function Xqe(t){return t!==null?t:{}}
  function e9e (line 18) | function e9e(){return!0}
  function t9e (line 18) | function t9e(){}
  function r9e (line 18) | function r9e(){return""}
  function n9e (line 18) | function n9e(t){return typeof t>"u"}
  function s9e (line 18) | function s9e(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)...
  function o9e (line 18) | function o9e(t){var e=t,r=/\/([gim]*)$/.exec(t),s="";return e[0]==="/"&&...
  function a9e (line 18) | function a9e(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multi...
  function l9e (line 18) | function l9e(t){return Object.prototype.toString.call(t)==="[object RegE...
  function u9e (line 18) | function u9e(t){if(t===null)return!1;try{var e="("+t+")",r=mx.parse(e,{r...
  function f9e (line 18) | function f9e(t){var e="("+t+")",r=mx.parse(e,{range:!0}),s=[],a;if(r.typ...
  function A9e (line 18) | function A9e(t){return t.toString()}
  function p9e (line 18) | function p9e(t){return Object.prototype.toString.call(t)==="[object Func...
  function Dte (line 18) | function Dte(t){return Object.prototype.toString.call(t)}
  function jf (line 18) | function jf(t){return t===10||t===13}
  function Qd (line 18) | function Qd(t){return t===9||t===32}
  function rl (line 18) | function rl(t){return t===9||t===32||t===10||t===13}
  function dE (line 18) | function dE(t){return t===44||t===91||t===93||t===123||t===125}
  function I9e (line 18) | function I9e(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-9...
  function C9e (line 18) | function C9e(t){return t===120?2:t===117?4:t===85?8:0}
  function w9e (line 18) | function w9e(t){return 48<=t&&t<=57?t-48:-1}
  function bte (line 18) | function bte(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t=...
  function B9e (line 19) | function B9e(t){return t<=65535?String.fromCharCode(t):String.fromCharCo...
  function v9e (line 19) | function v9e(t,e){this.input=t,this.filename=e.filename||null,this.schem...
  function Ute (line 19) | function Ute(t,e){return new Qte(e,new h9e(t.filename,t.input,t.position...
  function Rr (line 19) | function Rr(t,e){throw Ute(t,e)}
  function Ix (line 19) | function Ix(t,e){t.onWarning&&t.onWarning.call(null,Ute(t,e))}
  function n0 (line 19) | function n0(t,e,r,s){var a,n,c,f;if(e<r){if(f=t.input.slice(e,r),s)for(a...
  function xte (line 19) | function xte(t,e,r,s){var a,n,c,f;for(Ip.isObject(r)||Rr(t,"cannot merge...
  function mE (line 19) | function mE(t,e,r,s,a,n,c,f){var p,h;if(Array.isArray(a))for(a=Array.pro...
  function ZU (line 19) | function ZU(t){var e;e=t.input.charCodeAt(t.position),e===10?t.position+...
  function as (line 19) | function as(t,e,r){for(var s=0,a=t.input.charCodeAt(t.position);a!==0;){...
  function Cx (line 19) | function Cx(t){var e=t.position,r;return r=t.input.charCodeAt(e),!!((r==...
  function $U (line 19) | function $U(t,e){e===1?t.result+=" ":e>1&&(t.result+=Ip.repeat(`
  function S9e (line 20) | function S9e(t,e,r){var s,a,n,c,f,p,h,E,C=t.kind,S=t.result,P;if(P=t.inp...
  function D9e (line 20) | function D9e(t,e){var r,s,a;if(r=t.input.charCodeAt(t.position),r!==39)r...
  function b9e (line 20) | function b9e(t,e){var r,s,a,n,c,f;if(f=t.input.charCodeAt(t.position),f!...
  function P9e (line 20) | function P9e(t,e){var r=!0,s,a=t.tag,n,c=t.anchor,f,p,h,E,C,S={},P,I,R,N...
  function x9e (line 20) | function x9e(t,e){var r,s,a=XU,n=!1,c=!1,f=e,p=0,h=!1,E,C;if(C=t.input.c...
  function kte (line 26) | function kte(t,e){var r,s=t.tag,a=t.anchor,n=[],c,f=!1,p;for(t.anchor!==...
  function k9e (line 26) | function k9e(t,e,r){var s,a,n,c,f=t.tag,p=t.anchor,h={},E={},C=null,S=nu...
  function Q9e (line 26) | function Q9e(t){var e,r=!1,s=!1,a,n,c;if(c=t.input.charCodeAt(t.position...
  function T9e (line 26) | function T9e(t){var e,r;if(r=t.input.charCodeAt(t.position),r!==38)retur...
  function R9e (line 26) | function R9e(t){var e,r,s;if(s=t.input.charCodeAt(t.position),s!==42)ret...
  function yE (line 26) | function yE(t,e,r,s,a){var n,c,f,p=1,h=!1,E=!1,C,S,P,I,R;if(t.listener!=...
  function F9e (line 26) | function F9e(t){var e=t.position,r,s,a,n=!1,c;for(t.version=null,t.check...
  function _te (line 26) | function _te(t,e){t=String(t),e=e||{},t.length!==0&&(t.charCodeAt(t.leng...
  function Hte (line 27) | function Hte(t,e,r){e!==null&&typeof e=="object"&&typeof r>"u"&&(r=e,e=n...
  function jte (line 27) | function jte(t,e){var r=_te(t,e);if(r.length!==0){if(r.length===1)return...
  function N9e (line 27) | function N9e(t,e,r){return typeof e=="object"&&e!==null&&typeof r>"u"&&(...
  function O9e (line 27) | function O9e(t,e){return jte(t,Ip.extend({schema:Tte},e))}
  function rWe (line 27) | function rWe(t,e){var r,s,a,n,c,f,p;if(e===null)return{};for(r={},s=Obje...
  function qte (line 27) | function qte(t){var e,r,s;if(e=t.toString(16).toUpperCase(),t<=255)r="x"...
  function nWe (line 27) | function nWe(t){this.schema=t.schema||L9e,this.indent=Math.max(1,t.inden...
  function Wte (line 27) | function Wte(t,e){for(var r=Y2.repeat(" ",e),s=0,a=-1,n="",c,f=t.length;...
  function e_ (line 29) | function e_(t,e){return`
  function iWe (line 30) | function iWe(t,e){var r,s,a;for(r=0,s=t.implicitTypes.length;r<s;r+=1)if...
  function r_ (line 30) | function r_(t){return t===H9e||t===U9e}
  function EE (line 30) | function EE(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==823...
  function sWe (line 30) | function sWe(t){return EE(t)&&!r_(t)&&t!==65279&&t!==_9e&&t!==W2}
  function Yte (line 30) | function Yte(t,e){return EE(t)&&t!==65279&&t!==ere&&t!==rre&&t!==nre&&t!...
  function oWe (line 30) | function oWe(t){return EE(t)&&t!==65279&&!r_(t)&&t!==J9e&&t!==X9e&&t!==t...
  function ore (line 30) | function ore(t){var e=/^\n* /;return e.test(t)}
  function aWe (line 30) | function aWe(t,e,r,s,a){var n,c,f,p=!1,h=!1,E=s!==-1,C=-1,S=oWe(t.charCo...
  function lWe (line 30) | function lWe(t,e,r,s){t.dump=function(){if(e.length===0)return"''";if(!t...
  function Vte (line 30) | function Vte(t,e){var r=ore(t)?String(e):"",s=t[t.length-1]===`
  function Jte (line 34) | function Jte(t){return t[t.length-1]===`
  function cWe (line 35) | function cWe(t,e){for(var r=/(\n+)([^\n]*)/g,s=function(){var h=t.indexOf(`
  function Kte (line 38) | function Kte(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,s,a=...
  function uWe (line 41) | function uWe(t){for(var e="",r,s,a,n=0;n<t.length;n++){if(r=t.charCodeAt...
  function fWe (line 41) | function fWe(t,e,r){var s="",a=t.tag,n,c;for(n=0,c=r.length;n<c;n+=1)Td(...
  function AWe (line 41) | function AWe(t,e,r,s){var a="",n=t.tag,c,f;for(c=0,f=r.length;c<f;c+=1)T...
  function pWe (line 41) | function pWe(t,e,r){var s="",a=t.tag,n=Object.keys(r),c,f,p,h,E;for(c=0,...
  function hWe (line 41) | function hWe(t,e,r,s){var a="",n=t.tag,c=Object.keys(r),f,p,h,E,C,S;if(t...
  function zte (line 41) | function zte(t,e,r){var s,a,n,c,f,p;for(a=r?t.explicitTypes:t.implicitTy...
  function Td (line 41) | function Td(t,e,r,s,a,n){t.tag=null,t.dump=r,zte(t,r,!1)||zte(t,r,!0);va...
  function gWe (line 41) | function gWe(t,e){var r=[],s=[],a,n;for(t_(t,r,s),a=0,n=s.length;a<n;a+=...
  function t_ (line 41) | function t_(t,e,r){var s,a,n;if(t!==null&&typeof t=="object")if(a=e.inde...
  function fre (line 41) | function fre(t,e){e=e||{};var r=new nWe(e);return r.noRefs||gWe(t,r),Td(...
  function dWe (line 42) | function dWe(t,e){return fre(t,Y2.extend({schema:M9e},e))}
  function vx (line 42) | function vx(t){return function(){throw new Error("Function "+t+" is depr...
  function yWe (line 42) | function yWe(t,e){function r(){this.constructor=t}r.prototype=e.prototyp...
  function Rd (line 42) | function Rd(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.lo...
  function s (line 42) | function s(h){return h.charCodeAt(0).toString(16).toUpperCase()}
  function a (line 42) | function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace...
  function n (line 42) | function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replac...
  function c (line 42) | function c(h){return r[h.type](h)}
  function f (line 42) | function f(h){var E=new Array(h.length),C,S;for(C=0;C<h.length;C++)E[C]=...
  function p (line 42) | function p(h){return h?'"'+a(h)+'"':"end of input"}
  function EWe (line 42) | function EWe(t,e){e=e!==void 0?e:{};var r={},s={Start:lc},a=lc,n=functio...
  function Ire (line 51) | function Ire(t){return t.match(IWe)?t:JSON.stringify(t)}
  function wre (line 51) | function wre(t){return typeof t>"u"?!0:typeof t=="object"&&t!==null&&!Ar...
  function i_ (line 51) | function i_(t,e,r){if(t===null)return`null
  function nl (line 61) | function nl(t){try{let e=i_(t,0,!1);return e!==`
  function CWe (line 62) | function CWe(t){return t.endsWith(`
  function BWe (line 64) | function BWe(t){if(wWe.test(t))return CWe(t);let e=(0,Dx.safeLoad)(t,{sc...
  function ls (line 64) | function ls(t){return BWe(t)}
  method constructor (line 64) | constructor(e){this.data=e}
  function bre (line 64) | function bre(t){return typeof t=="string"?!!Ds[t]:"env"in t?Ds[t.env]&&D...
  method constructor (line 64) | constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageEr...
  method constructor (line 64) | constructor(e,r){if(super(),this.input=e,this.candidates=r,this.clipanio...
  method constructor (line 75) | constructor(e,r){super(),this.input=e,this.usages=r,this.clipanion={type...
  function DWe (line 80) | function DWe(t){let e=t.split(`
  function Ho (line 82) | function Ho(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,`
  function ya (line 90) | function ya(t){return{...t,[K2]:!0}}
  function Gf (line 90) | function Gf(t,e){return typeof t>"u"?[t,e]:typeof t=="object"&&t!==null&...
  function Qx (line 90) | function Qx(t,{mergeName:e=!1}={}){let r=t.match(/^([^:]+): (.*)$/m);if(...
  function z2 (line 90) | function z2(t,e){return e.length===1?new nt(`${t}${Qx(e[0],{mergeName:!0...
  function Od (line 92) | function Od(t,e,r){if(typeof r>"u")return e;let s=[],a=[],n=f=>{let p=e;...
  function ti (line 92) | function ti(t){return t===null?"null":t===void 0?"undefined":t===""?"an ...
  function CE (line 92) | function CE(t,e){if(t.length===0)return"nothing";if(t.length===1)return ...
  function s0 (line 92) | function s0(t,e){var r,s,a;return typeof e=="number"?`${(r=t?.p)!==null&...
  function A_ (line 92) | function A_(t,e,r){return t===1?e:r}
  function mr (line 92) | function mr({errors:t,p:e}={},r){return t?.push(`${e??"."}: ${r}`),!1}
  function TWe (line 92) | function TWe(t,e){return r=>{t[e]=r}}
  function Wf (line 92) | function Wf(t,e){return r=>{let s=t[e];return t[e]=r,Wf(t,e).bind(null,s)}}
  function X2 (line 92) | function X2(t,e,r){let s=()=>(t(r()),a),a=()=>(t(e),s);return s}
  function p_ (line 92) | function p_(){return Wr({test:(t,e)=>!0})}
  function Rre (line 92) | function Rre(t){return Wr({test:(e,r)=>e!==t?mr(r,`Expected ${ti(t)} (go...
  function wE (line 92) | function wE(){return Wr({test:(t,e)=>typeof t!="string"?mr(e,`Expected a...
  function fo (line 92) | function fo(t){let e=Array.isArray(t)?t:Object.values(t),r=e.every(a=>ty...
  function FWe (line 92) | function FWe(){return Wr({test:(t,e)=>{var r;if(typeof t!="boolean"){if(...
  function h_ (line 92) | function h_(){return Wr({test:(t,e)=>{var r;if(typeof t!="number"){if(ty...
  function NWe (line 92) | function NWe(t){return Wr({test:(e,r)=>{var s;if(typeof r?.coercions>"u"...
  function OWe (line 92) | function OWe(){return Wr({test:(t,e)=>{var r;if(!(t instanceof Date)){if...
  function Tx (line 92) | function Tx(t,{delimiter:e}={}){return Wr({test:(r,s)=>{var a;let n=r;if...
  function LWe (line 92) | function LWe(t,{delimiter:e}={}){let r=Tx(t,{delimiter:e});return Wr({te...
  function MWe (line 92) | function MWe(t,e){let r=Tx(Rx([t,e])),s=Fx(e,{keys:t});return Wr({test:(...
  function Rx (line 92) | function Rx(t,{delimiter:e}={}){let r=Ore(t.length);return Wr({test:(s,a...
  function Fx (line 92) | function Fx(t,{keys:e=null}={}){let r=Tx(Rx([e??wE(),t]));return Wr({tes...
  function UWe (line 92) | function UWe(t,e={}){return Fx(t,e)}
  function Fre (line 92) | function Fre(t,{extra:e=null}={}){let r=Object.keys(t),s=Wr({test:(a,n)=...
  function _We (line 92) | function _We(t){return Fre(t,{extra:Fx(p_())})}
  function Nre (line 92) | function Nre(t){return()=>t}
  function Wr (line 92) | function Wr({test:t}){return Nre(t)()}
  function jWe (line 92) | function jWe(t,e){if(!e(t))throw new o0}
  function GWe (line 92) | function GWe(t,e){let r=[];if(!e(t,{errors:r}))throw new o0({errors:r})}
  function qWe (line 92) | function qWe(t,e){}
  function WWe (line 92) | function WWe(t,e,{coerce:r=!1,errors:s,throw:a}={}){let n=s?[]:void 0;if...
  function YWe (line 92) | function YWe(t,e){let r=Rx(t);return(...s)=>{if(!r(s))throw new o0;retur...
  function VWe (line 92) | function VWe(t){return Wr({test:(e,r)=>e.length>=t?!0:mr(r,`Expected to ...
  function JWe (line 92) | function JWe(t){return Wr({test:(e,r)=>e.length<=t?!0:mr(r,`Expected to ...
  function Ore (line 92) | function Ore(t){return Wr({test:(e,r)=>e.length!==t?mr(r,`Expected to ha...
  function KWe (line 92) | function KWe({map:t}={}){return Wr({test:(e,r)=>{let s=new Set,a=new Set...
  function zWe (line 92) | function zWe(){return Wr({test:(t,e)=>t<=0?!0:mr(e,`Expected to be negat...
  function XWe (line 92) | function XWe(){return Wr({test:(t,e)=>t>=0?!0:mr(e,`Expected to be posit...
  function d_ (line 92) | function d_(t){return Wr({test:(e,r)=>e>=t?!0:mr(r,`Expected to be at le...
  function ZWe (line 92) | function ZWe(t){return Wr({test:(e,r)=>e<=t?!0:mr(r,`Expected to be at m...
  function $We (line 92) | function $We(t,e){return Wr({test:(r,s)=>r>=t&&r<=e?!0:mr(s,`Expected to...
  function eYe (line 92) | function eYe(t,e){return Wr({test:(r,s)=>r>=t&&r<e?!0:mr(s,`Expected to ...
  function m_ (line 92) | function m_({unsafe:t=!1}={}){return Wr({test:(e,r)=>e!==Math.round(e)?m...
  function Z2 (line 92) | function Z2(t){return Wr({test:(e,r)=>t.test(e)?!0:mr(r,`Expected to mat...
  function tYe (line 92) | function tYe(){return Wr({test:(t,e)=>t!==t.toLowerCase()?mr(e,`Expected...
  function rYe (line 92) | function rYe(){return Wr({test:(t,e)=>t!==t.toUpperCase()?mr(e,`Expected...
  function nYe (line 92) | function nYe(){return Wr({test:(t,e)=>QWe.test(t)?!0:mr(e,`Expected to b...
  function iYe (line 92) | function iYe(){return Wr({test:(t,e)=>Tre.test(t)?!0:mr(e,`Expected to b...
  function sYe (line 92) | function sYe({alpha:t=!1}){return Wr({test:(e,r)=>(t?PWe.test(e):xWe.tes...
  function oYe (line 92) | function oYe(){return Wr({test:(t,e)=>kWe.test(t)?!0:mr(e,`Expected to b...
  function aYe (line 92) | function aYe(t=p_()){return Wr({test:(e,r)=>{let s;try{s=JSON.parse(e)}c...
  function Nx (line 92) | function Nx(t,...e){let r=Array.isArray(e[0])?e[0]:e;return Wr({test:(s,...
  function $2 (line 92) | function $2(t,...e){let r=Array.isArray(e[0])?e[0]:e;return Nx(t,r)}
  function lYe (line 92) | function lYe(t){return Wr({test:(e,r)=>typeof e>"u"?!0:t(e,r)})}
  function cYe (line 92) | function cYe(t){return Wr({test:(e,r)=>e===null?!0:t(e,r)})}
  function uYe (line 92) | function uYe(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r...
  function y_ (line 92) | function y_(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r!...
  function fYe (line 92) | function fYe(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r...
  function AYe (line 92) | function AYe(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r...
  function tB (line 92) | function tB(t,e,r,s){var a,n;let c=new Set((a=s?.ignore)!==null&&a!==voi...
  method constructor (line 92) | constructor({errors:e}={}){let r="Type mismatch";if(e&&e.length>0){r+=`
  method constructor (line 94) | constructor(){this.help=!1}
  method Usage (line 94) | static Usage(e){return e}
  method catch (line 94) | async catch(e){throw e}
  method validateAndExecute (line 94) | async validateAndExecute(){let r=this.constructor.schema;if(Array.isArra...
  function il (line 94) | function il(t){l_&&console.log(t)}
  function Mre (line 94) | function Mre(){let t={nodes:[]};for(let e=0;e<En.CustomNode;++e)t.nodes....
  function hYe (line 94) | function hYe(t){let e=Mre(),r=[],s=e.nodes.length;for(let a of t){r.push...
  function Ou (line 94) | function Ou(t,e){return t.nodes.push(e),t.nodes.length-1}
  function gYe (line 94) | function gYe(t){let e=new Set,r=s=>{if(e.has(s))return;e.add(s);let a=t....
  function dYe (line 94) | function dYe(t,{prefix:e=""}={}){if(l_){il(`${e}Nodes are:`);for(let r=0...
  function mYe (line 94) | function mYe(t,e,r=!1){il(`Running a vm on ${JSON.stringify(e)}`);let s=...
  function yYe (line 94) | function yYe(t,e,{endToken:r=ei.EndOfInput}={}){let s=mYe(t,[...e,r]);re...
  function EYe (line 94) | function EYe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path....
  function IYe (line 94) | function IYe(t,e){let r=e.filter(S=>S.selectedIndex!==null),s=r.filter(S...
  function CYe (line 94) | function CYe(t){let e=[],r=[];for(let s of t)s.selectedIndex===Nd?r.push...
  function Ure (line 94) | function Ure(t,e,...r){return e===void 0?Array.from(t):Ure(t.filter((s,a...
  function _l (line 94) | function _l(){return{dynamics:[],shortcuts:[],statics:{}}}
  function _re (line 94) | function _re(t){return t===En.SuccessNode||t===En.ErrorNode}
  function E_ (line 94) | function E_(t,e=0){return{to:_re(t.to)?t.to:t.to>=En.CustomNode?t.to+e-E...
  function wYe (line 94) | function wYe(t,e=0){let r=_l();for(let[s,a]of t.dynamics)r.dynamics.push...
  function Hs (line 94) | function Hs(t,e,r,s,a){t.nodes[e].dynamics.push([r,{to:s,reducer:a}])}
  function BE (line 94) | function BE(t,e,r,s){t.nodes[e].shortcuts.push({to:r,reducer:s})}
  function Ia (line 94) | function Ia(t,e,r,s,a){(Object.prototype.hasOwnProperty.call(t.nodes[e]....
  function Ox (line 94) | function Ox(t,e,r,s,a){if(Array.isArray(e)){let[n,...c]=e;return t[n](r,...
  method constructor (line 94) | constructor(e,r){this.allOptionNames=new Map,this.arity={leading:[],trai...
  method addPath (line 94) | addPath(e){this.paths.push(e)}
  method setArity (line 94) | setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,ex...
  method addPositional (line 94) | addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra==...
  method addRest (line 94) | addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===Hl)throw n...
  method addProxy (line 94) | addProxy({required:e=0}={}){this.addRest({required:e}),this.arity.proxy=!0}
  method addOption (line 94) | addOption({names:e,description:r,arity:s=0,hidden:a=!1,required:n=!1,all...
  method setContext (line 94) | setContext(e){this.context=e}
  method usage (line 94) | usage({detailed:e=!0,inlineOptions:r=!0}={}){let s=[this.cliOpts.binaryN...
  method compile (line 94) | compile(){if(typeof this.context>"u")throw new Error("Assertion failed: ...
  method registerOptions (line 94) | registerOptions(e,r){Hs(e,r,["isOption","--"],r,"inhibateOptions"),Hs(e,...
  method constructor (line 94) | constructor({binaryName:e="..."}={}){this.builders=[],this.opts={binaryN...
  method build (line 94) | static build(e,r={}){return new t(r).commands(e).compile()}
  method getBuilderByIndex (line 94) | getBuilderByIndex(e){if(!(e>=0&&e<this.builders.length))throw new Error(...
  method commands (line 94) | commands(e){for(let r of e)r(this.command());return this}
  method command (line 94) | command(){let e=new C_(this.builders.length,this.opts);return this.build...
  method compile (line 94) | compile(){let e=[],r=[];for(let a of this.builders){let{machine:n,contex...
  function jre (line 94) | function jre(){return Ux.default&&"getColorDepth"in Ux.default.WriteStre...
  function Gre (line 94) | function Gre(t){let e=Hre;if(typeof e>"u"){if(t.stdout===process.stdout&...
  method constructor (line 94) | constructor(e){super(),this.contexts=e,this.commands=[]}
  method from (line 94) | static from(e,r){let s=new t(r);s.path=e.path;for(let a of e.options)swi...
  method execute (line 94) | async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index...
  function Jre (line 98) | async function Jre(...t){let{resolvedOptions:e,resolvedCommandClasses:r,...
  function Kre (line 98) | async function Kre(...t){let{resolvedOptions:e,resolvedCommandClasses:r,...
  function zre (line 98) | function zre(t){let e,r,s,a;switch(typeof process<"u"&&typeof process.ar...
  function Vre (line 98) | function Vre(t){return t()}
  method constructor (line 98) | constructor({binaryLabel:e,binaryName:r="...",binaryVersion:s,enableCapt...
  method from (line 98) | static from(e,r={}){let s=new t(r),a=Array.isArray(e)?e:[e];for(let n of...
  method register (line 98) | register(e){var r;let s=new Map,a=new e;for(let p in a){let h=a[p];typeo...
  method process (line 98) | process(e,r){let{input:s,context:a,partial:n}=typeof e=="object"&&Array....
  method run (line 98) | async run(e,r){var s,a;let n,c={...t.defaultContext,...r},f=(s=this.enab...
  method runExit (line 98) | async runExit(e,r){process.exitCode=await this.run(e,r)}
  method definition (line 98) | definition(e,{colored:r=!1}={}){if(!e.usage)return null;let{usage:s}=thi...
  method definitions (line 98) | definitions({colored:e=!1}={}){let r=[];for(let s of this.registrations....
  method usage (line 98) | usage(e=null,{colored:r,detailed:s=!1,prefix:a="$ "}={}){var n;if(e===nu...
  method error (line 124) | error(e,r){var s,{colored:a,command:n=(s=e[Yre])!==null&&s!==void 0?s:nu...
  method format (line 127) | format(e){var r;return((r=e??this.enableColors)!==null&&r!==void 0?r:t.d...
  method getUsageByRegistration (line 127) | getUsageByRegistration(e,r){let s=this.registrations.get(e);if(typeof s>...
  method getUsageByIndex (line 127) | getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}
  method execute (line 127) | async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.def...
  method execute (line 128) | async execute(){this.context.stdout.write(this.cli.usage())}
  function Hx (line 128) | function Hx(t={}){return ya({definition(e,r){var s;e.addProxy({name:(s=t...
  method constructor (line 128) | constructor(){super(...arguments),this.args=Hx()}
  method execute (line 128) | async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.pro...
  method execute (line 129) | async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVer...
  function nne (line 130) | function nne(t,e,r){let[s,a]=Gf(e,r??{}),{arity:n=1}=a,c=t.split(","),f=...
  function sne (line 130) | function sne(t,e,r){let[s,a]=Gf(e,r??{}),n=t.split(","),c=new Set(n);ret...
  function ane (line 130) | function ane(t,e,r){let[s,a]=Gf(e,r??{}),n=t.split(","),c=new Set(n);ret...
  function cne (line 130) | function cne(t={}){return ya({definition(e,r){var s;e.addRest({name:(s=t...
  function vYe (line 130) | function vYe(t,e,r){let[s,a]=Gf(e,r??{}),{arity:n=1}=a,c=t.split(","),f=...
  function SYe (line 130) | function SYe(t={}){let{required:e=!0}=t;return ya({definition(r,s){var a...
  function fne (line 130) | function fne(t,...e){return typeof t=="string"?vYe(t,...e):SYe(t)}
  function QYe (line 130) | function QYe(t){let e={},r=t.toString();r=r.replace(/\r\n?/mg,`
  function TYe (line 132) | function TYe(t){let e=mne(t),r=js.configDotenv({path:e});if(!r.parsed)th...
  function RYe (line 132) | function RYe(t){console.log(`[dotenv@${D_}][INFO] ${t}`)}
  function FYe (line 132) | function FYe(t){console.log(`[dotenv@${D_}][WARN] ${t}`)}
  function v_ (line 132) | function v_(t){console.log(`[dotenv@${D_}][DEBUG] ${t}`)}
  function dne (line 132) | function dne(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_K...
  function NYe (line 132) | function NYe(t,e){let r;try{r=new URL(e)}catch(f){throw f.code==="ERR_IN...
  function mne (line 132) | function mne(t){let e=S_.resolve(process.cwd(),".env");return t&&t.path&...
  function OYe (line 132) | function OYe(t){return t[0]==="~"?S_.join(bYe.homedir(),t.slice(1)):t}
  function LYe (line 132) | function LYe(t){RYe("Loading env from encrypted .env.vault");let e=js._p...
  function MYe (line 132) | function MYe(t){let e=S_.resolve(process.cwd(),".env"),r="utf8",s=!!(t&&...
  function UYe (line 132) | function UYe(t){let e=mne(t);return dne(t).length===0?js.configDotenv(t)...
  function _Ye (line 132) | function _Ye(t,e){let r=Buffer.from(e.slice(-64),"hex"),s=Buffer.from(t,...
  function HYe (line 132) | function HYe(t,e,r={}){let s=!!(r&&r.debug),a=!!(r&&r.override);if(typeo...
  function Yf (line 132) | function Yf(t){return`YN${t.toString(10).padStart(4,"0")}`}
  function jx (line 132) | function jx(t){let e=Number(t.slice(2));if(typeof Br[e]>"u")throw new Er...
  method constructor (line 132) | constructor(e,r){if(r=aVe(r),e instanceof t){if(e.loose===!!r.loose&&e.i...
  method format (line 132) | format(){return this.version=`${this.major}.${this.minor}.${this.patch}`...
  method toString (line 132) | toString(){return this.version}
  method compare (line 132) | compare(e){if(Wx("SemVer.compare",this.version,this.options,e),!(e insta...
  method compareMain (line 132) | compareMain(e){return e instanceof t||(e=new t(e,this.options)),SE(this....
  method comparePre (line 132) | comparePre(e){if(e instanceof t||(e=new t(e,this.options)),this.prerelea...
  method compareBuild (line 132) | compareBuild(e){e instanceof t||(e=new t(e,this.options));let r=0;do{let...
  method inc (line 132) | inc(e,r,s){switch(e){case"premajor":this.prerelease.length=0,this.patch=...
  function Fn (line 132) | function Fn(t){var e=this;if(e instanceof Fn||(e=new Fn),e.tail=null,e.h...
  function t7e (line 132) | function t7e(t,e,r){var s=e===t.head?new Ud(r,null,e,t):new Ud(r,e,e.nex...
  function r7e (line 132) | function r7e(t,e){t.tail=new Ud(e,t.tail,null,t),t.head||(t.head=t.tail)...
  function n7e (line 132) | function n7e(t,e){t.head=new Ud(e,null,t.head,t),t.tail||(t.tail=t.head)...
  function Ud (line 132) | function Ud(t,e,r,s){if(!(this instanceof Ud))return new Ud(t,e,r,s);thi...
  method constructor (line 132) | constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(type...
  method max (line 132) | set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a...
  method max (line 132) | get max(){return this[_d]}
  method allowStale (line 132) | set allowStale(e){this[fB]=!!e}
  method allowStale (line 132) | get allowStale(){return this[fB]}
  method maxAge (line 132) | set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be ...
  method maxAge (line 132) | get maxAge(){return this[Hd]}
  method lengthCalculator (line 132) | set lengthCalculator(e){typeof e!="function"&&(e=N_),e!==this[DE]&&(this...
  method lengthCalculator (line 132) | get lengthCalculator(){return this[DE]}
  method length (line 132) | get length(){return this[Sp]}
  method itemCount (line 132) | get itemCount(){return this[Gs].length}
  method rforEach (line 132) | rforEach(e,r){r=r||this;for(let s=this[Gs].tail;s!==null;){let a=s.prev;...
  method forEach (line 132) | forEach(e,r){r=r||this;for(let s=this[Gs].head;s!==null;){let a=s.next;v...
  method keys (line 132) | keys(){return this[Gs].toArray().map(e=>e.key)}
  method values (line 132) | values(){return this[Gs].toArray().map(e=>e.value)}
  method reset (line 132) | reset(){this[vp]&&this[Gs]&&this[Gs].length&&this[Gs].forEach(e=>this[vp...
  method dump (line 132) | dump(){return this[Gs].map(e=>ek(this,e)?!1:{k:e.key,v:e.value,e:e.now+(...
  method dumpLru (line 132) | dumpLru(){return this[Gs]}
  method set (line 132) | set(e,r,s){if(s=s||this[Hd],s&&typeof s!="number")throw new TypeError("m...
  method has (line 132) | has(e){if(!this[Lu].has(e))return!1;let r=this[Lu].get(e).value;return!e...
  method get (line 132) | get(e){return O_(this,e,!0)}
  method peek (line 132) | peek(e){return O_(this,e,!1)}
  method pop (line 132) | pop(){let e=this[Gs].tail;return e?(bE(this,e),e.value):null}
  method del (line 132) | del(e){bE(this,this[Lu].get(e))}
  method load (line 132) | load(e){this.reset();let r=Date.now();for(let s=e.length-1;s>=0;s--){let...
  method prune (line 132) | prune(){this[Lu].forEach((e,r)=>O_(this,r,!1))}
  method constructor (line 132) | constructor(e,r,s,a,n){this.key=e,this.value=r,this.length=s,this.now=a,...
  method constructor (line 132) | constructor(e,r){if(r=o7e(r),e instanceof t)return e.loose===!!r.loose&&...
  method format (line 132) | format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||"...
  method toString (line 132) | toString(){return this.range}
  method parseRange (line 132) | parseRange(e){let s=((this.options.includePrerelease&&f7e)|(this.options...
  method intersects (line 132) | intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is req...
  method test (line 132) | test(e){if(!e)return!1;if(typeof e=="string")try{e=new a7e(e,this.option...
  method ANY (line 132) | static get ANY(){return pB}
  method constructor (line 132) | constructor(e,r){if(r=Tie(r),e instanceof t){if(e.loose===!!r.loose)retu...
  method parse (line 132) | parse(e){let r=this.options.loose?Rie[Fie.COMPARATORLOOSE]:Rie[Fie.COMPA...
  method toString (line 132) | toString(){return this.value}
  method test (line 132) | test(e){if(j_("Comparator.test",e,this.options.loose),this.semver===pB||...
  method intersects (line 132) | intersects(e,r){if(!(e instanceof t))throw new TypeError("a Comparator i...
  function _Je (line 132) | function _Je(t,e){function r(){this.constructor=t}r.prototype=e.prototyp...
  function jd (line 132) | function jd(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.lo...
  function s (line 132) | function s(h){return h.charCodeAt(0).toString(16).toUpperCase()}
  function a (line 132) | function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace...
  function n (line 132) | function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replac...
  function c (line 132) | function c(h){return r[h.type](h)}
  function f (line 132) | function f(h){var E=new Array(h.length),C,S;for(C=0;C<h.length;C++)E[C]=...
  function p (line 132) | function p(h){return h?'"'+a(h)+'"':"end of input"}
  function HJe (line 132) | function HJe(t,e){e=e!==void 0?e:{};var r={},s={Expression:y},a=y,n="|",...
  function GJe (line 134) | function GJe(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}
  function qJe (line 134) | function qJe(){let t={},e=Object.keys(nk);for(let r=e.length,s=0;s<r;s++...
  function WJe (line 134) | function WJe(t){let e=qJe(),r=[t];for(e[t].distance=0;r.length;){let s=r...
  function YJe (line 134) | function YJe(t,e){return function(r){return e(t(r))}}
  function VJe (line 134) | function VJe(t,e){let r=[e[t].parent,t],s=nk[e[t].parent][t],a=e[t].pare...
  function zJe (line 134) | function zJe(t){let e=function(...r){let s=r[0];return s==null?s:(s.leng...
  function XJe (line 134) | function XJe(t){let e=function(...r){let s=r[0];if(s==null)return s;s.le...
  function ZJe (line 134) | function ZJe(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2...
  function Z_ (line 134) | function Z_(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t...
  function $_ (line 134) | function $_(t,e){if(l0===0)return 0;if(Sc("color=16m")||Sc("color=full")...
  function eKe (line 134) | function eKe(t){let e=$_(t,t&&t.isTTY);return Z_(e)}
  function Gse (line 138) | function Gse(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5...
  function aKe (line 138) | function aKe(t,e){let r=[],s=e.trim().split(/\s*,\s*/g),a;for(let n of s...
  function lKe (line 138) | function lKe(t){Hse.lastIndex=0;let e=[],r;for(;(r=Hse.exec(t))!==null;)...
  function jse (line 138) | function jse(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=...
  method constructor (line 138) | constructor(e){return Jse(e)}
  function ak (line 138) | function ak(t){return Jse(t)}
  method get (line 138) | get(){let r=lk(this,i4(e.open,e.close,this._styler),this._isEmpty);retur...
  method get (line 138) | get(){let t=lk(this,this._styler,!0);return Object.defineProperty(this,"...
  method get (line 138) | get(){let{level:e}=this;return function(...r){let s=i4(mB.color[Vse[e]][...
  method get (line 138) | get(){let{level:r}=this;return function(...s){let a=i4(mB.bgColor[Vse[r]...
  method get (line 138) | get(){return this._generator.level}
  method set (line 138) | set(t){this._generator.level=t}
  function pKe (line 139) | function pKe(t,e,r){let s=s4(t,e,"-",!1,r)||[],a=s4(e,t,"",!1,r)||[],n=s...
  function hKe (line 139) | function hKe(t,e){let r=1,s=1,a=soe(t,r),n=new Set([e]);for(;t<=a&&a<=e;...
  function gKe (line 139) | function gKe(t,e,r){if(t===e)return{pattern:t,count:[],digits:0};let s=d...
  function noe (line 139) | function noe(t,e,r,s){let a=hKe(t,e),n=[],c=t,f;for(let p=0;p<a.length;p...
  function s4 (line 139) | function s4(t,e,r,s,a){let n=[];for(let c of t){let{string:f}=c;!s&&!ioe...
  function dKe (line 139) | function dKe(t,e){let r=[];for(let s=0;s<t.length;s++)r.push([t[s],e[s]]...
  function mKe (line 139) | function mKe(t,e){return t>e?1:e>t?-1:0}
  function ioe (line 139) | function ioe(t,e,r){return t.some(s=>s[e]===r)}
  function soe (line 139) | function soe(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}
  function ooe (line 139) | function ooe(t,e){return t-t%Math.pow(10,e)}
  function aoe (line 139) | function aoe(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}
  function yKe (line 139) | function yKe(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}
  function loe (line 139) | function loe(t){return/^-?(0+)\d/.test(t)}
  function EKe (line 139) | function EKe(t,e,r){if(!e.isPadded)return t;let s=Math.abs(e.maxLen-Stri...
  method extglobChars (line 140) | extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t....
  method globChars (line 140) | globChars(t){return t===!0?ize:Moe}
  function lae (line 140) | function lae(t){return Number.isSafeInteger(t)&&t>=0}
  function uae (line 140) | function uae(t){return t!=null&&typeof t!="function"&&lae(t.length)}
  function bc (line 140) | function bc(t){return t==="__proto__"}
  function NE (line 140) | function NE(t){switch(typeof t){case"number":case"symbol":return!1;case"...
  function OE (line 140) | function OE(t){return typeof t=="string"||typeof t=="symbol"?t:Object.is...
  function Mu (line 140) | function Mu(t){let e=[],r=t.length;if(r===0)return e;let s=0,a="",n="",c...
  function va (line 140) | function va(t,e,r){if(t==null)return r;switch(typeof e){case"string":{if...
  function Pze (line 140) | function Pze(t,e,r){if(e.length===0)return r;let s=t;for(let a=0;a<e.len...
  function C4 (line 140) | function C4(t){return t!==null&&(typeof t=="object"||typeof t=="function")}
  function ME (line 140) | function ME(t){return t==null||typeof t!="object"&&typeof t!="function"}
  function Ck (line 140) | function Ck(t,e){return t===e||Number.isNaN(t)&&Number.isNaN(e)}
  function Wd (line 140) | function Wd(t){return Object.getOwnPropertySymbols(t).filter(e=>Object.p...
  function Yd (line 140) | function Yd(t){return t==null?t===void 0?"[object Undefined]":"[object N...
  function GE (line 140) | function GE(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}
  function mae (line 140) | function mae(t,e){return u0(t,void 0,t,new Map,e)}
  function u0 (line 140) | function u0(t,e,r,s=new Map,a=void 0){let n=a?.(t,e,r,s);if(n!=null)retu...
  function c0 (line 140) | function c0(t,e,r=t,s,a){let n=[...Object.keys(e),...Wd(e)];for(let c=0;...
  function xze (line 140) | function xze(t){switch(Yd(t)){case Vd:case xk:case kk:case Qk:case HE:ca...
  function yae (line 140) | function yae(t){return u0(t,void 0,t,new Map,void 0)}
  function Iae (line 140) | function Iae(t,e){return mae(t,(r,s,a,n)=>{let c=e?.(r,s,a,n);if(c!=null...
  function f0 (line 140) | function f0(t){return Iae(t)}
  function Gk (line 140) | function Gk(t,e=Number.MAX_SAFE_INTEGER){switch(typeof t){case"number":r...
  function BB (line 140) | function BB(t){return t!==null&&typeof t=="object"&&Yd(t)==="[object Arg...
  function vB (line 140) | function vB(t,e){let r;if(Array.isArray(e)?r=e:typeof e=="string"&&NE(e)...
  function P4 (line 140) | function P4(t){return typeof t=="object"&&t!==null}
  function Bae (line 140) | function Bae(t){return typeof t=="symbol"||t instanceof Symbol}
  function Sae (line 140) | function Sae(t,e){return Array.isArray(t)?!1:typeof t=="number"||typeof ...
  function A0 (line 140) | function A0(t,e){if(t==null)return!0;switch(typeof e){case"symbol":case"...
  function bae (line 140) | function bae(t,e){let r=va(t,e.slice(0,-1),t),s=e[e.length-1];if(r?.[s]=...
  function Pae (line 140) | function Pae(t){return t==null}
  function Tae (line 140) | function Tae(t,e,r,s){if(t==null&&!C4(t))return t;let a=Sae(e,t)?[e]:Arr...
  function Jd (line 140) | function Jd(t,e,r){return Tae(t,e,()=>r,()=>{})}
  function Fae (line 140) | function Fae(t,e=0,r={}){typeof r!="object"&&(r={});let s=null,a=null,n=...
  function Q4 (line 140) | function Q4(t,e=0,r={}){let{leading:s=!0,trailing:a=!0}=r;return Fae(t,e...
  function T4 (line 140) | function T4(t){if(t==null)return"";if(typeof t=="string")return t;if(Arr...
  function R4 (line 140) | function R4(t){if(!t||typeof t!="object")return!1;let e=Object.getProtot...
  function Uae (line 140) | function Uae(t,e,r){return SB(t,e,void 0,void 0,void 0,void 0,r)}
  function SB (line 140) | function SB(t,e,r,s,a,n,c){let f=c(t,e,r,s,a,n);if(f!==void 0)return f;i...
  function DB (line 140) | function DB(t,e,r,s){if(Object.is(t,e))return!0;let a=Yd(t),n=Yd(e);if(a...
  function Hae (line 140) | function Hae(){}
  function F4 (line 140) | function F4(t,e){return Uae(t,e,Hae)}
  function qae (line 140) | function qae(t){return GE(t)}
  function Yae (line 140) | function Yae(t){if(typeof t!="object"||t==null)return!1;if(Object.getPro...
  function Jae (line 140) | function Jae(t){if(ME(t))return t;if(Array.isArray(t)||GE(t)||t instance...
  function N4 (line 140) | function N4(t,...e){let r=e.slice(0,-1),s=e[e.length-1],a=t;for(let n=0;...
  function qk (line 140) | function qk(t,e,r,s){if(ME(t)&&(t=Object(t)),e==null||typeof e!="object"...
  function O4 (line 140) | function O4(t,...e){if(t==null)return{};let r=yae(t);for(let s=0;s<e.len...
  function Kd (line 140) | function Kd(t,...e){if(Pae(t))return{};let r={};for(let s=0;s<e.length;s...
  function $ae (line 140) | function $ae(t){return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}
  function bB (line 140) | function bB(t){return $ae(T4(t))}
  function Rze (line 140) | function Rze(t){return!!(sle.default.valid(t)&&t.match(/^[^-]+(-rc\.[0-9...
  function Wk (line 140) | function Wk(t,{one:e,more:r,zero:s=r}){return t===0?s:t===1?e:r}
  function Fze (line 140) | function Fze(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}
  function Nze (line 140) | function Nze(t){}
  function G4 (line 140) | function G4(t){throw new Error(`Assertion failed: Unexpected object '${t...
  function Oze (line 140) | function Oze(t,e){let r=Object.values(t);if(!r.includes(e))throw new nt(...
  function Wl (line 140) | function Wl(t,e){let r=[];for(let s of t){let a=e(s);a!==ole&&r.push(a)}...
  function p0 (line 140) | function p0(t,e){for(let r of t){let s=e(r);if(s!==ale)return s}}
  function L4 (line 140) | function L4(t){return typeof t=="object"&&t!==null}
  function Uu (line 140) | async function Uu(t){let e=await Promise.allSettled(t),r=[];for(let s of...
  function Yk (line 140) | function Yk(t){if(t instanceof Map&&(t=Object.fromEntries(t)),L4(t))for(...
  function Yl (line 140) | function Yl(t,e,r){let s=t.get(e);return typeof s>"u"&&t.set(e,s=r()),s}
  function xB (line 140) | function xB(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=[]),r}
  function bp (line 140) | function bp(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Set),r}
  function q4 (line 140) | function q4(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Map),r}
  function Lze (line 140) | async function Lze(t,e){if(e==null)return await t();try{return await t()...
  function qE (line 140) | async function qE(t,e){try{return await t()}catch(r){throw r.message=e(r...
  function W4 (line 140) | function W4(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}
  function WE (line 140) | async function WE(t){return await new Promise((e,r)=>{let s=[];t.on("err...
  function lle (line 140) | function lle(){let t,e;return{promise:new Promise((s,a)=>{t=s,e=a}),reso...
  function cle (line 140) | function cle(t){return PB(fe.fromPortablePath(t))}
  function ule (line 140) | function ule(path){let physicalPath=fe.fromPortablePath(path),currentCac...
  function Mze (line 140) | function Mze(t){let e=rle.get(t),r=ce.statSync(t);if(e?.mtime===r.mtimeM...
  function Pp (line 140) | function Pp(t,{cachingStrategy:e=2}={}){switch(e){case 0:return ule(t);c...
  function qs (line 140) | function qs(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let s=[];...
  function Uze (line 140) | function Uze(t){return t.length===0?null:t.map(e=>`(${nle.default.makeRe...
  function Vk (line 140) | function Vk(t,{env:e}){let r=/\\?\${(?<variableName>[\d\w_]+)(?<colon>:)...
  function kB (line 140) | function kB(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"...
  function Ale (line 140) | function Ale(t){return typeof t>"u"?t:kB(t)}
  function Y4 (line 140) | function Y4(t){try{return Ale(t)}catch{return null}}
  function _ze (line 140) | function _ze(t){return!!(fe.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}
  function ple (line 140) | function ple(t,...e){let r=c=>({value:c}),s=r(t),a=e.map(c=>r(c)),{value...
  function Hze (line 140) | function Hze(...t){return ple({},...t)}
  function jze (line 140) | function jze(t,e){let r=Object.create(null);for(let s of t){let a=s[e];r...
  function YE (line 140) | function YE(t){return typeof t=="string"?Number.parseInt(t,10):t}
  function Jk (line 140) | function Jk(t,e){let r=Gze.exec(t)?.groups;if(!r)throw new Error(`Couldn...
  method constructor (line 140) | constructor(){super(...arguments);this.chunks=[]}
  method _transform (line 140) | _transform(r,s,a){if(s!=="buffer"||!Buffer.isBuffer(r))throw new Error("...
  method _flush (line 140) | _flush(r){r(null,Buffer.concat(this.chunks))}
  method constructor (line 140) | constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0...
  method set (line 140) | set(e,r){let s=this.deferred.get(e);typeof s>"u"&&this.deferred.set(e,s=...
  method reduce (line 140) | reduce(e,r){let s=this.promises.get(e)??Promise.resolve();this.set(e,()=...
  method wait (line 140) | async wait(){await Promise.all(this.promises.values())}
  method constructor (line 140) | constructor(r=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=r}
  method _transform (line 140) | _transform(r,s,a){if(s!=="buffer"||!Buffer.isBuffer(r))throw new Error("...
  method _flush (line 140) | _flush(r){this.active&&this.ifEmpty.length>0?r(null,this.ifEmpty):r(null)}
  function gle (line 140) | function gle(t){let e=["KiB","MiB","GiB","TiB"],r=e.length;for(;r>1&&t<1...
  function Kk (line 140) | function Kk(t,e){if(Array.isArray(e))return e.length===0?ri(t,"[]",ht.CO...
  function _u (line 140) | function _u(t,e){return[e,t]}
  function zd (line 140) | function zd(t,e,r){return t.get("enableColors")&&r&2&&(e=TB.default.bold...
  function ri (line 140) | function ri(t,e,r){if(!t.get("enableColors"))return e;let s=qze.get(r);i...
  function KE (line 140) | function KE(t,e,r){return t.get("enableHyperlinks")?Wze?`\x1B]8;;${r}\x1...
  function Ht (line 140) | function Ht(t,e,r){if(e===null)return ri(t,"null",ht.NULL);if(Object.has...
  function Z4 (line 140) | function Z4(t,e,r,{separator:s=", "}={}){return[...e].map(a=>Ht(t,a,r))....
  function Xd (line 140) | function Xd(t,e){if(t===null)return null;if(Object.hasOwn(zk,e))return z...
  function Yze (line 140) | function Yze(t,e,[r,s]){return t?Xd(r,s):Ht(e,r,s)}
  function $4 (line 140) | function $4(t){return{Check:ri(t,"\u2713","green"),Cross:ri(t,"\u2718","...
  function Kf (line 140) | function Kf(t,{label:e,value:[r,s]}){return`${Ht(t,e,ht.CODE)}: ${Ht(t,r...
  function $k (line 140) | function $k(t,e,r){let s=[],a=[...e],n=r;for(;a.length>0;){let h=a[0],E=...
  function RB (line 140) | function RB(t,{configuration:e}){let r=e.get("logFilters"),s=new Map,a=n...
  function Vze (line 140) | function Vze(t){return t.reduce((e,r)=>[].concat(e,r),[])}
  function Jze (line 140) | function Jze(t,e){let r=[[]],s=0;for(let a of t)e(a)?(s++,r[s]=[]):r[s]....
  function Kze (line 140) | function Kze(t){return t.code==="ENOENT"}
  method constructor (line 140) | constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),...
  function zze (line 140) | function zze(t,e){return new r3(t,e)}
  function iXe (line 140) | function iXe(t){return t.replace(/\\/g,"/")}
  function sXe (line 140) | function sXe(t,e){return Zze.resolve(t,e)}
  function oXe (line 140) | function oXe(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e===...
  function n3 (line 140) | function n3(t){return t.replace(tXe,"\\$2")}
  function i3 (line 140) | function i3(t){return t.replace(eXe,"\\$2")}
  function Cle (line 140) | function Cle(t){return n3(t).replace(rXe,"//$1").replace(nXe,"/")}
  function wle (line 140) | function wle(t){return i3(t)}
  function Tle (line 140) | function Tle(t,e={}){return!Rle(t,e)}
  function Rle (line 140) | function Rle(t,e={}){return t===""?!1:!!(e.caseSensitiveMatch===!1||t.in...
  function DXe (line 140) | function DXe(t){let e=t.indexOf("{");if(e===-1)return!1;let r=t.indexOf(...
  function bXe (line 140) | function bXe(t){return nQ(t)?t.slice(1):t}
  function PXe (line 140) | function PXe(t){return"!"+t}
  function nQ (line 140) | function nQ(t){return t.startsWith("!")&&t[1]!=="("}
  function Fle (line 140) | function Fle(t){return!nQ(t)}
  function xXe (line 140) | function xXe(t){return t.filter(nQ)}
  function kXe (line 140) | function kXe(t){return t.filter(Fle)}
  function QXe (line 140) | function QXe(t){return t.filter(e=>!a3(e))}
  function TXe (line 140) | function TXe(t){return t.filter(a3)}
  function a3 (line 140) | function a3(t){return t.startsWith("..")||t.startsWith("./..")}
  function RXe (line 140) | function RXe(t){return yXe(t,{flipBackslashes:!1})}
  function FXe (line 140) | function FXe(t){return t.includes(Qle)}
  function Nle (line 140) | function Nle(t){return t.endsWith("/"+Qle)}
  function NXe (line 140) | function NXe(t){let e=mXe.basename(t);return Nle(t)||Tle(e)}
  function OXe (line 140) | function OXe(t){return t.reduce((e,r)=>e.concat(Ole(r)),[])}
  function Ole (line 140) | function Ole(t){let e=o3.braces(t,{expand:!0,nodupes:!0,keepEscaping:!0}...
  function LXe (line 140) | function LXe(t,e){let{parts:r}=o3.scan(t,Object.assign(Object.assign({},...
  function Lle (line 140) | function Lle(t,e){return o3.makeRe(t,e)}
  function MXe (line 140) | function MXe(t,e){return t.map(r=>Lle(r,e))}
  function UXe (line 140) | function UXe(t,e){return e.some(r=>r.test(t))}
  function _Xe (line 140) | function _Xe(t){return t.replace(SXe,"/")}
  function GXe (line 140) | function GXe(){let t=[],e=jXe.call(arguments),r=!1,s=e[e.length-1];s&&!A...
  function _le (line 140) | function _le(t,e){if(Array.isArray(t))for(let r=0,s=t.length;r<s;r++)t[r...
  function WXe (line 140) | function WXe(t){let e=qXe(t);return t.forEach(r=>{r.once("error",s=>e.em...
  function Gle (line 140) | function Gle(t){t.forEach(e=>e.emit("close"))}
  function YXe (line 140) | function YXe(t){return typeof t=="string"}
  function VXe (line 140) | function VXe(t){return t===""}
  function tZe (line 140) | function tZe(t,e){let r=Yle(t,e),s=Yle(e.ignore,e),a=Vle(r),n=Jle(r,s),c...
  function Yle (line 140) | function Yle(t,e){let r=t;return e.braceExpansion&&(r=Hu.pattern.expandP...
  function l3 (line 140) | function l3(t,e,r){let s=[],a=Hu.pattern.getPatternsOutsideCurrentDirect...
  function Vle (line 140) | function Vle(t){return Hu.pattern.getPositivePatterns(t)}
  function Jle (line 140) | function Jle(t,e){return Hu.pattern.getNegativePatterns(t).concat(e).map...
  function c3 (line 140) | function c3(t){let e={};return t.reduce((r,s)=>{let a=Hu.pattern.getBase...
  function u3 (line 140) | function u3(t,e,r){return Object.keys(t).map(s=>f3(s,t[s],e,r))}
  function f3 (line 140) | function f3(t,e,r,s){return{dynamic:s,positive:e,negative:r,base:t,patte...
  function rZe (line 140) | function rZe(t,e,r){e.fs.lstat(t,(s,a)=>{if(s!==null){zle(r,s);return}if...
  function zle (line 140) | function zle(t,e){t(e)}
  function A3 (line 140) | function A3(t,e){t(null,e)}
  function nZe (line 140) | function nZe(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.fol...
  function iZe (line 140) | function iZe(t){return t===void 0?h0.FILE_SYSTEM_ADAPTER:Object.assign(O...
  method constructor (line 140) | constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue...
  method _getValue (line 140) | _getValue(e,r){return e??r}
  function aZe (line 140) | function aZe(t,e,r){if(typeof e=="function"){tce.read(t,d3(),e);return}t...
  function lZe (line 140) | function lZe(t,e){let r=d3(e);return oZe.read(t,r)}
  function d3 (line 140) | function d3(t={}){return t instanceof g3.default?t:new g3.default(t)}
  function uZe (line 140) | function uZe(t,e){let r,s,a,n=!0;Array.isArray(t)?(r=[],s=t.length):(a=O...
  method constructor (line 140) | constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),...
  function gZe (line 140) | function gZe(t,e){return new y3(t,e)}
  function mZe (line 140) | function mZe(t,e,r){return t.endsWith(r)?t+e:t+r+e}
  function IZe (line 140) | function IZe(t,e,r){if(!e.stats&&EZe.IS_SUPPORT_READDIR_WITH_FILE_TYPES)...
  function pce (line 140) | function pce(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(s,a)=>{if(s!==nul...
  function CZe (line 140) | function CZe(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);re...
  function hce (line 140) | function hce(t,e,r){e.fs.readdir(t,(s,a)=>{if(s!==null){pQ(r,s);return}l...
  function pQ (line 140) | function pQ(t,e){t(e)}
  function C3 (line 140) | function C3(t,e){t(null,e)}
  function vZe (line 140) | function vZe(t,e){return!e.stats&&BZe.IS_SUPPORT_READDIR_WITH_FILE_TYPES...
  function yce (line 140) | function yce(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(s=>{...
  function Ece (line 140) | function Ece(t,e){return e.fs.readdirSync(t).map(s=>{let a=mce.joinPathS...
  function SZe (line 140) | function SZe(t){return t===void 0?y0.FILE_SYSTEM_ADAPTER:Object.assign(O...
  method constructor (line 140) | constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValu...
  method _getValue (line 140) | _getValue(e,r){return e??r}
  function kZe (line 140) | function kZe(t,e,r){if(typeof e=="function"){Bce.read(t,S3(),e);return}B...
  function QZe (line 140) | function QZe(t,e){let r=S3(e);return xZe.read(t,r)}
  function S3 (line 140) | function S3(t={}){return t instanceof v3.default?t:new v3.default(t)}
  function TZe (line 140) | function TZe(t){var e=new t,r=e;function s(){var n=e;return n.next?e=n.n...
  function Dce (line 140) | function Dce(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),!(r>=1))th...
  function kc (line 140) | function kc(){}
  function FZe (line 140) | function FZe(){this.value=null,this.callback=kc,this.next=null,this.rele...
  function NZe (line 140) | function NZe(t,e,r){typeof t=="function"&&(r=e,e=t,t=null);function s(E,...
  function OZe (line 140) | function OZe(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}
  function LZe (line 140) | function LZe(t,e){return t===null||t(e)}
  function MZe (line 140) | function MZe(t,e){return t.split(/[/\\]/).join(e)}
  function UZe (line 140) | function UZe(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}
  method constructor (line 140) | constructor(e,r){this._root=e,this._settings=r,this._root=_Ze.replacePat...
  method constructor (line 140) | constructor(e,r){super(e,r),this._settings=r,this._scandir=jZe.scandir,t...
  method read (line 140) | read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()...
  method isDestroyed (line 140) | get isDestroyed(){return this._isDestroyed}
  method destroy (line 140) | destroy(){if(this._isDestroyed)throw new Error("The reader is already de...
  method onEntry (line 140) | onEntry(e){this._emitter.on("entry",e)}
  method onError (line 140) | onError(e){this._emitter.once("error",e)}
  method onEnd (line 140) | onEnd(e){this._emitter.once("end",e)}
  method _pushToQueue (line 140) | _pushToQueue(e,r){let s={directory:e,base:r};this._queue.push(s,a=>{a!==...
  method _worker (line 140) | _worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,...
  method _handleError (line 140) | _handleError(e){this._isDestroyed||!dQ.isFatalError(this._settings,e)||(...
  method _handleEntry (line 140) | _handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let s=...
  method _emitEntry (line 140) | _emitEntry(e){this._emitter.emit("entry",e)}
  method constructor (line 140) | constructor(e,r){this._root=e,this._settings=r,this._reader=new WZe.defa...
  method read (line 140) | read(e){this._reader.onError(r=>{YZe(e,r)}),this._reader.onEntry(r=>{thi...
  function YZe (line 140) | function YZe(t,e){t(e)}
  function VZe (line 140) | function VZe(t,e){t(null,e)}
  method constructor (line 140) | constructor(e,r){this._root=e,this._settings=r,this._reader=new KZe.defa...
  method read (line 140) | read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),th...
  method constructor (line 140) | constructor(){super(...arguments),this._scandir=zZe.scandirSync,this._st...
  method read (line 140) | read(){return this._pushToQueue(this._root,this._settings.basePath),this...
  method _pushToQueue (line 140) | _pushToQueue(e,r){this._queue.add({directory:e,base:r})}
  method _handleQueue (line 140) | _handleQueue(){for(let e of this._queue.values())this._handleDirectory(e...
  method _handleDirectory (line 140) | _handleDirectory(e,r){try{let s=this._scandir(e,this._settings.fsScandir...
  method _handleError (line 140) | _handleError(e){if(mQ.isFatalError(this._settings,e))throw e}
  method _handleEntry (line 140) | _handleEntry(e,r){let s=e.path;r!==void 0&&(e.path=mQ.joinPathSegments(r...
  method _pushToStorage (line 140) | _pushToStorage(e){this._storage.push(e)}
  method constructor (line 140) | constructor(e,r){this._root=e,this._settings=r,this._reader=new ZZe.defa...
  method read (line 140) | read(){return this._reader.read()}
  method constructor (line 140) | constructor(e={}){this._options=e,this.basePath=this._getValue(this._opt...
  method _getValue (line 140) | _getValue(e,r){return e??r}
  function n$e (line 140) | function n$e(t,e,r){if(typeof e=="function"){new Rce.default(t,yQ()).rea...
  function i$e (line 140) | function i$e(t,e){let r=yQ(e);return new r$e.default(t,r).read()}
  function s$e (line 140) | function s$e(t,e){let r=yQ(e);return new t$e.default(t,r).read()}
  function yQ (line 140) | function yQ(t={}){return t instanceof G3.default?t:new G3.default(t)}
  method constructor (line 140) | constructor(e){this._settings=e,this._fsStatSettings=new a$e.Settings({f...
  method _getFullEntryPath (line 140) | _getFullEntryPath(e){return o$e.resolve(this._settings.cwd,e)}
  method _makeEntry (line 140) | _makeEntry(e,r){let s={name:r,path:r,dirent:Fce.fs.createDirentFromStats...
  method _isFatalError (line 140) | _isFatalError(e){return!Fce.errno.isEnoentCodeError(e)&&!this._settings....
  method constructor (line 140) | constructor(){super(...arguments),this._walkStream=u$e.walkStream,this._...
  method dynamic (line 140) | dynamic(e,r){return this._walkStream(e,r)}
  method static (line 140) | static(e,r){let s=e.map(this._getFullEntryPath,this),a=new l$e.PassThrou...
  method _getEntry (line 140) | _getEntry(e,r,s){return this._getStat(e).then(a=>this._makeEntry(a,r)).c...
  method _getStat (line 140) | _getStat(e){return new Promise((r,s)=>{this._stat(e,this._fsStatSettings...
  method constructor (line 140) | constructor(){super(...arguments),this._walkAsync=A$e.walk,this._readerS...
  method dynamic (line 140) | dynamic(e,r){return new Promise((s,a)=>{this._walkAsync(e,r,(n,c)=>{n===...
  method static (line 140) | async static(e,r){let s=[],a=this._readerStream.static(e,r);return new P...
  method constructor (line 140) | constructor(e,r,s){this._patterns=e,this._settings=r,this._micromatchOpt...
  method _fillStorage (line 140) | _fillStorage(){for(let e of this._patterns){let r=this._getPatternSegmen...
  method _getPatternSegments (line 140) | _getPatternSegments(e){return NB.pattern.getPatternParts(e,this._microma...
  method _splitSegmentsIntoSections (line 140) | _splitSegmentsIntoSections(e){return NB.array.splitWhen(e,r=>r.dynamic&&...
  method match (line 140) | match(e){let r=e.split("/"),s=r.length,a=this._storage.filter(n=>!n.comp...
  method constructor (line 140) | constructor(e,r){this._settings=e,this._micromatchOptions=r}
  method getFilter (line 140) | getFilter(e,r,s){let a=this._getMatcher(r),n=this._getNegativePatternsRe...
  method _getMatcher (line 140) | _getMatcher(e){return new d$e.default(e,this._settings,this._micromatchO...
  method _getNegativePatternsRe (line 140) | _getNegativePatternsRe(e){let r=e.filter(CQ.pattern.isAffectDepthOfReadi...
  method _filter (line 140) | _filter(e,r,s,a){if(this._isSkippedByDeep(e,r.path)||this._isSkippedSymb...
  method _isSkippedByDeep (line 140) | _isSkippedByDeep(e,r){return this._settings.deep===1/0?!1:this._getEntry...
  method _getEntryLevel (line 140) | _getEntryLevel(e,r){let s=r.split("/").length;if(e==="")return s;let a=e...
  method _isSkippedSymbolicLink (line 140) | _isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.d...
  method _isSkippedByPositivePatterns (line 140) | _isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!...
  method _isSkippedByNegativePatterns (line 140) | _isSkippedByNegativePatterns(e,r){return!CQ.pattern.matchAny(e,r)}
  method constructor (line 140) | constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=n...
  method getFilter (line 140) | getFilter(e,r){let s=$d.pattern.convertPatternsToRe(e,this._micromatchOp...
  method _filter (line 140) | _filter(e,r,s){let a=$d.path.removeLeadingDotSegment(e.path);if(this._se...
  method _isDuplicateEntry (line 140) | _isDuplicateEntry(e){return this.index.has(e)}
  method _createIndexRecord (line 140) | _createIndexRecord(e){this.index.set(e,void 0)}
  method _onlyFileFilter (line 140) | _onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}
  method _onlyDirectoryFilter (line 140) | _onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent...
  method _isSkippedByAbsoluteNegativePatterns (line 140) | _isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)re...
  method _isMatchToPatterns (line 140) | _isMatchToPatterns(e,r,s){let a=$d.pattern.matchAny(e,r);return!a&&s?$d....
  method constructor (line 140) | constructor(e){this._settings=e}
  method getFilter (line 140) | getFilter(){return e=>this._isNonFatalError(e)}
  method _isNonFatalError (line 140) | _isNonFatalError(e){return m$e.errno.isEnoentCodeError(e)||this._setting...
  method constructor (line 140) | constructor(e){this._settings=e}
  method getTransformer (line 140) | getTransformer(){return e=>this._transform(e)}
  method _transform (line 140) | _transform(e){let r=e.path;return this._settings.absolute&&(r=Hce.path.m...
  method constructor (line 140) | constructor(e){this._settings=e,this.errorFilter=new C$e.default(this._s...
  method _getRootDirectory (line 140) | _getRootDirectory(e){return y$e.resolve(this._settings.cwd,e.base)}
  method _getReaderOptions (line 140) | _getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,path...
  method _getMicromatchOptions (line 140) | _getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._se...
  method constructor (line 140) | constructor(){super(...arguments),this._reader=new B$e.default(this._set...
  method read (line 140) | async read(e){let r=this._getRootDirectory(e),s=this._getReaderOptions(e...
  method api (line 140) | api(e,r,s){return r.dynamic?this._reader.dynamic(e,s):this._reader.stati...
  method constructor (line 140) | constructor(){super(...arguments),this._reader=new D$e.default(this._set...
  method read (line 140) | read(e){let r=this._getRootDirectory(e),s=this._getReaderOptions(e),a=th...
  method api (line 140) | api(e,r,s){return r.dynamic?this._reader.dynamic(e,s):this._reader.stati...
  method constructor (line 140) | constructor(){super(...arguments),this._walkSync=x$e.walkSync,this._stat...
  method dynamic (line 140) | dynamic(e,r){return this._walkSync(e,r)}
  method static (line 140) | static(e,r){let s=[];for(let a of e){let n=this._getFullEntryPath(a),c=t...
  method _getEntry (line 140) | _getEntry(e,r,s){try{let a=this._getStat(e);return this._makeEntry(a,r)}...
  method _getStat (line 140) | _getStat(e){return this._statSync(e,this._fsStatSettings)}
  method constructor (line 140) | constructor(){super(...arguments),this._reader=new Q$e.default(this._set...
  method read (line 140) | read(e){let r=this._getRootDirectory(e),s=this._getReaderOptions(e);retu...
  method api (line 140) | api(e,r,s){return r.dynamic?this._reader.dynamic(e,s):this._reader.stati...
  method constructor (line 140) | constructor(e={}){this._options=e,this.absolute=this._getValue(this._opt...
  method _getValue (line 140) | _getValue(e,r){return e===void 0?r:e}
  method _getFileSystemMethods (line 140) | _getFileSystemMethods(e={}){return Object.assign(Object.assign({},eI.DEF...
  function C8 (line 140) | async function C8(t,e){ju(t);let r=w8(t,N$e.default,e),s=await Promise.a...
  function e (line 140) | function e(h,E){ju(h);let C=w8(h,L$e.default,E);return Qc.array.flatten(C)}
    method constructor (line 226) | constructor(s){super(s)}
    method submit (line 226) | async submit(){this.value=await t.call(this,this.values,this.state),su...
    method create (line 226) | static create(s){return pme(s)}
  function r (line 140) | function r(h,E){ju(h);let C=w8(h,O$e.default,E);return Qc.stream.merge(C)}
    method constructor (line 226) | constructor(a){super({...a,choices:e})}
    method create (line 226) | static create(a){return gme(a)}
  function s (line 140) | function s(h,E){ju(h);let C=[].concat(h),S=new I8.default(E);return Jce....
  function a (line 140) | function a(h,E){ju(h);let C=new I8.default(E);return Qc.pattern.isDynami...
  function n (line 140) | function n(h){return ju(h),Qc.path.escape(h)}
  function c (line 140) | function c(h){return ju(h),Qc.path.convertPathToPattern(h)}
  function E (line 140) | function E(S){return ju(S),Qc.path.escapePosixPath(S)}
  function C (line 140) | function C(S){return ju(S),Qc.path.convertPosixPathToPattern(S)}
  function E (line 140) | function E(S){return ju(S),Qc.path.escapeWindowsPath(S)}
  function C (line 140) | function C(S){return ju(S),Qc.path.convertWindowsPathToPattern(S)}
  function w8 (line 140) | function w8(t,e,r){let s=[].concat(t),a=new I8.default(r),n=Jce.generate...
  function ju (line 140) | function ju(t){if(![].concat(t).every(s=>Qc.string.isString(s)&&!Qc.stri...
  function us (line 140) | function us(...t){let e=(0,vQ.createHash)("sha512"),r="";for(let s of t)...
  function SQ (line 140) | async function SQ(t,{baseFs:e,algorithm:r}={baseFs:ce,algorithm:"sha512"...
  function DQ (line 140) | async function DQ(t,{cwd:e}){let s=(await(0,B8.default)(t,{cwd:fe.fromPo...
  function Da (line 140) | function Da(t,e){if(t?.startsWith("@"))throw new Error("Invalid scope: d...
  function On (line 140) | function On(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,...
  function Ws (line 140) | function Ws(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,...
  function _$e (line 140) | function _$e(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}
  function bQ (line 140) | function bQ(t){return{identHash:t.identHash,scope:t.scope,name:t.name,lo...
  function S8 (line 140) | function S8(t){return{identHash:t.identHash,scope:t.scope,name:t.name,de...
  function H$e (line 140) | function H$e(t){return{identHash:t.identHash,scope:t.scope,name:t.name,l...
  function D8 (line 140) | function D8(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,...
  function LB (line 140) | function LB(t){return D8(t,t)}
  function b8 (line 140) | function b8(t,e){if(e.includes("#"))throw new Error("Invalid entropy");r...
  function P8 (line 140) | function P8(t,e){if(e.includes("#"))throw new Error("Invalid entropy");r...
  function kp (line 140) | function kp(t){return t.range.startsWith(OB)}
  function Gu (line 140) | function Gu(t){return t.reference.startsWith(OB)}
  function MB (line 140) | function MB(t){if(!kp(t))throw new Error("Not a virtual descriptor");ret...
  function rI (line 140) | function rI(t){if(!Gu(t))throw new Error("Not a virtual descriptor");ret...
  function j$e (line 140) | function j$e(t){return kp(t)?On(t,t.range.replace(PQ,"")):t}
  function G$e (line 140) | function G$e(t){return Gu(t)?Ws(t,t.reference.replace(PQ,"")):t}
  function q$e (line 140) | function q$e(t,e){return t.range.includes("::")?t:On(t,`${t.range}::${tI...
  function W$e (line 140) | function W$e(t,e){return t.reference.includes("::")?t:Ws(t,`${t.referenc...
  function UB (line 140) | function UB(t,e){return t.identHash===e.identHash}
  function eue (line 140) | function eue(t,e){return t.descriptorHash===e.descriptorHash}
  function _B (line 140) | function _B(t,e){return t.locatorHash===e.locatorHash}
  function Y$e (line 140) | function Y$e(t,e){if(!Gu(t))throw new Error("Invalid package type");if(!...
  function Sa (line 140) | function Sa(t){let e=tue(t);if(!e)throw new Error(`Invalid ident (${t})`...
  function tue (line 140) | function tue(t){let e=t.match(V$e);if(!e)return null;let[,r,s]=e;return ...
  function C0 (line 140) | function C0(t,e=!1){let r=HB(t,e);if(!r)throw new Error(`Invalid descrip...
  function HB (line 140) | function HB(t,e=!1){let r=e?t.match(J$e):t.match(K$e);if(!r)return null;...
  function Qp (line 140) | function Qp(t,e=!1){let r=xQ(t,e);if(!r)throw new Error(`Invalid locator...
  function xQ (line 140) | function xQ(t,e=!1){let r=e?t.match(z$e):t.match(X$e);if(!r)return null;...
  function em (line 140) | function em(t,e){let r=t.match(Z$e);if(r===null)throw new Error(`Invalid...
  function $$e (line 140) | function $$e(t,e){try{return em(t,e)}catch{return null}}
  function eet (line 140) | function eet(t,{protocol:e}){let{selector:r,params:s}=em(t,{requireProto...
  function zce (line 140) | function zce(t){return t=t.replaceAll("%","%25"),t=t.replaceAll(":","%3A...
  function tet (line 140) | function tet(t){return t===null?!1:Object.entries(t).length>0}
  function kQ (line 140) | function kQ({protocol:t,source:e,selector:r,params:s}){let a="";return t...
  function ret (line 140) | function ret(t){let{params:e,protocol:r,source:s,selector:a}=em(t);for(l...
  function un (line 140) | function un(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}
  function net (line 140) | function net(t,e){return t.scope?Da(e,`${t.scope}__${t.name}`):Da(e,t.na...
  function iet (line 140) | function iet(t,e){if(t.scope!==e)return t;let r=t.name.indexOf("__");if(...
  function al (line 140) | function al(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.na...
  function ll (line 140) | function ll(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${...
  function v8 (line 140) | function v8(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}
  function nI (line 140) | function nI(t){let{protocol:e,selector:r}=em(t.reference),s=e!==null?e.r...
  function $i (line 140) | function $i(t,e){return e.scope?`${Ht(t,`@${e.scope}/`,ht.SCOPE)}${Ht(t,...
  function QQ (line 140) | function QQ(t){if(t.startsWith(OB)){let e=QQ(t.substring(t.indexOf("#")+...
  function iI (line 140) | function iI(t,e){return`${Ht(t,QQ(e),ht.RANGE)}`}
  function ni (line 140) | function ni(t,e){return`${$i(t,e)}${Ht(t,"@",ht.RANGE)}${iI(t,e.range)}`}
  function jB (line 140) | function jB(t,e){return`${Ht(t,QQ(e),ht.REFERENCE)}`}
  function Yr (line 140) | function Yr(t,e){return`${$i(t,e)}${Ht(t,"@",ht.REFERENCE)}${jB(t,e.refe...
  function e3 (line 140) | function e3(t){return`${un(t)}@${QQ(t.reference)}`}
  function sI (line 140) | function sI(t){return qs(t,[e=>un(e),e=>e.range])}
  function GB (line 140) | function GB(t,e){return $i(t,e.anchoredLocator)}
  function FB (line 140) | function FB(t,e,r){let s=kp(e)?MB(e):e;return r===null?`${ni(t,s)} \u219...
  function t3 (line 140) | function t3(t,e,r){return r===null?`${Yr(t,e)}`:`${Yr(t,e)} (via ${iI(t,...
  function x8 (line 140) | function x8(t){return`node_modules/${un(t)}`}
  function TQ (line 140) | function TQ(t,e){return t.conditions?U$e(t.conditions,r=>{let[,s,a]=r.ma...
  function qB (line 140) | function qB(t){let e=new Set;if("children"in t)e.add(t);else for(let r o...
  method supportsDescriptor (line 140) | supportsDescriptor(e,r){return!!(e.range.startsWith(t.protocol)||r.proje...
  method supportsLocator (line 140) | supportsLocator(e,r){return!!e.reference.startsWith(t.protocol)}
  method shouldPersistResolution (line 140) | shouldPersistResolution(e,r){return!1}
  method bindDescriptor (line 140) | bindDescriptor(e,r,s){return e}
  method getResolutionDependencies (line 140) | getResolutionDependencies(e,r){return{}}
  method getCandidates (line 140) | async getCandidates(e,r,s){return[s.project.getWorkspaceByDescriptor(e)....
  method getSatisfying (line 140) | async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);retu...
  method resolve (line 140) | async resolve(e,r){let s=r.project.getWorkspaceByCwd(e.reference.slice(t...
  function Zf (line 140) | function Zf(t,e,r=!1){if(!t)return!1;let s=`${e}${r}`,a=iue.get(s);if(ty...
  function cl (line 140) | function cl(t){if(t.indexOf(":")!==-1)return null;let e=sue.get(t);if(ty...
  function cet (line 140) | function cet(t){let e=aet.exec(t);return e?e[1]:null}
  function oue (line 140) | function oue(t){if(t.semver===Tp.default.Comparator.ANY)return{gt:null,l...
  function k8 (line 140) | function k8(t){if(t.length===0)return null;let e=null,r=null;for(let s o...
  function aue (line 140) | function aue(t){if(t.gt&&t.lt){if(t.gt[0]===">="&&t.lt[0]==="<="&&t.gt[1...
  function Q8 (line 140) | function Q8(t){let e=t.map(uet).map(s=>cl(s).set.map(a=>a.map(n=>oue(n))...
  function uet (line 140) | function uet(t){let e=t.split("||");if(e.length>1){let r=new Set;for(let...
  function cue (line 140) | function cue(t){let e=t.match(/^[ \t]+/m);return e?e[0]:"  "}
  function uue (line 140) | function uue(t){return t.charCodeAt(0)===65279?t.slice(1):t}
  function ba (line 140) | function ba(t){return t.replace(/\\/g,"/")}
  function RQ (line 140) | function RQ(t,{yamlCompatibilityMode:e}){return e?Y4(t):typeof t>"u"||ty...
  function fue (line 140) | function fue(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let s...
  function T8 (line 140) | function T8(t,e){return e.length===1?fue(t,e[0]):`(${e.map(r=>fue(t,r))....
  method constructor (line 140) | constructor(){this.indent="  ";this.name=null;this.version=null;this.os=...
  method tryFind (line 140) | static async tryFind(e,{baseFs:r=new Yn}={}){let s=J.join(e,"package.jso...
  method find (line 140) | static async find(e,{baseFs:r}={}){let s=await t.tryFind(e,{baseFs:r});i...
  method fromFile (line 140) | static async fromFile(e,{baseFs:r=new Yn}={}){let s=new t;return await s...
  method fromText (line 140) | static fromText(e){let r=new t;return r.loadFromText(e),r}
  method loadFromText (line 140) | loadFromText(e){let r;try{r=JSON.parse(uue(e)||"{}")}catch(s){throw s.me...
  method loadFile (line 140) | async loadFile(e,{baseFs:r=new Yn}){let s=await r.readFilePromise(e,"utf...
  method load (line 140) | load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)...
  method getForScope (line 140) | getForScope(e){switch(e){case"dependencies":return this.dependencies;cas...
  method hasConsumerDependency (line 140) | hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||th...
  method hasHardDependency (line 140) | hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.d...
  method hasSoftDependency (line 140) | hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}
  method hasDependency (line 140) | hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDepende...
  method getConditions (line 140) | getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(T8("os...
  method ensureDependencyMeta (line 140) | ensureDependencyMeta(e){if(e.range!=="unknown"&&!Aue.default.valid(e.ran...
  method ensurePeerDependencyMeta (line 140) | ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Inva...
  method setRawField (line 140) | setRawField(e,r,{after:s=[]}={}){let a=new Set(s.filter(n=>Object.hasOwn...
  method exportTo (line 140) | exportTo(e,{compatibilityMode:r=!0}={}){if(Object.assign(e,this.raw),thi...
  function Aet (line 140) | function Aet(t){return typeof t.reportCode<"u"}
  method constructor (line 140) | constructor(r,s,a){super(s);this.reportExtra=a;this.reportCode=r}
  method constructor (line 140) | constructor(){this.cacheHits=new Set;this.cacheMisses=new Set;this.repor...
  method getRecommendedLength (line 140) | getRecommendedLength(){return 180}
  method reportCacheHit (line 140) | reportCacheHit(e){this.cacheHits.add(e.locatorHash)}
  method reportCacheMiss (line 140) | reportCacheMiss(e,r){this.cacheMisses.add(e.locatorHash)}
  method progressViaCounter (line 140) | static progressViaCounter(e){let r=0,s,a=new Promise(p=>{s=p}),n=p=>{let...
  method progressViaTitle (line 140) | static progressViaTitle(){let e,r,s=new Promise(c=>{r=c}),a=Q4(c=>{let f...
  method startProgressPromise (line 140) | async startProgressPromise(e,r){let s=this.reportProgress(e);try{return ...
  method startProgressSync (line 140) | startProgressSync(e,r){let s=this.reportProgress(e);try{return r(e)}fina...
  method reportInfoOnce (line 140) | reportInfoOnce(e,r,s){let a=s&&s.key?s.key:r;this.reportedInfos.has(a)||...
  method reportWarningOnce (line 140) | reportWarningOnce(e,r,s){let a=s&&s.key?s.key:r;this.reportedWarnings.ha...
  method reportErrorOnce (line 140) | reportErrorOnce(e,r,s){let a=s&&s.key?s.key:r;this.reportedErrors.has(a)...
  method reportExceptionOnce (line 140) | reportExceptionOnce(e){Aet(e)?this.reportErrorOnce(e.reportCode,e.messag...
  method createStreamReporter (line 140) | createStreamReporter(e=null){let r=new pue.PassThrough,s=new hue.StringD...
  method constructor (line 141) | constructor(e){this.fetchers=e}
  method supports (line 141) | supports(e,r){return!!this.tryFetcher(e,r)}
  method getLocalPath (line 141) | getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}
  method fetch (line 141) | async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}
  method tryFetcher (line 141) | tryFetcher(e,r){let s=this.fetchers.find(a=>a.supports(e,r));return s||n...
  method getFetcher (line 141) | getFetcher(e,r){let s=this.fetchers.find(a=>a.supports(e,r));if(!s)throw...
  method constructor (line 141) | constructor(e){this.resolvers=e.filter(r=>r)}
  method supportsDescriptor (line 141) | supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}
  method supportsLocator (line 141) | supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}
  method shouldPersistResolution (line 141) | shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shoul...
  method bindDescriptor (line 141) | bindDescriptor(e,r,s){return this.getResolverByDescriptor(e,s).bindDescr...
  method getResolutionDependencies (line 141) | getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r)....
  method getCandidates (line 141) | async getCandidates(e,r,s){return await this.getResolverByDescriptor(e,s...
  method getSatisfying (line 141) | async getSatisfying(e,r,s,a){return this.getResolverByDescriptor(e,a).ge...
  method resolve (line 141) | async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e...
  method tryResolverByDescriptor (line 141) | tryResolverByDescriptor(e,r){let s=this.resolvers.find(a=>a.supportsDesc...
  method getResolverByDescriptor (line 141) | getResolverByDescriptor(e,r){let s=this.resolvers.find(a=>a.supportsDesc...
  method tryResolverByLocator (line 141) | tryResolverByLocator(e,r){let s=this.resolvers.find(a=>a.supportsLocator...
  method getResolverByLocator (line 141) | getResolverByLocator(e,r){let s=this.resolvers.find(a=>a.supportsLocator...
  method supports (line 141) | supports(e){return!!e.reference.startsWith("virtual:")}
  method getLocalPath (line 141) | getLocalPath(e,r){let s=e.reference.indexOf("#");if(s===-1)throw new Err...
  method fetch (line 141) | async fetch(e,r){let s=e.reference.indexOf("#");if(s===-1)throw new Erro...
  method getLocatorFilename (line 141) | getLocatorFilename(e){return nI(e)}
  method ensureVirtualLink (line 141) | async ensureVirtualLink(e,r,s){let a=r.packageFs.getRealPath(),n=s.proje...
  method isVirtualDescriptor (line 141) | static isVirtualDescriptor(e){return!!e.range.startsWith(t.protocol)}
  method isVirtualLocator (line 141) | static isVirtualLocator(e){return!!e.reference.startsWith(t.protocol)}
  method supportsDescriptor (line 141) | supportsDescriptor(e,r){return t.isVirtualDescriptor(e)}
  method supportsLocator (line 141) | supportsLocator(e,r){return t.isVirtualLocator(e)}
  method shouldPersistResolution (line 141) | shouldPersistResolution(e,r){return!1}
  method bindDescriptor (line 141) | bindDescriptor(e,r,s){throw new Error('Assertion failed: calling "bindDe...
  method getResolutionDependencies (line 141) | getResolutionDependencies(e,r){throw new Error('Assertion failed: callin...
  method getCandidates (line 141) | async getCandidates(e,r,s){throw new Error('Assertion failed: calling "g...
  method getSatisfying (line 141) | async getSatisfying(e,r,s,a){throw new Error('Assertion failed: calling ...
  method resolve (line 141) | async resolve(e,r){throw new Error('Assertion failed: calling "resolve" ...
  method supports (line 141) | supports(e){return!!e.reference.startsWith(Ei.protocol)}
  method getLocalPath (line 141) | getLocalPath(e,r){return this.getWorkspace(e,r).cwd}
  method fetch (line 141) | async fetch(e,r){let s=this.getWorkspace(e,r).cwd;return{packageFs:new S...
  method getWorkspace (line 141) | getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(E...
  function WB (line 141) | function WB(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}
  function due (line 141) | function due(t){return typeof t>"u"?3:WB(t)?0:Array.isArray(t)?1:2}
  function U8 (line 141) | function U8(t,e){return Object.hasOwn(t,e)}
  function het (line 141) | function het(t){return WB(t)&&U8(t,"onConflict")&&typeof t.onConflict=="...
  function get (line 141) | function get(t){if(typeof t>"u")return{onConflict:"default",value:t};if(...
  function mue (line 141) | function mue(t,e){let r=WB(t)&&U8(t,e)?t[e]:void 0;return get(r)}
  function uI (line 141) | function uI(t,e){return[t,e,yue]}
  function _8 (line 141) | function _8(t){return Array.isArray(t)?t[2]===yue:!1}
  function L8 (line 141) | function L8(t,e){if(WB(t)){let r={};for(let s of Object.keys(t))r[s]=L8(...
  function M8 (line 141) | function M8(t,e,r,s,a){let n,c=[],f=a,p=0;for(let E=a-1;E>=s;--E){let[C,...
  function Eue (line 141) | function Eue(t){return M8(t.map(([e,r])=>[e,{".":r}]),[],".",0,t.length)}
  function YB (line 141) | function YB(t){return _8(t)?t[1]:t}
  function NQ (line 141) | function NQ(t){let e=_8(t)?t[1]:t;if(Array.isArray(e))return e.map(r=>NQ...
  function H8 (line 141) | function H8(t){return _8(t)?t[0]:null}
  function G8 (line 141) | function G8(){if(process.platform==="win32"){let t=fe.toPortablePath(pro...
  function fI (line 141) | function fI(){return fe.toPortablePath((0,j8.homedir)()||"/usr/local/sha...
  function q8 (line 141) | function q8(t,e){let r=J.relative(e,t);return r&&!r.startsWith("..")&&!J...
  method constructor (line 141) | constructor(e){let{proxy:r,proxyRequestOptions:s,...a}=e;super(a),this.p...
  method createConnection (line 141) | createConnection(e,r){let s={...this.proxyRequestOptions,method:"CONNECT...
  method constructor (line 141) | constructor(e){let{proxy:r,proxyRequestOptions:s,...a}=e;super(a),this.p...
  method createConnection (line 141) | createConnection(e,r){let s={...this.proxyRequestOptions,method:"CONNECT...
  function met (line 141) | function met(t){return bue.includes(t)}
  function Eet (line 141) | function Eet(t){return yet.includes(t)}
  function Cet (line 141) | function Cet(t){return Iet.includes(t)}
  function AI (line 141) | function AI(t){return e=>typeof e===t}
  function be (line 141) | function be(t){if(t===null)return"null";switch(typeof t){case"undefined"...
  method constructor (line 141) | constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}
  method isCanceled (line 141) | get isCanceled(){return!0}
  method fn (line 141) | static fn(e){return(...r)=>new t((s,a,n)=>{r.push(n),e(...r).then(s,a)})}
  method constructor (line 141) | constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCancel...
  method then (line 141) | then(e,r){return this._promise.then(e,r)}
  method catch (line 141) | catch(e){return this._promise.catch(e)}
  method finally (line 141) | finally(e){return this._promise.finally(e)}
  method cancel (line 141) | cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandl...
  method isCanceled (line 141) | get isCanceled(){return this._isCanceled}
  function xet (line 141) | function xet(t){return t.encrypted}
  method constructor (line 141) | constructor({cache:e=new Map,maxTtl:r=1/0,fallbackDuration:s=3600,errorT...
  method servers (line 141) | set servers(e){this.clear(),this._resolver.setServers(e)}
  method servers (line 141) | get servers(){return this._resolver.getServers()}
  method lookup (line 141) | lookup(e,r,s){if(typeof r=="function"?(s=r,r={}):typeof r=="number"&&(r=...
  method lookupAsync (line 141) | async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let s=await...
  method query (line 141) | async query(e){let r=await this._cache.get(e);if(!r){let s=this._pending...
  method _resolve (line 141) | async _resolve(e){let r=async h=>{try{return await h}catch(E){if(E.code=...
  method _lookup (line 141) | async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),ca...
  method _set (line 141) | async _set(e,r,s){if(this.maxTtl>0&&s>0){s=Math.min(s,this.maxTtl)*1e3,r...
  method queryAndCache (line 141) | async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._...
  method _tick (line 141) | _tick(e){let r=this._nextRemovalTime;(!r||e<r)&&(clearTimeout(this._remo...
  method install (line 141) | install(e){if(Oue(e),pI in e)throw new Error("CacheableLookup has been a...
  method uninstall (line 141) | uninstall(e){if(Oue(e),e[pI]){if(e[iH]!==this)throw new Error("The agent...
  method updateInterfaceInfo (line 141) | updateInterfaceInfo(){let{_iface:e}=this;this._iface=Lue(),(e.has4&&!thi...
  method clear (line 141) | clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}
  function que (line 141) | function que(t,e){if(t&&e)return que(t)(e);if(typeof t!="function")throw...
  function jQ (line 141) | function jQ(t){var e=function(){return e.called?e.value:(e.called=!0,e.v...
  function Jue (line 141) | function Jue(t){var e=function(){if(e.called)throw new Error(e.onceError...
  method constructor (line 141) | constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}
  function WQ (line 141) | async function WQ(t,e){if(!t)return Promise.reject(new Error("Expected a...
  function nm (line 141) | function nm(t){let e=parseInt(t,10);return isFinite(e)?e:0}
  function utt (line 141) | function utt(t){return t?att.has(t.status):!0}
  function fH (line 141) | function fH(t){let e={};if(!t)return e;let r=t.trim().split(/,/);for(let...
  function ftt (line 141) | function ftt(t){let e=[];for(let r in t){let s=t[r];e.push(s===!0?r:r+"=...
  method constructor (line 141) | constructor(e,r,{shared:s,cacheHeuristic:a,immutableMinTimeToLive:n,igno...
  method now (line 141) | now(){return Date.now()}
  method storable (line 141) | storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||thi...
  method _hasExplicitExpiration (line 141) | _hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]|...
  method _assertRequestHasHeaders (line 141) | _assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request heade...
  method satisfiesWithoutRevalidation (line 141) | satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=f...
  method _requestMatches (line 141) | _requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host==...
  method _allowsStoringAuthenticated (line 141) | _allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||thi...
  method _varyMatches (line 141) | _varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.v...
  method _copyWithoutHopByHopHeaders (line 141) | _copyWithoutHopByHopHeaders(e){let r={};for(let s in e)ltt[s]||(r[s]=e[s...
  method responseHeaders (line 141) | responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeader...
  method date (line 141) | date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this...
  method age (line 141) | age(){let e=this._ageValue(),r=(this.now()-this._responseTime)/1e3;retur...
  method _ageValue (line 141) | _ageValue(){return nm(this._resHeaders.age)}
  method maxAge (line 141) | maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&t...
  method timeToLive (line 141) | timeToLive(){let e=this.maxAge()-this.age(),r=e+nm(this._rescc["stale-if...
  method stale (line 141) | stale(){return this.maxAge()<=this.age()}
  method _useStaleIfError (line 141) | _useStaleIfError(){return this.maxAge()+nm(this._rescc["stale-if-error"]...
  method useStaleWhileRevalidate (line 141) | useStaleWhileRevalidate(){return this.maxAge()+nm(this._rescc["stale-whi...
  method fromObject (line 141) | static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}
  method _fromObject (line 141) | _fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e|...
  method toObject (line 141) | toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._ca...
  method revalidationHeaders (line 141) | revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copy...
  method revalidatedPolicy (line 141) | revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),this._useStal...
  method constructor (line 141) | constructor(e,r,s,a){if(typeof e!="number")throw new TypeError("Argument...
  method _read (line 141) | _read(){this.push(this.body),this.push(null)}
  method constructor (line 141) | constructor(e,{emitErrors:r=!0,...s}={}){if(super(),this.opts={namespace...
  method _checkIterableAdaptar (line 141) | _checkIterableAdaptar(){return hfe.includes(this.opts.store.opts.dialect...
  method _getKeyPrefix (line 141) | _getKeyPrefix(e){return`${this.opts.namespace}:${e}`}
  method _getKeyPrefixArray (line 141) | _getKeyPrefixArray(e){return e.map(r=>`${this.opts.namespace}:${r}`)}
  method _getKeyUnprefix (line 141) | _getKeyUnprefix(e){return e.split(":").splice(1).join(":")}
  method get (line 141) | get(e,r){let{store:s}=this.opts,a=Array.isArray(e),n=a?this._getKeyPrefi...
  method set (line 141) | set(e,r,s){let a=this._getKeyPrefix(e);typeof s>"u"&&(s=this.opts.ttl),s...
  method delete (line 141) | delete(e){let{store:r}=this.opts;if(Array.isArray(e)){let a=this._getKey...
  method clear (line 141) | clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear...
  method has (line 141) | has(e){let r=this._getKeyPrefix(e),{store:s}=this.opts;return Promise.re...
  method disconnect (line 141) | disconnect(){let{store:e}=this.opts;if(typeof e.disconnect=="function")r...
  method constructor (line 141) | constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter ...
  method createCacheableRequest (line 141) | createCacheableRequest(e){return(r,s)=>{let a;if(typeof r=="string")a=dH...
  function Dtt (line 141) | function Dtt(t){let e={...t};return e.path=`${t.pathname||"/"}${t.search...
  function dH (line 141) | function dH(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostnam...
  method constructor (line 141) | constructor(t){super(t.message),this.name="RequestError",Object.assign(t...
  method constructor (line 141) | constructor(t){super(t.message),this.name="CacheError",Object.assign(thi...
  method get (line 141) | get(){let n=t[a];return typeof n=="function"?n.bind(t):n}
  method set (line 141) | set(n){t[a]=n}
  method transform (line 141) | transform(f,p,h){s=!1,h(null,f)}
  method flush (line 141) | flush(f){f()}
  method destroy (line 141) | destroy(f,p){t.destroy(),p(f)}
  method constructor (line 141) | constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`max...
  method _set (line 141) | _set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){...
  method get (line 141) | get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.ha...
  method set (line 141) | set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}
  method has (line 141) | has(e){return this.cache.has(e)||this.oldCache.has(e)}
  method peek (line 141) | peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.h...
  method delete (line 141) | delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCach...
  method clear (line 141) | clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}
  method keys (line 141) | *keys(){for(let[e]of this)yield e}
  method values (line 141) | *values(){for(let[,e]of this)yield e}
  method [Symbol.iterator] (line 141) | *[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.o...
  method size (line 141) | get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||...
  method constructor (line 141) | constructor({timeout:e=6e4,maxSessions:r=1/0,maxFreeSessions:s=10,maxCac...
  method normalizeOrigin (line 141) | static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&...
  method normalizeOptions (line 141) | normalizeOptions(e){let r="";if(e)for(let s of Ntt)e[s]&&(r+=`:${e[s]}`)...
  method _tryToCreateNewSession (line 141) | _tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e])...
  method getSession (line 141) | getSession(e,r,s){return new Promise((a,n)=>{Array.isArray(s)?(s=[...s],...
  method request (line 142) | request(e,r,s,a){return new Promise((n,c)=>{this.getSession(e,r,[{reject...
  method createConnection (line 142) | createConnection(e,r){return t.connect(e,r)}
  method connect (line 142) | static connect(e,r){r.ALPNProtocols=["h2"];let s=e.port||443,a=e.hostnam...
  method closeFreeSessions (line 142) | closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r ...
  method destroy (line 142) | destroy(e){for(let r of Object.values(this.sessions))for(let s of r)s.de...
  method freeSessions (line 142) | get freeSessions(){return Dfe({agent:this,isFree:!0})}
  method busySessions (line 142) | get busySessions(){return Dfe({agent:this,isFree:!1})}
  method constructor (line 142) | constructor(e,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode...
  method _destroy (line 142) | _destroy(e){this.req._request.destroy(e)}
  method setTimeout (line 142) | setTimeout(e,r){return this.req.setTimeout(e,r),this}
  method _dump (line 142) | _dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),t...
  method _read (line 142) | _read(){this.req&&this.req._request.resume()}
  method constructor (line 142) | constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.na...
  method constructor (line 142) | constructor(e,r,s){super({autoDestroy:!1});let a=typeof e=="string"||e i...
  method method (line 142) | get method(){return this[Jo][_fe]}
  method method (line 142) | set method(e){e&&(this[Jo][_fe]=e.toUpperCase())}
  method path (line 142) | get path(){return this[Jo][Hfe]}
  method path (line 142) | set path(e){e&&(this[Jo][Hfe]=e)}
  method _mustNotHaveABody (line 142) | get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"...
  method _write (line 142) | _write(e,r,s){if(this._mustNotHaveABody){s(new Error("The GET, HEAD and ...
  method _final (line 142) | _final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(thi...
  method abort (line 142) | abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=...
  method _destroy (line 142) | _destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.de...
  method flushHeaders (line 142) | async flushHeaders(){if(this[JQ]||this.destroyed)return;this[JQ]=!0;let ...
  method getHeader (line 142) | getHeader(e){if(typeof e!="string")throw new SH("name","string",e);retur...
  method headersSent (line 142) | get headersSent(){return this[JQ]}
  method removeHeader (line 142) | removeHeader(e){if(typeof e!="string")throw new SH("name","string",e);if...
  method setHeader (line 142) | setHeader(e,r){if(this.headersSent)throw new Mfe("set");if(typeof e!="st...
  method setNoDelay (line 142) | setNoDelay(){}
  method setSocketKeepAlive (line 142) | setSocketKeepAlive(){}
  method setTimeout (line 142) | setTimeout(e,r){let s=()=>this._request.setTimeout(e,r);return this._req...
  method maxHeadersCount (line 142) | get maxHeadersCount(){if(!this.destroyed&&this._request)return this._req...
  method maxHeadersCount (line 142) | set maxHeadersCount(e){}
  function drt (line 142) | function drt(t,e,r){let s={};for(let a of r)s[a]=(...n)=>{e.emit(a,...n)...
  method once (line 142) | once(e,r,s){e.once(r,s),t.push({origin:e,event:r,fn:s})}
  method unhandleAll (line 142) | unhandleAll(){for(let e of t){let{origin:r,event:s,fn:a}=e;r.removeListe...
  method constructor (line 142) | constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`),this.event=...
  method constructor (line 142) | constructor(){this.weakMap=new WeakMap,this.map=new Map}
  method set (line 142) | set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}
  method get (line 142) | get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}
  method has (line 142) | has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}
  function Hrt (line 142) | function Hrt(t){for(let e in t){let r=t[e];if(!at.default.string(r)&&!at...
  function jrt (line 142) | function jrt(t){return at.default.object(t)&&!("statusCode"in t)}
  method constructor (line 142) | constructor(e,r,s){var a;if(super(e),Error.captureStackTrace(this,this.c...
  method constructor (line 146) | constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborti...
  method constructor (line 146) | constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})...
  method constructor (line 146) | constructor(e,r){super(e.message,e,r),this.name="CacheError"}
  method constructor (line 146) | constructor(e,r){super(e.message,e,r),this.name="UploadError"}
  method constructor (line 146) | constructor(e,r,s){super(e.message,e,s),this.name="TimeoutError",this.ev...
  method constructor (line 146) | constructor(e,r){super(e.message,e,r),this.name="ReadError"}
  method constructor (line 146) | constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),th...
  method constructor (line 146) | constructor(e,r={},s){super({autoDestroy:!1,highWaterMark:0}),this[yI]=0...
  method normalizeArguments (line 146) | static normalizeArguments(e,r,s){var a,n,c,f,p;let h=r;if(at.default.obj...
  method _lockWrite (line 146) | _lockWrite(){let e=()=>{throw new TypeError("The payload has been alread...
  method _unlockWrite (line 146) | _unlockWrite(){this.write=super.write,this.end=super.end}
  method _finalizeBody (line 146) | async _finalizeBody(){let{options:e}=this,{headers:r}=e,s=!at.default.un...
  method _onResponseBase (line 146) | async _onResponseBase(e){let{options:r}=this,{url:s}=r;this[PAe]=e,r.dec...
  method _onResponse (line 146) | async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._be...
  method _onRequest (line 146) | _onRequest(e){let{options:r}=this,{timeout:s,url:a}=r;brt.default(e),thi...
  method _createCacheableRequest (line 146) | async _createCacheableRequest(e,r){return new Promise((s,a)=>{Object.ass...
  method _makeRequest (line 146) | async _makeRequest(){var e,r,s,a,n;let{options:c}=this,{headers:f}=c;for...
  method _error (line 146) | async _error(e){try{for(let r of this.options.hooks.beforeError)e=await ...
  method _beforeError (line 146) | _beforeError(e){if(this[CI])return;let{options:r}=this,s=this.retryCount...
  method _read (line 146) | _read(){this[$Q]=!0;let e=this[eT];if(e&&!this[CI]){e.readableLength&&(t...
  method _write (line 146) | _write(e,r,s){let a=()=>{this._writeRequest(e,r,s)};this.requestInitiali...
  method _writeRequest (line 146) | _writeRequest(e,r,s){this[po].destroyed||(this._progressCallbacks.push((...
  method _final (line 146) | _final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._prog...
  method _destroy (line 146) | _destroy(e,r){var s;this[CI]=!0,clearTimeout(this[xAe]),po in this&&(thi...
  method _isAboutToError (line 146) | get _isAboutToError(){return this[CI]}
  method ip (line 146) | get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteA...
  method aborted (line 146) | get aborted(){var e,r,s;return((r=(e=this[po])===null||e===void 0?void 0...
  method socket (line 146) | get socket(){var e,r;return(r=(e=this[po])===null||e===void 0?void 0:e.s...
  method downloadProgress (line 146) | get downloadProgress(){let e;return this[mI]?e=this[yI]/this[mI]:this[mI...
  method uploadProgress (line 146) | get uploadProgress(){let e;return this[EI]?e=this[II]/this[EI]:this[EI]=...
  method timings (line 146) | get timings(){var e;return(e=this[po])===null||e===void 0?void 0:e.timings}
  method isFromCache (line 146) | get isFromCache(){return this[DAe]}
  method pipe (line 146) | pipe(e,r){if(this[bAe])throw new Error("Failed to pipe. The response has...
  method unpipe (line 146) | unpipe(e){return e instanceof JH.ServerResponse&&this[ZQ].delete(e),supe...
  method constructor (line 146) | constructor(e,r){let{options:s}=r.request;super(`${e.message} in "${s.ur...
  method constructor (line 146) | constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}
  method isCanceled (line 146) | get isCanceled(){return!0}
  function OAe (line 146) | function OAe(t){let e,r,s=new Zrt.EventEmitter,a=new ent((c,f,p)=>{let h...
  function snt (line 146) | function snt(t,...e){let r=(async()=>{if(t instanceof int.RequestError)t...
  function UAe (line 146) | function UAe(t){for(let e of Object.values(t))(MAe.default.plainObject(e...
  function oj (line 146) | async function oj(t){return Yl(XAe,t,()=>ce.readFilePromise(t).then(e=>(...
  function Int (line 146) | function Int({statusCode:t,statusMessage:e},r){let s=Ht(r,t,ht.NUMBER),a...
  function AT (line 146) | async function AT(t,{configuration:e,customErrorMessage:r}){try{return a...
  function epe (line 146) | function epe(t,e){let r=[...e.configuration.get("networkSettings")].sort...
  function iv (line 146) | async function iv(t,e,{configuration:r,headers:s,jsonRequest:a,jsonRespo...
  function lj (line 146) | async function lj(t,{configuration:e,jsonResponse:r,customErrorMessage:s...
  function Cnt (line 146) | async function Cnt(t,e,{customErrorMessage:r,...s}){return(await AT(iv(t...
  function cj (line 146) | async function cj(t,e,{customErrorMessage:r,...s}){return(await AT(iv(t,...
  function wnt (line 146) | async function wnt(t,{customErrorMessage:e,...r}){return(await AT(iv(t,n...
  function Bnt (line 146) | async function Bnt(t,e,{configuration:r,headers:s,jsonRequest:a,jsonResp...
  function bnt (line 146) | function bnt(){if(process.platform!=="linux")return null;let t;try{t=ce....
  function sv (line 146) | function sv(){return npe=npe??{os:(process.env.YARN_IS_TEST_ENV?process....
  function Pnt (line 146) | function Pnt(t=sv()){return t.libc?`${t.os}-${t.cpu}-${t.libc}`:`${t.os}...
  function uj (line 146) | function uj(){let t=sv();return ipe=ipe??{os:[t.os],cpu:[t.cpu],libc:t.l...
  function Qnt (line 146) | function Qnt(t){let e=xnt.exec(t);if(!e)return null;let r=e[2]&&e[2].ind...
  function Tnt (line 146) | function Tnt(){let e=new Error().stack.split(`
  function fj (line 147) | function fj(){return typeof hT.default.availableParallelism<"u"?hT.defau...
  function yj (line 147) | function yj(t,e,r,s,a){let n=YB(r);if(s.isArray||s.type==="ANY"&&Array.i...
  function pj (line 147) | function pj(t,e,r,s,a){let n=YB(r);switch(s.type){case"ANY":return NQ(n)...
  function Ont (line 147) | function Ont(t,e,r,s,a){let n=YB(r);if(typeof n!="object"||Array.isArray...
  function Lnt (line 147) | function Lnt(t,e,r,s,a){let n=YB(r),c=new Map;if(typeof n!="object"||Arr...
  function Ej (line 147) | function Ej(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case"SHAPE":{if(e...
  function yT (line 147) | function yT(t,e,r){if(e.type==="SECRET"&&typeof t=="string"&&r.hideSecre...
  function Mnt (line 147) | function Mnt(){let t={};for(let[e,r]of Object.entries(process.env))e=e.t...
  function gj (line 147) | function gj(){let t=`${ET}rc_filename`;for(let[e,r]of Object.entries(pro...
  function spe (line 147) | async function spe(t){try{return await ce.readFilePromise(t)}catch{retur...
  function Unt (line 147) | async function Unt(t,e){return Buffer.compare(...await Promise.all([spe(...
  function _nt (line 147) | async function _nt(t,e){let[r,s]=await Promise.all([ce.statPromise(t),ce...
  function jnt (line 147) | async function jnt({configuration:t,selfPath:e}){let r=t.get("yarnPath")...
  method constructor (line 147) | constructor(e){this.isCI=Lp.isCI;this.projectCwd=null;this.plugins=new M...
  method create (line 147) | static create(e,r,s){let a=new t(e);typeof r<"u"&&!(r instanceof Map)&&(...
  method find (line 147) | static async find(e,r,{strict:s=!0,usePathCheck:a=null,useRc:n=!0}={}){l...
  method findRcFiles (line 147) | static async findRcFiles(e){let r=gj(),s=[],a=e,n=null;for(;a!==n;){n=a;...
  method findFolderRcFile (line 147) | static async findFolderRcFile(e){let r=J.join(e,Er.rc),s;try{s=await ce....
  method findProjectCwd (line 147) | static async findProjectCwd(e){let r=null,s=e,a=null;for(;s!==a;){if(a=s...
  method updateConfiguration (line 147) | static async updateConfiguration(e,r,s={}){let a=gj(),n=J.join(e,a),c=ce...
  method addPlugin (line 147) | static async addPlugin(e,r){r.length!==0&&await t.updateConfiguration(e,...
  method updateHomeConfiguration (line 147) | static async updateHomeConfiguration(e){let r=fI();return await t.update...
  method activatePlugin (line 147) | activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration<"u"&&th...
  method importSettings (line 147) | importSettings(e){for(let[r,s]of Object.entries(e))if(s!=null){if(this.s...
  method useWithSource (line 147) | useWithSource(e,r,s,a){try{this.use(e,r,s,a)}catch(n){throw n.message+=`...
  method use (line 147) | use(e,r,s,{strict:a=!0,overwrite:n=!1}={}){a=a&&this.get("enableStrictSe...
  method get (line 147) | get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key...
  method getSpecial (line 147) | getSpecial(e,{hideSecrets:r=!1,getNativePaths:s=!1}){let a=this.get(e),n...
  method getSubprocessStreams (line 147) | getSubprocessStreams(e,{header:r,prefix:s,report:a}){let n,c,f=ce.create...
  method makeResolver (line 148) | makeResolver(){let e=[];for(let r of this.plugins.values())for(let s of ...
  method makeFetcher (line 148) | makeFetcher(){let e=[];for(let r of this.plugins.values())for(let s of r...
  method getLinkers (line 148) | getLinkers(){let e=[];for(let r of this.plugins.values())for(let s of r....
  method getSupportedArchitectures (line 148) | getSupportedArchitectures(){let e=sv(),r=this.get("supportedArchitecture...
  method isInteractive (line 148) | isInteractive({interactive:e,stdout:r}){return r.isTTY?e??this.get("pref...
  method getPackageExtensions (line 148) | async getPackageExtensions(){if(this.packageExtensions!==null)return thi...
  method normalizeLocator (line 148) | normalizeLocator(e){return cl(e.reference)?Ws(e,`${this.get("defaultProt...
  method normalizeDependency (line 148) | normalizeDependency(e){return cl(e.range)?On(e,`${this.get("defaultProto...
  method normalizeDependencyMap (line 148) | normalizeDependencyMap(e){return new Map([...e].map(([r,s])=>[r,this.nor...
  method normalizePackage (line 148) | normalizePackage(e,{packageExtensions:r}){let s=LB(e),a=r.get(e.identHas...
  method getLimit (line 148) | getLimit(e){return Yl(this.limits,e,()=>(0,cpe.default)(this.get(e)))}
  method triggerHook (line 148) | async triggerHook(e,...r){for(let s of this.plugins.values()){let a=s.ho...
  method triggerMultipleHooks (line 148) | async triggerMultipleHooks(e,r){for(let s of r)await this.triggerHook(e,...
  method reduceHook (line 148) | async reduceHook(e,r,...s){let a=r;for(let n of this.plugins.values()){l...
  method firstHook (line 148) | async firstHook(e,...r){for(let s of this.plugins.values()){let a=s.hook...
  function om (line 148) | function om(t){return t!==null&&typeof t.fd=="number"}
  function Ij (line 148) | function Ij(){}
  function Cj (line 148) | function Cj(){for(let t of am)t.kill()}
  function Wu (line 148) | async function Wu(t,e,{cwd:r,env:s=process.env,strict:a=!1,stdin:n=null,...
  function Aj (line 148) | async function Aj(t,e,{cwd:r,env:s=process.env,encoding:a="utf8",strict:...
  function vj (line 148) | function vj(t,e){let r=Gnt.get(e);return typeof r<"u"?128+r:t??1}
  function qnt (line 148) | function qnt(t,e,{configuration:r,report:s}){s.reportError(1,`  ${Kf(r,t...
  method constructor (line 148) | constructor({fileName:e,code:r,signal:s}){let a=ze.create(J.cwd()),n=Ht(...
  method constructor (line 148) | constructor({fileName:e,code:r,signal:s,stdout:a,stderr:n}){super({fileN...
  function Ape (line 148) | function Ape(t){fpe=t}
  function cv (line 148) | function cv(){return typeof Sj>"u"&&(Sj=fpe()),Sj}
  function P (line 148) | function P(Ke){return r.locateFile?r.locateFile(Ke,S):S+Ke}
  function pe (line 148) | function pe(Ke,st,St){switch(st=st||"i8",st.charAt(st.length-1)==="*"&&(...
  function we (line 148) | function we(Ke,st){Ke||rs("Assertion failed: "+st)}
  function ye (line 148) | function ye(Ke){var st=r["_"+Ke];return we(st,"Cannot call unknown funct...
  function Ae (line 148) | function Ae(Ke,st,St,lr,te){var Ee={string:function(qi){var Tn=0;if(qi!=...
  function se (line 148) | function se(Ke,st,St,lr){St=St||[];var te=St.every(function(Oe){return O...
  function De (line 148) | function De(Ke,st){if(!Ke)return"";for(var St=Ke+st,lr=Ke;!(lr>=St)&&ke[...
  function Re (line 148) | function Re(Ke,st,St,lr){if(!(lr>0))return 0;for(var te=St,Ee=St+lr-1,Oe...
  function mt (line 148) | function mt(Ke,st,St){return Re(Ke,ke,st,St)}
  function j (line 148) | function j(Ke){for(var st=0,St=0;St<Ke.length;++St){var lr=Ke.charCodeAt...
  function rt (line 148) | function rt(Ke){var st=j(Ke)+1,St=La(st);return St&&Re(Ke,Ve,St,st),St}
  function Fe (line 148) | function Fe(Ke,st){Ve.set(Ke,st)}
  function Ne (line 148) | function Ne(Ke,st){return Ke%st>0&&(Ke+=st-Ke%st),Ke}
  function z (line 148) | function z(Ke){Pe=Ke,r.HEAP_DATA_VIEW=F=new DataView(Ke),r.HEAP8=Ve=new ...
  function Ct (line 148) | function Ct(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r....
  function qt (line 148) | function qt(){lt=!0,Ts(xe)}
  function ir (line 148) | function ir(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=...
  function Pt (line 148) | function Pt(Ke){oe.unshift(Ke)}
  function gn (line 148) | function gn(Ke){xe.unshift(Ke)}
  function Pr (line 148) | function Pr(Ke){Te.unshift(Ke)}
  function ai (line 148) | function ai(Ke){Ir++,r.monitorRunDependencies&&r.monitorRunDependencies(...
  function Io (line 148) | function Io(Ke){if(Ir--,r.monitorRunDependencies&&r.monitorRunDependenci...
  function rs (line 148) | function rs(Ke){r.onAbort&&r.onAbort(Ke),Ke+="",ee(Ke),Ce=!0,g=1,Ke="abo...
  function Co (line 148) | function Co(Ke){return Ke.startsWith($s)}
  function eo (line 148) | function eo(Ke){try{if(Ke==ji&&le)return new Uint8Array(le);var st=Me(Ke...
  function wo (line 148) | function wo(Ke,st){var St,lr,te;try{te=eo(Ke),lr=new WebAssembly.Module(...
  function QA (line 148) | function QA(){var Ke={a:cu};function st(te,Ee){var Oe=te.exports;r.asm=O...
  function Af (line 148) | function Af(Ke){return F.getFloat32(Ke,!0)}
  function dh (line 148) | function dh(Ke){return F.getFloat64(Ke,!0)}
  function mh (line 148) | function mh(Ke){return F.getInt16(Ke,!0)}
  function to (line 148) | function to(Ke){return F.getInt32(Ke,!0)}
  function jn (line 148) | function jn(Ke,st){F.setInt32(Ke,st,!0)}
  function Ts (line 148) | function Ts(Ke){for(;Ke.length>0;){var st=Ke.shift();if(typeof st=="func...
  function ro (line 148) | function ro(Ke,st){var St=new Date(to((Ke>>2)*4)*1e3);jn((st>>2)*4,St.ge...
  function ou (line 148) | function ou(Ke,st){return ro(Ke,st)}
  function au (line 148) | function au(Ke,st,St){ke.copyWithin(Ke,st,st+St)}
  function lu (line 148) | function lu(Ke){try{return Be.grow(Ke-Pe.byteLength+65535>>>16),z(Be.buf...
  function TA (line 148) | function TA(Ke){var st=ke.length;Ke=Ke>>>0;var St=2147483648;if(Ke>St)re...
  function RA (line 148) | function RA(Ke){ue(Ke)}
  function oa (line 148) | function oa(Ke){var st=Date.now()/1e3|0;return Ke&&jn((Ke>>2)*4,st),st}
  function aa (line 148) | function aa(){if(aa.called)return;aa.called=!0;var Ke=new Date().getFull...
  function FA (line 148) | function FA(Ke){aa();var st=Date.UTC(to((Ke+20>>2)*4)+1900,to((Ke+16>>2)...
  function Bo (line 148) | function Bo(Ke){if(typeof C=="boolean"&&C){var st;try{st=Buffer.from(Ke,...
  function Me (line 148) | function Me(Ke){if(Co(Ke))return Bo(Ke.slice($s.length))}
  function Ac (line 148) | function Ac(Ke){if(Ke=Ke||f,Ir>0||(Ct(),Ir>0))return;function st(){Qn||(...
  method HEAPU8 (line 148) | get HEAPU8(){return t.HEAPU8}
  function xj (line 148) | function xj(t,e){let r=t.indexOf(e);if(r<=0)return null;let s=r;for(;r>=...
  method openPromise (line 148) | static async openPromise(e,r){let s=new t(r);try{return await e(s)}final...
  method constructor (line 148) | constructor(e={}){let r=e.fileExtensions,s=e.readOnlyArchives,a=typeof r...
  method constructor (line 148) | constructor(e,r){super(e),this.name="Libzip Error",this.code=r}
  method constructor (line 148) | constructor(e){this.filesShouldBeCached=!0;let r="buffer"in e?e.buffer:e...
  method getSymlinkCount (line 148) | getSymlinkCount(){return this.symlinkCount}
  method getListings (line 148) | getListings(){return this.listings}
  method stat (line 148) | stat(e){let r=this.libzip.struct.statS();if(this.libzip.statIndex(this.z...
  method makeLibzipError (line 148) | makeLibzipError(e){let r=this.libzip.struct.errorCodeZip(e),s=this.libzi...
  method setFileSource (line 148) | setFileSource(e,r,s){let a=this.allocateSource(s);try{let n=this.libzip....
  method setMtime (line 148) | setMtime(e,r){if(this.libzip.file.setMtime(this.zip,e,0,r,0)===-1)throw ...
  method getExternalAttributes (line 148) | getExternalAttributes(e){if(this.libzip.file.getExternalAttributes(this....
  method setExternalAttributes (line 148) | setExternalAttributes(e,r,s){if(this.libzip.file.setExternalAttributes(t...
  method locate (line 148) | locate(e){return this.libzip.name.locate(this.zip,e,0)}
  method getFileSource (line 148) | getFileSource(e){let r=this.libzip.struct.statS();if(this.libzip.statInd...
  method deleteEntry (line 148) | deleteEntry(e){if(this.libzip.delete(this.zip,e)===-1)throw this.makeLib...
  method addDirectory (line 148) | addDirectory(e){let r=this.libzip.dir.add(this.zip,e);if(r===-1)throw th...
  method getBufferAndClose (line 148) | getBufferAndClose(){try{if(this.libzip.source.keep(this.lzSource),this.l...
  method allocateBuffer (line 148) | allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));let r=this.libz...
  method allocateUnattachedSource (line 148) | allocateUnattachedSource(e){let r=this.libzip.struct.errorS(),{buffer:s,...
  method allocateSource (line 148) | allocateSource(e){let{buffer:r,byteLength:s}=this.allocateBuffer(e),a=th...
  method discard (line 148) | discard(){this.libzip.discard(this.zip)}
  function Ynt (line 148) | function Ynt(t){if(typeof t=="string"&&String(+t)===t)return+t;if(typeof...
  function BT (line 148) | function BT(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,...
  method constructor (line 148) | constructor(r,s={}){super();this.listings=new Map;this.entries=new Map;t...
  method getExtractHint (line 148) | getExtractHint(r){for(let s of this.entries.keys()){let a=this.pathUtils...
  method getAllFiles (line 148) | getAllFiles(){return Array.from(this.entries.keys())}
  method getRealPath (line 148) | getRealPath(){if(!this.path)throw new Error("ZipFS don't have real paths...
  method prepareClose (line 148) | prepareClose(){if(!this.ready)throw or.EBUSY("archive closed, close");yd...
  method getBufferAndClose (line 148) | getBufferAndClose(){if(this.prepareClose(),this.entries.size===0)return ...
  method discardAndClose (line 148) | discardAndClose(){this.prepareClose(),this.zipImpl.discard(),this.ready=!1}
  method saveAndClose (line 148) | saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot...
  method resolve (line 148) | resolve(r){return J.resolve(vt.root,r)}
  method openPromise (line 148) | async openPromise(r,s,a){return this.openSync(r,s,a)}
  method openSync (line 148) | openSync(r,s,a){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:r}...
  method hasOpenFileHandles (line 148) | hasOpenFileHandles(){return!!this.fds.size}
  method opendirPromise (line 148) | async opendirPromise(r,s){return this.opendirSync(r,s)}
  method opendirSync (line 148) | opendirSync(r,s={}){let a=this.resolveFilename(`opendir '${r}'`,r);if(!t...
  method readPromise (line 148) | async readPromise(r,s,a,n,c){return this.readSync(r,s,a,n,c)}
  method readSync (line 148) | readSync(r,s,a=0,n=s.byteLength,c=-1){let f=this.fds.get(r);if(typeof f>...
  method writePromise (line 148) | async writePromise(r,s,a,n,c){return typeof s=="string"?this.writeSync(r...
  method writeSync (line 148) | writeSync(r,s,a,n,c){throw typeof this.fds.get(r)>"u"?or.EBADF("read"):n...
  method closePromise (line 148) | async closePromise(r){return this.closeSync(r)}
  method closeSync (line 148) | closeSync(r){if(typeof this.fds.get(r)>"u")throw or.EBADF("read");this.f...
  method createReadStream (line 148) | createReadStream(r,{encoding:s}={}){if(r===null)throw new Error("Unimple...
  method createWriteStream (line 148) | createWriteStream(r,{encoding:s}={}){if(this.readOnly)throw or.EROFS(`op...
  method realpathPromise (line 148) | async realpathPromise(r){return this.realpathSync(r)}
  method realpathSync (line 148) | realpathSync(r){let s=this.resolveFilename(`lstat '${r}'`,r);if(!this.en...
  method existsPromise (line 148) | async existsPromise(r){return this.existsSync(r)}
  method existsSync (line 148) | existsSync(r){if(!this.ready)throw or.EBUSY(`archive closed, existsSync ...
  method accessPromise (line 148) | async accessPromise(r,s){return this.accessSync(r,s)}
  method accessSync (line 148) | accessSync(r,s=xa.constants.F_OK){let a=this.resolveFilename(`access '${...
  method statPromise (line 148) | async statPromise(r,s={bigint:!1}){return s.bigint?this.statSync(r,{bigi...
  method statSync (line 148) | statSync(r,s={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`...
  method fstatPromise (line 148) | async fstatPromise(r,s){return this.fstatSync(r,s)}
  method fstatSync (line 148) | fstatSync(r,s){let a=this.fds.get(r);if(typeof a>"u")throw or.EBADF("fst...
  method lstatPromise (line 148) | async lstatPromise(r,s={bigint:!1}){return s.bigint?this.lstatSync(r,{bi...
  method lstatSync (line 148) | lstatSync(r,s={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(...
  method statImpl (line 148) | statImpl(r,s,a={}){let n=this.entries.get(s);if(typeof n<"u"){let c=this...
  method getUnixMode (line 148) | getUnixMode(r,s){let[a,n]=this.zipImpl.getExternalAttributes(r);return a...
  method registerListing (line 148) | registerListing(r){let s=this.listings.get(r);if(s)return s;this.registe...
  method registerEntry (line 148) | registerEntry(r,s){this.registerListing(J.dirname(r)).add(J.basename(r))...
  method unregisterListing (line 148) | unregisterListing(r){this.listings.delete(r),this.listings.get(J.dirname...
  method unregisterEntry (line 148) | unregisterEntry(r){this.unregisterListing(r);let s=this.entries.get(r);t...
  method deleteEntry (line 148) | deleteEntry(r,s){this.unregisterEntry(r),this.zipImpl.deleteEntry(s)}
  method resolveFilename (line 148) | resolveFilename(r,s,a=!0,n=!0){if(!this.ready)throw or.EBUSY(`archive cl...
  method setFileSource (line 148) | setFileSource(r,s){let a=Buffer.isBuffer(s)?s:Buffer.from(s),n=J.relativ...
  method isSymbolicLink (line 148) | isSymbolicLink(r){if(this.symlinkCount===0)return!1;let[s,a]=this.zipImp...
  method getFileSource (line 148) | getFileSource(r,s={asyncDecompress:!1}){let a=this.fileSources.get(r);if...
  method fchmodPromise (line 148) | async fchmodPromise(r,s){return this.chmodPromise(this.fdToPath(r,"fchmo...
  method fchmodSync (line 148) | fchmodSync(r,s){return this.chmodSync(this.fdToPath(r,"fchmodSync"),s)}
  method chmodPromise (line 148) | async chmodPromise(r,s){return this.chmodSync(r,s)}
  method chmodSync (line 148) | chmodSync(r,s){if(this.readOnly)throw or.EROFS(`chmod '${r}'`);s&=493;le...
  method fchownPromise (line 148) | async fchownPromise(r,s,a){return this.chownPromise(this.fdToPath(r,"fch...
  method fchownSync (line 148) | fchownSync(r,s,a){return this.chownSync(this.fdToPath(r,"fchownSync"),s,a)}
  method chownPromise (line 148) | async chownPromise(r,s,a){return this.chownSync(r,s,a)}
  method chownSync (line 148) | chownSync(r,s,a){throw new Error("Unimplemented")}
  method renamePromise (line 148) | async renamePromise(r,s){return this.renameSync(r,s)}
  method renameSync (line 148) | renameSync(r,s){throw new Error("Unimplemented")}
  method copyFilePromise (line 148) | async copyFilePromise(r,s,a){let{indexSource:n,indexDest:c,resolvedDestP...
  method copyFileSync (line 148) | copyFileSync(r,s,a=0){let{indexSource:n,indexDest:c,resolvedDestP:f}=thi...
  method prepareCopyFile (line 148) | prepareCopyFile(r,s,a=0){if(this.readOnly)throw or.EROFS(`copyfile '${r}...
  method appendFilePromise (line 148) | async appendFilePromise(r,s,a){if(this.readOnly)throw or.EROFS(`open '${...
  method appendFileSync (line 148) | appendFileSync(r,s,a={}){if(this.readOnly)throw or.EROFS(`open '${r}'`);...
  method fdToPath (line 148) | fdToPath(r,s){let a=this.fds.get(r)?.p;if(typeof a>"u")throw or.EBADF(s)...
  method writeFilePromise (line 148) | async writeFilePromise(r,s,a){let{encoding:n,mode:c,index:f,resolvedP:p}...
  method writeFileSync (line 148) | writeFileSync(r,s,a){let{encoding:n,mode:c,index:f,resolvedP:p}=this.pre...
  method prepareWriteFile (line 148) | prepareWriteFile(r,s){if(typeof r=="number"&&(r=this.fdToPath(r,"read"))...
  method unlinkPromise (line 148) | async unlinkPromise(r){return this.unlinkSync(r)}
  method unlinkSync (line 148) | unlinkSync(r){if(this.readOnly)throw or.EROFS(`unlink '${r}'`);let s=thi...
  method utimesPromise (line 148) | async utimesPromise(r,s,a){return this.utimesSync(r,s,a)}
  method utimesSync (line 148) | utimesSync(r,s,a){if(this.readOnly)throw or.EROFS(`utimes '${r}'`);let n...
  method lutimesPromise (line 148) | async lutimesPromise(r,s,a){return this.lutimesSync(r,s,a)}
  method lutimesSync (line 148) | lutimesSync(r,s,a){if(this.readOnly)throw or.EROFS(`lutimes '${r}'`);let...
  method utimesImpl (line 148) | utimesImpl(r,s){this.listings.has(r)&&(this.entries.has(r)||this.hydrate...
  method mkdirPromise (line 148) | async mkdirPromise(r,s){return this.mkdirSync(r,s)}
  method mkdirSync (line 148) | mkdirSync(r,{mode:s=493,recursive:a=!1}={}){if(a)return this.mkdirpSync(...
  method rmdirPromise (line 148) | async rmdirPromise(r,s){return this.rmdirSync(r,s)}
  method rmdirSync (line 148) | rmdirSync(r,{recursive:s=!1}={}){if(this.readOnly)throw or.EROFS(`rmdir ...
  method rmPromise (line 148) | async rmPromise(r,s){return this.rmSync(r,s)}
  method rmSync (line 148) | rmSync(r,{recursive:s=!1}={}){if(this.readOnly)throw or.EROFS(`rm '${r}'...
  method hydrateDirectory (line 148) | hydrateDirectory(r){let s=this.zipImpl.addDirectory(J.relative(vt.root,r...
  method linkPromise (line 148) | async linkPromise(r,s){return this.linkSync(r,s)}
  method linkSync (line 148) | linkSync(r,s){throw or.EOPNOTSUPP(`link '${r}' -> '${s}'`)}
  method symlinkPromise (line 148) | async symlinkPromise(r,s){return this.symlinkSync(r,s)}
  method symlinkSync (line 148) | symlinkSync(r,s){if(this.readOnly)throw or.EROFS(`symlink '${r}' -> '${s...
  method readFilePromise (line 148) | async readFilePromise(r,s){typeof s=="object"&&(s=s?s.encoding:void 0);l...
  method readFileSync (line 148) | readFileSync(r,s){typeof s=="object"&&(s=s?s.encoding:void 0);let a=this...
  method readFileBuffer (line 148) | readFileBuffer(r,s={asyncDecompress:!1}){typeof r=="number"&&(r=this.fdT...
  method readdirPromise (line 148) | async readdirPromise(r,s){return this.readdirSync(r,s)}
  method readdirSync (line 148) | readdirSync(r,s){let a=this.resolveFilename(`scandir '${r}'`,r);if(!this...
  method readlinkPromise (line 148) | async readlinkPromise(r){let s=this.prepareReadlink(r);return(await this...
  method readlinkSync (line 148) | readlinkSync(r){let s=this.prepareReadlink(r);return this.getFileSource(...
  method prepareReadlink (line 148) | prepareReadlink(r){let s=this.resolveFilename(`readlink '${r}'`,r,!1);if...
  method truncatePromise (line 148) | async truncatePromise(r,s=0){let a=this.resolveFilename(`open '${r}'`,r)...
  method truncateSync (line 148) | truncateSync(r,s=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.e...
  method ftruncatePromise (line 148) | async ftruncatePromise(r,s){return this.truncatePromise(this.fdToPath(r,...
  method ftruncateSync (line 148) | ftruncateSync(r,s){return this.truncateSync(this.fdToPath(r,"ftruncateSy...
  method watch (line 148) | watch(r,s,a){let n;switch(typeof s){case"function":case"string":case"und...
  method watchFile (line 148) | watchFile(r,s,a){let n=J.resolve(vt.root,r);return sE(this,n,s,a)}
  method unwatchFile (line 148) | unwatchFile(r,s){let a=J.resolve(vt.root,r);return md(this,a,s)}
  function Cpe (line 148) | function Cpe(t,e,r=Buffer.alloc(0),s){let a=new As(r),n=C=>C===e||C.star...
  method constructor (line 148) | constructor(e){this.filesShouldBeCached=!1;if("buffer"in e)throw new Err...
  method readZipSync (line 148) | static readZipSync(e,r,s){if(s<uv)throw new Error("Invalid ZIP file: EOC...
  method getExternalAttributes (line 148) | getExternalAttributes(e){let r=this.entries[e];return[r.os,r.externalAtt...
  method getListings (line 148) | getListings(){return this.entries.map(e=>e.name)}
  method getSymlinkCount (line 148) | getSymlinkCount(){let e=0;for(let r of this.entries)r.isSymbolicLink&&(e...
  method stat (line 148) | stat(e){let r=this.entries[e];return{crc:r.crc,mtime:r.mtime,size:r.size}}
  method locate (line 148) | locate(e){for(let r=0;r<this.entries.length;r++)if(this.entries[r].name=...
  method getFileSource (line 148) | getFileSource(e){if(this.fd==="closed")throw new Error("ZIP file is clos...
  method discard (line 148) | discard(){this.fd!=="closed"&&(this.baseFs.closeSync(this.fd),this.fd="c...
  method addDirectory (line 148) | addDirectory(e){throw new Error("Not implemented")}
  method deleteEntry (line 148) | deleteEntry(e){throw new Error("Not implemented")}
  method setMtime (line 148) | setMtime(e,r){throw new Error("Not implemented")}
  method getBufferAndClose (line 148) | getBufferAndClose(){throw new Error("Not implemented")}
  method setFileSource (line 148) | setFileSource(e,r,s){throw new Error("Not implemented")}
  method setExternalAttributes (line 148) | setExternalAttributes(e,r,s){throw new Error("Not implemented")}
  function Vnt (line 148) | function Vnt(){return cv()}
  function Jnt (line 148) | async function Jnt(){return cv()}
  method constructor (line 148) | constructor(){super(...arguments);this.cwd=ge.String("--cwd",process.cwd...
  method execute (line 158) | async execute(){let r=this.args.length>0?`${this.commandName} ${this.arg...
  method constructor (line 158) | constructor(e){super(e),this.name="ShellError"}
  function Knt (line 158) | function Knt(t){if(!DT.default.scan(t,bT).isGlob)return!1;try{DT.default...
  function znt (line 158) | function znt(t,{cwd:e,baseFs:r}){return(0,Ppe.default)(t,{...kpe,cwd:fe....
  function Lj (line 158) | function Lj(t){return DT.default.scan(t,bT).isBrace}
  function Mj (line 158) | function Mj(){}
  function Uj (line 158) | function Uj(){for(let t of cm)t.kill()}
  function Npe (line 158) | function Npe(t,e,r,s){return a=>{let n=a[0]instanceof tA.Transform?"pipe...
  function Ope (line 161) | function Ope(t){return e=>{let r=e[0]==="pipe"?new tA.PassThrough:e[0];r...
  function xT (line 161) | function xT(t,e){return Hj.start(t,e)}
  function Tpe (line 161) | function Tpe(t,e=null){let r=new tA.PassThrough,s=new Fpe.StringDecoder,...
  function Lpe (line 162) | function Lpe(t,{prefix:e}){return{stdout:Tpe(r=>t.stdout.write(`${r}
  method constructor (line 164) | constructor(e){this.stream=e}
  method close (line 164) | close(){}
  method get (line 164) | get(){return this.stream}
  method constructor (line 164) | constructor(){this.stream=null}
  method close (line 164) | close(){if(this.stream===null)throw new Error("Assertion failed: No stre...
  method attach (line 164) | attach(e){this.stream=e}
  method get (line 164) | get(){if(this.stream===null)throw new Error("Assertion failed: No stream...
  method constructor (line 164) | constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this....
  method start (line 164) | static start(e,{stdin:r,stdout:s,stderr:a}){let n=new t(null,e);return n...
  method pipeTo (line 164) | pipeTo(e,r=1){let s=new t(this,e),a=new _j;return s.pipe=a,s.stdout=this...
  method exec (line 164) | async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe"...
  method run (line 164) | async run(){let e=[];for(let s=this;s;s=s.ancestor)e.push(s.exec());retu...
  function Mpe (line 164) | function Mpe(t,e,r){let s=new Jl.PassThrough({autoDestroy:!0});switch(t)...
  function QT (line 164) | function QT(t,e={}){let r={...t,...e};return r.environment={...t.environ...
  function Znt (line 164) | async function Znt(t,e,r){let s=[],a=new Jl.PassThrough;return a.on("dat...
  function Upe (line 164) | async function Upe(t,e,r){let s=t.map(async n=>{let c=await um(n.args,e,...
  function kT (line 164) | function kT(t){return t.match(/[^ \r\n\t]+/g)||[]}
  function Wpe (line 164) | async function Wpe(t,e,r,s,a=s){switch(t.name){case"$":s(String(process....
  function hv (line 164) | async function hv(t,e,r){if(t.type==="number"){if(Number.isInteger(t.val...
  function um (line 164) | async function um(t,e,r){let s=new Map,a=[],n=[],c=E=>{n.push(E)},f=()=>...
  function gv (line 164) | function gv(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let s=fe.f...
  function eit (line 164) | function eit(t,e,r){return s=>{let a=new Jl.PassThrough,n=TT(t,e,QT(r,{s...
  function tit (line 164) | function tit(t,e,r){return s=>{let a=new Jl.PassThrough,n=TT(t,e,r);retu...
  function _pe (line 164) | function _pe(t,e,r,s){if(e.length===0)return t;{let a;do a=String(Math.r...
  function Hpe (line 164) | async function Hpe(t,e,r){let s=t,a=null,n=null;for(;s;){let c=s.then?{....
  function rit (line 164) | async function rit(t,e,r,{background:s=!1}={}){function a(n){let c=["#2E...
  function nit (line 166) | async function nit(t,e,r,{background:s=!1}={}){let a,n=f=>{a=f,r.variabl...
  function TT (line 167) | async function TT(t,e,r){let s=r.backgroundJobs;r.backgroundJobs=[];let ...
  function Ype (line 167) | function Ype(t){switch(t.type){case"variable":return t.name==="@"||t.nam...
  function dv (line 167) | function dv(t){switch(t.type){case"redirection":return t.args.some(e=>dv...
  function Gj (line 167) | function Gj(t){switch(t.type){case"variable":return Ype(t);case"number":...
  function qj (line 167) | function qj(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(...
  function vI (line 167) | async function vI(t,e=[],{baseFs:r=new Yn,builtins:s={},cwd:a=fe.toPorta...
  method write (line 170) | write(ie,ue,le){setImmediate(le)}
  function iit (line 170) | function iit(){var t=0,e=1,r=2,s=3,a=4,n=5,c=6,f=7,p=8,h=9,E=10,C=11,S=1...
  function oit (line 170) | function oit(){if(FT)return FT;if(typeof Intl.Segmenter<"u"){let t=new I...
  function the (line 170) | function the(t,{configuration:e,json:r}){if(!e.get("enableMessageNames")...
  function Wj (line 170) | function Wj(t,{configuration:e,json:r}){let s=the(t,{configuration:e,jso...
  function SI (line 170) | async function SI({configuration:t,stdout:e,forceError:r},s){let a=await...
  method constructor (line 175) | constructor({configuration:r,stdout:s,json:a=!1,forceSectionAlignment:n=...
  method start (line 175) | static async start(r,s){let a=new this(r),n=process.emitWarning;process....
  method hasErrors (line 175) | hasErrors(){return this.errorCount>0}
  method exitCode (line 175) | exitCode(){return this.hasErrors()?1:0}
  method getRecommendedLength (line 175) | getRecommendedLength(){let s=this.progressStyle!==null?this.stdout.colum...
  method startSectionSync (line 175) | startSectionSync({reportHeader:r,reportFooter:s,skipIfEmpty:a},n){let c=...
  method startSectionPromise (line 175) | async startSectionPromise({reportHeader:r,reportFooter:s,skipIfEmpty:a},...
  method startTimerImpl (line 175) | startTimerImpl(r,s,a){return{cb:typeof s=="function"?s:a,reportHeader:()...
  method startTimerSync (line 175) | startTimerSync(r,s,a){let{cb:n,...c}=this.startTimerImpl(r,s,a);return t...
  method startTimerPromise (line 175) | async startTimerPromise(r,s,a){let{cb:n,...c}=this.startTimerImpl(r,s,a)...
  method reportSeparator (line 175) | reportSeparator(){this.indent===0?this.writeLine(""):this.reportInfo(nul...
  method reportInfo (line 175) | reportInfo(r,s){if(!this.includeInfos)return;this.commit();let a=this.fo...
  method reportWarning (line 175) | reportWarning(r,s){if(this.warningCount+=1,!this.includeWarnings)return;...
  method reportError (line 175) | reportError(r,s){this.errorCount+=1,this.timerFooter.push(()=>this.repor...
  method reportErrorImpl (line 175) | reportErrorImpl(r,s){this.commit();let a=this.formatNameWithHyperlink(r)...
  method reportFold (line 175) | reportFold(r,s){if(!D0)return;let a=`${D0.start(r)}${s}${D0.end(r)}`;thi...
  method reportProgress (line 175) | reportProgress(r){if(this.progressStyle===null)return{...Promise.resolve...
  method reportJson (line 175) | reportJson(r){this.json&&this.writeLine(`${JSON.stringify(r)}`)}
  method finalize (line 175) | async finalize(){if(!this.includeFooter)return;let r="";this.errorCount>...
  method writeLine (line 175) | writeLine(r,{truncate:s}={}){this.clearProgress({clear:!0}),this.stdout....
  method writeLines (line 176) | writeLines(r,{truncate:s}={}){this.clearProgress({delta:r.length});for(l...
  method commit (line 177) | commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let s of r)...
  method clearProgress (line 177) | clearProgress({delta:r=0,clear:s=!1}){this.progressStyle!==null&&this.pr...
  method writeProgress (line 177) | writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==nu...
  method refreshProgress (line 178) | refreshProgress({delta:r=0,force:s=!1}={}){let a=!1,n=!1;if(s||this.prog...
  method truncate (line 178) | truncate(r,{truncate:s}={}){return this.progressStyle===null&&(s=!1),typ...
  method formatName (line 178) | formatName(r){return this.includeNames?the(r,{configuration:this.configu...
  method formatPrefix (line 178) | formatPrefix(r,s){return this.includePrefix?`${Ht(this.configuration,"\u...
  method formatNameWithHyperlink (line 178) | formatNameWithHyperlink(r){return this.includeNames?Wj(r,{configuration:...
  method formatIndent (line 178) | formatIndent(){return this.level>0||!this.forceSectionAlignment?"\u2502 ...
  function b0 (line 178) | async function b0(t,e,r,s=[]){if(process.platform==="win32"){let a=`@got...
  function ihe (line 180) | async function ihe(t){let e=await 
Condensed preview — 1574 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,234K chars).
[
  {
    "path": ".changeset/config.json",
    "chars": 389,
    "preview": "{\n  \"$schema\": \"https://unpkg.com/@changesets/config@3.1.1/schema.json\",\n  \"changelog\": \"@changesets/cli/changelog\",\n  \""
  },
  {
    "path": ".cursorignore",
    "chars": 147,
    "preview": "# Add directories or file patterns to ignore during indexing (e.g. foo/ or *.csv)\n**/devtools-frontend\n**/.yarn\n**/.pnp."
  },
  {
    "path": ".editorconfig",
    "chars": 134,
    "preview": "root = true\n\n[*]\nend_of_line = lf\ninsert_final_newline = true\n\n[*.{js,json,yml}]\ncharset = utf-8\nindent_style = space\nin"
  },
  {
    "path": ".gitattributes",
    "chars": 238,
    "preview": "/.yarn/**            linguist-vendored\n/.yarn/releases/*    binary\n/.yarn/plugins/**/*  binary\n/.pnp.*              bina"
  },
  {
    "path": ".github/CODEOWNERS",
    "chars": 81,
    "preview": "* @raon0211 @gronxb @heecheolman @l2hyunwoo @intmain @leegeunhyeok @jingjing2222\n"
  },
  {
    "path": ".github/actions/setup-node-yarn/action.yml",
    "chars": 350,
    "preview": "name: Setup Node & Yarn\ndescription: Setup Node & Yarn\n\nruns:\n  using: composite\n  steps:\n    - name: Setup Node\n      u"
  },
  {
    "path": ".github/labeler.yml",
    "chars": 1278,
    "preview": "'docs':\n  - 'docs/**/*'\n'@granite-js/deployment-manager':\n  - 'infra/deployment-manager/**/*'\n'@granite-js/forge-cli':\n "
  },
  {
    "path": ".github/workflows/docs-workflow.yaml",
    "chars": 1459,
    "preview": "name: docs-workflow\n\non:\n  push:\n    branches: [main]\n  workflow_dispatch:\n\npermissions:\n  contents: read\n  pages: write"
  },
  {
    "path": ".github/workflows/integrations.yaml",
    "chars": 3294,
    "preview": "name: Integrations\n\non:\n  push:\n    branches:\n      - main\n  pull_request:\n\njobs:\n  setup:\n    name: Setup\n    runs-on: "
  },
  {
    "path": ".github/workflows/labeler.yml",
    "chars": 286,
    "preview": "name: Labeler\n\non:\n  - pull_request_target\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.ref }}\n  cancel-in-p"
  },
  {
    "path": ".github/workflows/release.yaml",
    "chars": 950,
    "preview": "name: Release\n\non:\n  push:\n    branches:\n      - main\n\nenv:\n  BASE_BRANCH: 'main'\n\nconcurrency: ${{ github.workflow }}-$"
  },
  {
    "path": ".gitignore",
    "chars": 992,
    "preview": ".yarn/*\n!.yarn/patches\n!.yarn/plugins\n!.yarn/releases\n!.yarn/sdks\n!.yarn/versions\n\n# Swap the comments on the following "
  },
  {
    "path": ".nvmrc",
    "chars": 9,
    "preview": "v24.13.0\n"
  },
  {
    "path": ".prettierignore",
    "chars": 75,
    "preview": ".github\n.yarn\n**/coverage\n**/dist\npackages/devtools-frontend/src/front_end\n"
  },
  {
    "path": ".prettierrc",
    "chars": 73,
    "preview": "{\n  \"printWidth\": 120,\n  \"singleQuote\": true,\n  \"trailingComma\": \"es5\"\n}\n"
  },
  {
    "path": ".scripts/check-constraints-yarn-4.sh",
    "chars": 637,
    "preview": "if [[ \"$OSTYPE\" == \"darwin\"* ]]; then\n  sed -i '' \"/  - path: \\.yarn\\/plugins\\/@yarnpkg\\/plugin-workspace-since\\.cjs/d\" "
  },
  {
    "path": ".scripts/check-exports.mts",
    "chars": 7147,
    "preview": "import assert from 'node:assert';\nimport { readFile } from 'node:fs/promises';\nimport { relative, join } from 'node:path"
  },
  {
    "path": ".scripts/check-peer.sh",
    "chars": 298,
    "preview": "OUT=$(yarn | grep -E \"(YN0002|YN0059|YN0060)\")\nif [ -z \"$OUT\" ]; then\n  echo \"No Peer Dependency Errors Found.\"\nelse\n  e"
  },
  {
    "path": ".scripts/check-platform-specific-files.js",
    "chars": 1825,
    "preview": "/**\n * @description\n * 지정한 패키지 내에 플랫폼 식별 파일이 존재하는지 확인하는 스크립트입니다.\n *\n * ```bash\n * node .scripts/check-platform-specific-"
  },
  {
    "path": ".scripts/licenses.mjs",
    "chars": 4491,
    "preview": "import {\n  generateLicenses,\n  targetWorkspaces,\n  consistencyCheckLicenses,\n  getWorkspaces,\n  getLicensesMetaList,\n} f"
  },
  {
    "path": ".scripts/publish-dev.sh",
    "chars": 734,
    "preview": "#!/bin/bash\nset -e\n\necho \"🔄 yarn install\"\nyarn install --immutable\n\necho \"📦 Build Packages\"\nyarn build:all\n\n# Generate d"
  },
  {
    "path": ".scripts/publish-packages.sh",
    "chars": 387,
    "preview": "#!/usr/bin/env bash\n\nfailed=0\n\nwhile IFS= read -r line; do\n  location=$(echo \"$line\" | jq -r '.location')\n  name=$(echo "
  },
  {
    "path": ".scripts/typecheck-rn-68.sh",
    "chars": 1205,
    "preview": "set -eo pipefail;\n\nROOT_DIR=\"$(pwd)\"\n\n# 서비스 코드에서 사용하는 패키지를 대상으로 타입 체크를 진행합니다\nTARGET_PACKAGES=(\n  \"@granite-js/react-nati"
  },
  {
    "path": ".scripts/utils/license-templates.mjs",
    "chars": 2668,
    "preview": "export const apache2 = function (projectName, year, thirdPartyLibraries) {\n  return `NOTICE\n\nThis project makes use of t"
  },
  {
    "path": ".scripts/utils/licenses.mjs",
    "chars": 9108,
    "preview": "import fs from 'fs/promises';\nimport path from 'path';\nimport * as licenseTemplates from './license-templates.mjs';\nimpo"
  },
  {
    "path": ".scripts/utils/parse-licenses.spec.ts",
    "chars": 19760,
    "preview": "import { describe, it, expect } from 'vitest';\nimport { parseLicenses } from './licenses.mjs';\n\ndescribe('parseLicenses'"
  },
  {
    "path": ".scripts/version.sh",
    "chars": 740,
    "preview": "#!/bin/bash\n\nset -e\n\nfunction get_dev_version() {\n  local current_version=$(jq -r '.version' packages/react-native/packa"
  },
  {
    "path": ".vscode/extensions.json",
    "chars": 122,
    "preview": "{\n  \"recommendations\": [\"arcanis.vscode-zipfs\", \"dbaeumer.vscode-eslint\", \"esbenp.prettier-vscode\", \"Orta.vscode-jest\"]\n"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 832,
    "preview": "{\n  \"search.exclude\": {\n    \"**/.yarn\": true,\n    \"**/.nx\": true,\n    \"**/.pnp.*\": true,\n    \"**/devtools-frontend\": tru"
  },
  {
    "path": ".yarn/plugins/@yarnpkg/plugin-catalogs.cjs",
    "chars": 37195,
    "preview": "/* eslint-disable */\n//prettier-ignore\nmodule.exports = {\nname: \"@yarnpkg/plugin-catalogs\",\nfactory: function (require) "
  },
  {
    "path": ".yarn/plugins/plugin-licenses.js",
    "chars": 35462,
    "preview": "/* eslint-disable */\n//prettier-ignore\nmodule.exports = {\nname: \"@yarnpkg/plugin-licenses\",\nfactory: function (require) "
  },
  {
    "path": ".yarn/releases/yarn-4.12.0.cjs",
    "chars": 2992830,
    "preview": "#!/usr/bin/env node\n/* eslint-disable */\n//prettier-ignore\n(()=>{var xGe=Object.create;var mU=Object.defineProperty;var "
  },
  {
    "path": ".yarn/sdks/eslint/bin/eslint.js",
    "chars": 1087,
    "preview": "#!/usr/bin/env node\n\nconst {existsSync} = require(`fs`);\nconst {createRequire, register} = require(`module`);\nconst {res"
  },
  {
    "path": ".yarn/sdks/eslint/lib/api.js",
    "chars": 1045,
    "preview": "#!/usr/bin/env node\n\nconst {existsSync} = require(`fs`);\nconst {createRequire, register} = require(`module`);\nconst {res"
  },
  {
    "path": ".yarn/sdks/eslint/lib/unsupported-api.js",
    "chars": 1108,
    "preview": "#!/usr/bin/env node\n\nconst {existsSync} = require(`fs`);\nconst {createRequire, register} = require(`module`);\nconst {res"
  },
  {
    "path": ".yarn/sdks/eslint/package.json",
    "chars": 288,
    "preview": "{\n  \"name\": \"eslint\",\n  \"version\": \"8.57.0-sdk\",\n  \"main\": \"./lib/api.js\",\n  \"type\": \"commonjs\",\n  \"bin\": {\n    \"eslint\""
  },
  {
    "path": ".yarn/sdks/integrations.yml",
    "chars": 115,
    "preview": "# This file is automatically generated by @yarnpkg/sdks.\n# Manual changes might be lost!\n\nintegrations:\n  - vscode\n"
  },
  {
    "path": ".yarn/sdks/prettier/bin/prettier.cjs",
    "chars": 1102,
    "preview": "#!/usr/bin/env node\n\nconst {existsSync} = require(`fs`);\nconst {createRequire, register} = require(`module`);\nconst {res"
  },
  {
    "path": ".yarn/sdks/prettier/index.cjs",
    "chars": 1048,
    "preview": "#!/usr/bin/env node\n\nconst {existsSync} = require(`fs`);\nconst {createRequire, register} = require(`module`);\nconst {res"
  },
  {
    "path": ".yarn/sdks/prettier/package.json",
    "chars": 129,
    "preview": "{\n  \"name\": \"prettier\",\n  \"version\": \"3.3.3-sdk\",\n  \"main\": \"./index.cjs\",\n  \"type\": \"commonjs\",\n  \"bin\": \"./bin/prettie"
  },
  {
    "path": ".yarn/sdks/typescript/bin/tsc",
    "chars": 1081,
    "preview": "#!/usr/bin/env node\n\nconst {existsSync} = require(`fs`);\nconst {createRequire, register} = require(`module`);\nconst {res"
  },
  {
    "path": ".yarn/sdks/typescript/bin/tsserver",
    "chars": 1096,
    "preview": "#!/usr/bin/env node\n\nconst {existsSync} = require(`fs`);\nconst {createRequire, register} = require(`module`);\nconst {res"
  },
  {
    "path": ".yarn/sdks/typescript/lib/tsc.js",
    "chars": 1090,
    "preview": "#!/usr/bin/env node\n\nconst {existsSync} = require(`fs`);\nconst {createRequire, register} = require(`module`);\nconst {res"
  },
  {
    "path": ".yarn/sdks/typescript/lib/tsserver.js",
    "chars": 9664,
    "preview": "#!/usr/bin/env node\n\nconst {existsSync} = require(`fs`);\nconst {createRequire, register} = require(`module`);\nconst {res"
  },
  {
    "path": ".yarn/sdks/typescript/lib/tsserverlibrary.js",
    "chars": 9685,
    "preview": "#!/usr/bin/env node\n\nconst {existsSync} = require(`fs`);\nconst {createRequire, register} = require(`module`);\nconst {res"
  },
  {
    "path": ".yarn/sdks/typescript/lib/typescript.js",
    "chars": 1057,
    "preview": "#!/usr/bin/env node\n\nconst {existsSync} = require(`fs`);\nconst {createRequire, register} = require(`module`);\nconst {res"
  },
  {
    "path": ".yarn/sdks/typescript/package.json",
    "chars": 181,
    "preview": "{\n  \"name\": \"typescript\",\n  \"version\": \"5.8.3-sdk\",\n  \"main\": \"./lib/typescript.js\",\n  \"type\": \"commonjs\",\n  \"bin\": {\n  "
  },
  {
    "path": ".yarnrc.yml",
    "chars": 1963,
    "preview": "catalogs:\n  brick-module:\n    brick-module: 0.5.0\n  react-native:\n    '@babel/plugin-transform-flow-strip-types': 7.27.1"
  },
  {
    "path": "LICENSE",
    "chars": 11350,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "README-ko_kr.md",
    "chars": 2459,
    "preview": "# Granite &middot; [![Apache 2.0 License](https://img.shields.io/badge/license-Apache-blue.svg)](https://github.com/toss"
  },
  {
    "path": "README.md",
    "chars": 3177,
    "preview": "# Granite &middot; [![Apache 2.0 License](https://img.shields.io/badge/license-Apache-blue.svg)](https://github.com/toss"
  },
  {
    "path": "bin/tools",
    "chars": 223,
    "preview": "#!/usr/bin/env bash\n\nset -euo pipefail\n\nBIN_DIR=$(cd \"$(dirname \"$0\")\" && pwd)\nROOT_DIR=\"${BIN_DIR}/..\"\n\nnode --require "
  },
  {
    "path": "docs/.gitignore",
    "chars": 73,
    "preview": ".vitepress/cache\n.vitepress/dist\ncache\n\n.vitepress/.temp\nconfig.mts.*.mjs"
  },
  {
    "path": "docs/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "docs/.vitepress/config.mts",
    "chars": 381,
    "preview": "import { defineConfig } from 'vitepress';\nimport { en } from './en.mts';\nimport { ko } from './ko.mts';\nimport { shared "
  },
  {
    "path": "docs/.vitepress/en.mts",
    "chars": 1918,
    "preview": "import { type DefaultTheme, defineConfig } from 'vitepress';\nimport referenceManifest from '../reference/manifest.json';"
  },
  {
    "path": "docs/.vitepress/ko.mts",
    "chars": 2508,
    "preview": "import { type DefaultTheme, defineConfig } from 'vitepress';\nimport referenceManifest from '../ko/reference/manifest.jso"
  },
  {
    "path": "docs/.vitepress/shared.mts",
    "chars": 1470,
    "preview": "import { createRequire } from 'module';\nimport path from 'path';\nimport { defineConfig } from 'vitepress';\nimport { sear"
  },
  {
    "path": "docs/.vitepress/theme/custom.css",
    "chars": 519,
    "preview": "@import url('./style.css');\n\n/* .vitepress/theme/custom.css */\n/** https://github.com/vuejs/vitepress/blob/main/src/clie"
  },
  {
    "path": "docs/.vitepress/theme/index.ts",
    "chars": 128,
    "preview": "// .vitepress/theme/index.js\nimport Theme from 'vitepress/theme';\nimport './custom.css';\n\nexport default {\n  extends: Th"
  },
  {
    "path": "docs/.vitepress/theme/style.css",
    "chars": 1706,
    "preview": ":root {\n  --dockit-border: #b0b8c1;\n  --dockit-color-primary: rgb(78, 89, 104);\n  --dockit-red: #f44336;\n  --dockit-gree"
  },
  {
    "path": "docs/.vitepress/utils.ts",
    "chars": 1089,
    "preview": "import referenceManifest from '../reference/manifest.json';\n\nexport function categorizeManifest(manifest: typeof referen"
  },
  {
    "path": "docs/components/UsageSection.vue",
    "chars": 1073,
    "preview": "<template>\n  <section>\n    <div class=\"asset-example\">\n      <img v-if=\"assetType === 'image'\" :src=\"prefixedAssetPath\" "
  },
  {
    "path": "docs/guides/comparison.md",
    "chars": 1241,
    "preview": "# Comparison with Traditional RN\n\nWhile Granite is built on React Native, it offers key advantages over traditional Reac"
  },
  {
    "path": "docs/guides/granite-router/layouts.md",
    "chars": 6292,
    "preview": "<script setup>\n  import UsageSection from '../../components/UsageSection.vue'\n</script>\n\n# Using Layouts\n\nLayouts allow "
  },
  {
    "path": "docs/guides/granite-router/params.md",
    "chars": 10712,
    "preview": "<script setup>\n  import UsageSection from '../../components/UsageSection.vue'\n</script>\n\n# Defining Screen Parameters\n\nW"
  },
  {
    "path": "docs/guides/granite-router/plugin-router.md",
    "chars": 2904,
    "preview": "# Router Plugin\n\nGranite Router is a type-safe router that supports file-based routing and automatically assigns types f"
  },
  {
    "path": "docs/guides/granite-router/routing.md",
    "chars": 12034,
    "preview": "<script setup>\n  import UsageSection from '../../components/UsageSection.vue'\n</script>\n\n# Navigating Screens\n\nGranite R"
  },
  {
    "path": "docs/guides/introduction.md",
    "chars": 956,
    "preview": "# Granite\n\nGranite is an enterprise-grade React Native framework for microservice apps with brownfield integration, 200K"
  },
  {
    "path": "docs/guides/miscellaneous/install-native-app.md",
    "chars": 4503,
    "preview": "# Installing Test App\n\nThe Granite test App is an application for testing deployed bundles. This document guides you thr"
  },
  {
    "path": "docs/guides/quick-start/create-your-app.md",
    "chars": 7651,
    "preview": "# Getting Started with Granite\n\nBuild your first enterprise-grade React Native microservice app in 10 minutes.\n\n## Prere"
  },
  {
    "path": "docs/guides/quick-start/deploy-your-app.md",
    "chars": 5982,
    "preview": "# Deploy & Run Your Granite App\n\nGet your app live on AWS in 5 minutes.\n\n## What Happens When You Deploy\n\n- Upload optim"
  },
  {
    "path": "docs/guides/quick-start/setup-aws.md",
    "chars": 5787,
    "preview": "# Setting Up AWS Infrastructure for Granite\n\nSet up an on-premise React Native CDN infrastructure on AWS in 15 minutes.\n"
  },
  {
    "path": "docs/index.md",
    "chars": 1164,
    "preview": "---\n# https://vitepress.dev/reference/default-theme-home-page\nlayout: home\n\nhero:\n  name: 'Granite'\n  text: 'Enterprise-"
  },
  {
    "path": "docs/ko/guides/comparison.md",
    "chars": 840,
    "preview": "# 기본 RN와의 비교\n\nGranite는 React Native를 기반으로 만들어졌지만, 기본 React Native 개발과 비교했을 때 다음과 같은 장점이 있어요.\n\n|                | Granite"
  },
  {
    "path": "docs/ko/guides/granite-router/layouts.md",
    "chars": 5336,
    "preview": "<script setup>\n  import UsageSection from '../../../components/UsageSection.vue'\n</script>\n\n# 레이아웃 사용하기\n\n레이아웃을 사용하면 여러 페"
  },
  {
    "path": "docs/ko/guides/granite-router/params.md",
    "chars": 8853,
    "preview": "<script setup>\n  import UsageSection from '../../../components/UsageSection.vue'\n</script>\n\n# 화면 파라미터 정의하기\n\n애플리케이션이 [URL"
  },
  {
    "path": "docs/ko/guides/granite-router/plugin-router.md",
    "chars": 2388,
    "preview": "# 라우터 플러그인\n\nGranite Router는 파일 기반 라우팅을 지원하고, 경로별 타입이 자동으로 지정되는 타입-세이프 라우터예요. `pages/` 디렉토리에 파일을 추가하는 것만으로 화면을 만들 수 있어요.\n"
  },
  {
    "path": "docs/ko/guides/granite-router/routing.md",
    "chars": 10719,
    "preview": "<script setup>\n  import UsageSection from '../../../components/UsageSection.vue'\n</script>\n\n# 화면 이동하기\n\nGranite Router는 애"
  },
  {
    "path": "docs/ko/guides/introduction.md",
    "chars": 639,
    "preview": "# Granite\n\nGranite은 기존 iOS/Android 앱과 쉽게 통합할 수 있고, 200KB 내외의 JavaScript 번들 크기, AWS 인프라 지원을 제공하는 엔터프라이즈 레벨 React Native 프"
  },
  {
    "path": "docs/ko/guides/miscellaneous/install-native-app.md",
    "chars": 3552,
    "preview": "# 테스트 앱 설치하기\n\nGranite 테스트 앱은 배포한 번들을 테스트할 수 있는 앱이에요. 이 문서에서는 iOS 시뮬레이터와 안드로이드 기기에서 Granite 테스트 앱을 설치하고 초기 설정하는 방법을 안내해요."
  },
  {
    "path": "docs/ko/guides/quick-start/create-your-app.md",
    "chars": 6213,
    "preview": "# Granite 시작하기\n\n10분 안에 첫 엔터프라이즈급 React Native 마이크로서비스 앱을 만들어보세요.\n\n## 준비물\n\n시작하기 전에 다음 도구들이 설치되어 있는지 확인하세요.\n\n- **Node.js L"
  },
  {
    "path": "docs/ko/guides/quick-start/deploy-your-app.md",
    "chars": 4681,
    "preview": "# Granite 앱 배포하고 실행하기\n\n5분 안에 AWS에 Granite 앱을 배포해보세요.\n\n## 배포할 때 일어나는 일\n\n- 최적화된 번들을 AWS S3 버킷에 업로드\n- CloudFront CDN을 통해 전 "
  },
  {
    "path": "docs/ko/guides/quick-start/setup-aws.md",
    "chars": 4827,
    "preview": "# Granite AWS 인프라 설정하기\n\n15분 안에 AWS에 Granite 앱을 배포하기 위한 React Native CDN 인프라를 구축해보세요.\n\n## 만들게 될 것들\n\n이 가이드를 마치면 다음과 같은 것들을"
  },
  {
    "path": "docs/ko/index.md",
    "chars": 909,
    "preview": "---\n# https://vitepress.dev/reference/default-theme-home-page\nlayout: home\n\nhero:\n  name: 'Granite'\n  text: '엔터프라이즈 Reac"
  },
  {
    "path": "docs/ko/reference/image/ui/Image.md",
    "chars": 3679,
    "preview": "---\nsourcePath: packages/image/src/Image.tsx\n---\n\n# Image\n\n`Image` 컴포넌트를 사용해서 비트맵 이미지(png, jpg 등)나 벡터 이미지(svg)를 로드하고 화면에"
  },
  {
    "path": "docs/ko/reference/manifest.json",
    "chars": 7466,
    "preview": "{\n  \"title\": \"manifest for vitepress sidebar items\",\n  \"description\": \"file list\",\n  \"version\": \"1.0.0\",\n  \"documents\": "
  },
  {
    "path": "docs/ko/reference/react-native/config/defineConfig.md",
    "chars": 2142,
    "preview": "---\nsourcePath: packages/cli/src/config/defineConfig.ts\n---\n\n# defineConfig\n\nGranite 애플리케이션의 주요 설정을 정의해요. `granite.confi"
  },
  {
    "path": "docs/ko/reference/react-native/core/Granite.md",
    "chars": 1753,
    "preview": "---\nsourcePath: packages/react-native/src/app/Granite.tsx\n---\n\n# Granite\n\n## 시그니처\n\n```typescript\nGranite: {\n    register"
  },
  {
    "path": "docs/ko/reference/react-native/core/InitialProps.md",
    "chars": 1732,
    "preview": "---\nsourcePath: packages/react-native/src/initial-props/InitialProps.ts\n---\n\n# InitialProps\n\nReact Native 앱에서 사용자가 특정 화면"
  },
  {
    "path": "docs/ko/reference/react-native/core/useInitialProps.md",
    "chars": 887,
    "preview": "---\nsourcePath: packages/react-native/src/app/context/InitialPropsContext.tsx\n---\n\n# useInitialProps\n\nReact Native 앱에서 특"
  },
  {
    "path": "docs/ko/reference/react-native/core/useIsInitialScreen.md",
    "chars": 1017,
    "preview": "---\nsourcePath: packages/react-native/src/router/hooks/useIsInitialScreen.ts\n---\n\n# useIsInitialScreen\n\n현재 화면이 네비게이션 스택의"
  },
  {
    "path": "docs/ko/reference/react-native/environment-check/getSchemeUri.md",
    "chars": 714,
    "preview": "---\nsourcePath: packages/react-native/src/native-modules/natives/getSchemeUri.ts\n---\n\n# getSchemeUri\n\n처음에 화면에 진입한 스킴 값이에"
  },
  {
    "path": "docs/ko/reference/react-native/environment-check/useInitialSearchParams.md",
    "chars": 1071,
    "preview": "---\nsourcePath: packages/react-native/src/app/context/useInitialSearchParams.tsx\n---\n\n# useInitialSearchParams\n\n앱을 처음 실행"
  },
  {
    "path": "docs/ko/reference/react-native/screen-control/IOFlatList.md",
    "chars": 1463,
    "preview": "---\nsourcePath: packages/react-native/src/intersection-observer/IOFlatList.ts\n---\n\n# IOFlatList\n\n`IOFlatList`는 스크롤 중 특정 "
  },
  {
    "path": "docs/ko/reference/react-native/screen-control/IOScrollView.md",
    "chars": 1461,
    "preview": "---\nsourcePath: packages/react-native/src/intersection-observer/IOScrollView.ts\n---\n\n# IOScrollView\n\n`IOScrollView`는 `In"
  },
  {
    "path": "docs/ko/reference/react-native/screen-control/ImpressionArea.md",
    "chars": 6275,
    "preview": "---\nsourcePath: packages/react-native/src/impression-area/ImpressionArea.tsx\n---\n\n# ImpressionArea\n\n특정 컴포넌트가 화면에 보이는지 여부"
  },
  {
    "path": "docs/ko/reference/react-native/screen-control/InView.md",
    "chars": 4992,
    "preview": "---\nsourcePath: packages/react-native/src/intersection-observer/InView.tsx\n---\n\n# InView\n\n`InView` 컴포넌트는 화면에 요소가 보이기 시작하"
  },
  {
    "path": "docs/ko/reference/react-native/screen-control/closeView.md",
    "chars": 674,
    "preview": "---\nsourcePath: packages/react-native/src/native-modules/natives/closeView.ts\n---\n\n# closeView\n\n현재 화면을 닫는 함수에요. 예를 들어, \""
  },
  {
    "path": "docs/ko/reference/react-native/screen-control/useBackEvent.md",
    "chars": 2343,
    "preview": "---\nsourcePath: packages/react-native/src/use-back-event/useBackEvent.tsx\n---\n\n# useBackEvent\n\n뒤로 가기 이벤트를 등록하고 제거할 수 있는 "
  },
  {
    "path": "docs/ko/reference/react-native/screen-control/useParams.md",
    "chars": 2474,
    "preview": "---\nsourcePath: packages/react-native/src/router/createRoute.ts\n---\n\n# useParams\n\n`useParams`는 지정된 라우트에서 파라미터를 가져오는 훅이에요"
  },
  {
    "path": "docs/ko/reference/react-native/screen-control/useRouterBackHandler.md",
    "chars": 2358,
    "preview": "---\nsourcePath: 'packages/react-native/src/router/components/useRouterBackHandler.tsx'\n---\n\n# useRouterBackHandler\n\n네비게이"
  },
  {
    "path": "docs/ko/reference/react-native/screen-control/useVisibility.md",
    "chars": 1068,
    "preview": "---\nsourcePath: packages/react-native/src/visibility/useVisibility.tsx\n---\n\n# useVisibility\n\n화면이 사용자에게 보이는 상태인지 여부를 반환해요"
  },
  {
    "path": "docs/ko/reference/react-native/screen-control/useVisibilityChange.md",
    "chars": 1440,
    "preview": "---\nsourcePath: packages/react-native/src/visibility/useVisibilityChange.ts\n---\n\n# useVisibilityChange\n\n화면의 보이는 상태가 변경될 "
  },
  {
    "path": "docs/ko/reference/react-native/screen-navigation/openURL.md",
    "chars": 1201,
    "preview": "---\nsourcePath: packages/react-native/src/native-modules/natives/openURL.ts\n---\n\n# openURL\n\n지정된 URL을 기기의 기본 브라우저나 관련 앱에서"
  },
  {
    "path": "docs/ko/reference/react-native/ui/BackButton.md",
    "chars": 2170,
    "preview": "---\nsourcePath: 'packages/react-native/src/router/components/BackButton.tsx'\n---\n\n# BackButton\n\n뒤로 가기 버튼 컴포넌트예요. 이 컴포넌트는"
  },
  {
    "path": "docs/ko/reference/react-native/ui/BlurView.md",
    "chars": 4559,
    "preview": "---\nsourcePath: packages/react-native/src/blur/BlurView.tsx\n---\n\n# BlurView\n\n`BlurView` 컴포넌트는 iOS에서 배경을 블러 처리하는 UI 효과를 줘"
  },
  {
    "path": "docs/ko/reference/react-native/ui/ColorPreference.md",
    "chars": 273,
    "preview": "---\nsourcePath: packages/react-native/src/initial-props/InitialProps.ts\n---\n\n# ColorPreference\n\n현재 기기의 색상 모드를 나타내는 타입이에요"
  },
  {
    "path": "docs/ko/reference/react-native/ui/KeyboardAboveView.md",
    "chars": 1931,
    "preview": "---\nsourcePath: packages/react-native/src/keyboard/KeyboardAboveView.tsx\n---\n\n# KeyboardAboveView\n\n키보드가 화면에 나타날 때 자식 컴포넌"
  },
  {
    "path": "docs/ko/reference/react-native/ui/OnAudioFocusChanged.md",
    "chars": 983,
    "preview": "---\nsourcePath: packages/react-native/src/video/instance.tsx\n---\n\n# OnAudioFocusChanged\n\n오디오 포커스가 변경될 때 호출되는 콜백 함수예요. `m"
  },
  {
    "path": "docs/ko/reference/react-native/ui/ScrollViewInertialBackground.md",
    "chars": 2712,
    "preview": "---\nsourcePath: packages/react-native/src/scroll-view-inertial-background/ScrollViewInertialBackground.tsx\n---\n\n# Scroll"
  },
  {
    "path": "docs/ko/reference/react-native/ui/Video.md",
    "chars": 4795,
    "preview": "---\nsourcePath: packages/react-native/src/video/Video.tsx\n---\n\n# Video\n\nVideo 컴포넌트는 다른 앱에서 음악을 재생 중일 때, 앱에서 그 음악을 중지시키지 "
  },
  {
    "path": "docs/ko/reference/style-utils/ui/Flex.md",
    "chars": 4862,
    "preview": "---\nsourcePath: packages/style-utils/src/flex.tsx\n---\n\n# Flex\n\n`Flex`는 자식 요소들을 [**Flexbox 레이아웃**](https://reactnative.de"
  },
  {
    "path": "docs/ko/reference/style-utils/ui/FlexCenter.md",
    "chars": 3428,
    "preview": "---\nsourcePath: packages/style-utils/src/flex.tsx\n---\n\n# FlexCenter\n\n`Flex.Center`는 자식 요소들을 [**Flexbox 레이아웃**](https://r"
  },
  {
    "path": "docs/ko/reference/style-utils/ui/FlexCenterHorizontal.md",
    "chars": 3463,
    "preview": "---\nsourcePath: packages/style-utils/src/flex.tsx\n---\n\n# FlexCenterHorizontal\n\n`Flex.CenterHorizontal`는 자식 요소들을 [**Flexb"
  },
  {
    "path": "docs/ko/reference/style-utils/ui/FlexCenterVertical.md",
    "chars": 3447,
    "preview": "---\nsourcePath: packages/style-utils/src/flex.tsx\n---\n\n# FlexCenterVertical\n\n`Flex.CenterVertical`는 자식 요소들을 [**Flexbox 레"
  },
  {
    "path": "docs/ko/reference/style-utils/ui/Spacing.md",
    "chars": 2271,
    "preview": "---\nsourcePath: packages/style-utils/src/spacing.tsx\n---\n\n# Spacing\n\n`Spacing`은 빈 공간을 차지해서 여백을 추가하는 컴포넌트예요. 가로 혹은 세로 방향으"
  },
  {
    "path": "docs/ko/reference/style-utils/ui/Stack.md",
    "chars": 4179,
    "preview": "---\nsourcePath: packages/style-utils/src/stack.tsx\n---\n\n# Stack\n\n`Stack`은 자식 요소들을 Stack 방식으로 가로 혹은 세로로 배치하고, 자식 요소 사이에 간"
  },
  {
    "path": "docs/ko/reference/style-utils/ui/StackHorizontal.md",
    "chars": 2639,
    "preview": "---\nsourcePath: packages/style-utils/src/stack.tsx\n---\n\n# StackHorizontal\n\n`Stack.Horizontal`은 자식 요소를 가로로 쌓아 배치하는 컴포넌트에요"
  },
  {
    "path": "docs/ko/reference/style-utils/ui/StackVertical.md",
    "chars": 2518,
    "preview": "---\nsourcePath: packages/style-utils/src/stack.tsx\n---\n\n# StackVertical\n\n`Stack.Vertical`은 자식 요소를 세로로 쌓아 배치하는 컴포넌트에요. 이 "
  },
  {
    "path": "docs/ko/reference/style-utils/ui/margin.md",
    "chars": 16645,
    "preview": "---\nsourcePath: packages/style-utils/src/box-spacing.tsx\n---\n\n# margin\n\n`margin` 함수는 컴포넌트의 외부 간격을 설정해서, 컴포넌트들 간의 적절한 간격을"
  },
  {
    "path": "docs/ko/reference/style-utils/ui/padding.md",
    "chars": 16611,
    "preview": "---\nsourcePath: packages/style-utils/src/box-spacing.tsx\n---\n\n# padding\n\n`padding` 함수는 컴포넌트의 안쪽 여백을 설정함으로써 콘텐츠와 경계 사이에 적"
  },
  {
    "path": "docs/package.json",
    "chars": 427,
    "preview": "{\n  \"name\": \"granite-docs\",\n  \"private\": true,\n  \"devDependencies\": {\n    \"@algolia/client-search\": \"^4.24.0\",\n    \"@typ"
  },
  {
    "path": "docs/reference/image/ui/Image.md",
    "chars": 4169,
    "preview": "---\nsourcePath: packages/image/src/Image.tsx\n---\n\n# Image\n\nYou can use the `Image` component to load and render bitmap i"
  },
  {
    "path": "docs/reference/manifest.json",
    "chars": 7500,
    "preview": "{\n  \"title\": \"manifest for vitepress sidebar items\",\n  \"description\": \"file list\",\n  \"version\": \"1.0.0\",\n  \"documents\": "
  },
  {
    "path": "docs/reference/react-native/config/defineConfig.md",
    "chars": 2868,
    "preview": "---\nsourcePath: packages/cli/src/config/defineConfig.ts\n---\n\n# defineConfig\n\nConfigures your Granite application by defi"
  },
  {
    "path": "docs/reference/react-native/core/Granite.md",
    "chars": 2284,
    "preview": "---\nsourcePath: packages/react-native/src/app/Granite.tsx\n---\n\n# Granite\n\n## Signature\n\n```typescript\nGranite: {\n    reg"
  },
  {
    "path": "docs/reference/react-native/core/InitialProps.md",
    "chars": 2313,
    "preview": "---\nsourcePath: packages/react-native/src/initial-props/InitialProps.ts\n---\n\n# InitialProps\n\nProvides the initial data t"
  },
  {
    "path": "docs/reference/react-native/core/useInitialProps.md",
    "chars": 1099,
    "preview": "---\nsourcePath: packages/react-native/src/app/context/InitialPropsContext.tsx\n---\n\n# useInitialProps\n\nProvides initial d"
  },
  {
    "path": "docs/reference/react-native/core/useIsInitialScreen.md",
    "chars": 1339,
    "preview": "---\nsourcePath: packages/react-native/src/router/hooks/useIsInitialScreen.ts\n---\n\n# useIsInitialScreen\n\nA hook that chec"
  },
  {
    "path": "docs/reference/react-native/environment-check/getSchemeUri.md",
    "chars": 837,
    "preview": "---\nsourcePath: packages/react-native/src/native-modules/natives/getSchemeUri.ts\n---\n\n# getSchemeUri\n\nReturns the scheme"
  },
  {
    "path": "docs/reference/react-native/environment-check/useInitialSearchParams.md",
    "chars": 1426,
    "preview": "---\nsourcePath: packages/react-native/src/app/context/useInitialSearchParams.tsx\n---\n\n# useInitialSearchParams\n\nA hook t"
  },
  {
    "path": "docs/reference/react-native/screen-control/IOFlatList.md",
    "chars": 1795,
    "preview": "---\nsourcePath: packages/react-native/src/intersection-observer/IOFlatList.ts\n---\n\n# IOFlatList\n\n`IOFlatList` is a `Flat"
  },
  {
    "path": "docs/reference/react-native/screen-control/IOScrollView.md",
    "chars": 1712,
    "preview": "---\nsourcePath: packages/react-native/src/intersection-observer/IOScrollView.ts\n---\n\n# IOScrollView\n\n`IOScrollView` is a"
  },
  {
    "path": "docs/reference/react-native/screen-control/ImpressionArea.md",
    "chars": 7449,
    "preview": "---\nsourcePath: packages/react-native/src/impression-area/ImpressionArea.tsx\n---\n\n# ImpressionArea\n\nA component that det"
  },
  {
    "path": "docs/reference/react-native/screen-control/InView.md",
    "chars": 5590,
    "preview": "---\nsourcePath: packages/react-native/src/intersection-observer/InView.tsx\n---\n\n# InView\n\nThe `InView` component detects"
  },
  {
    "path": "docs/reference/react-native/screen-control/closeView.md",
    "chars": 770,
    "preview": "---\nsourcePath: packages/react-native/src/native-modules/natives/closeView.ts\n---\n\n# closeView\n\nFunction that closes the"
  },
  {
    "path": "docs/reference/react-native/screen-control/useBackEvent.md",
    "chars": 2757,
    "preview": "---\nsourcePath: packages/react-native/src/use-back-event/useBackEvent.tsx\n---\n\n# useBackEvent\n\nA Hook that returns a con"
  },
  {
    "path": "docs/reference/react-native/screen-control/useParams.md",
    "chars": 2855,
    "preview": "---\nsourcePath: packages/react-native/src/router/createRoute.ts\n---\n\n# useParams\n\n`useParams` is a hook that retrieves p"
  },
  {
    "path": "docs/reference/react-native/screen-control/useRouterBackHandler.md",
    "chars": 2768,
    "preview": "---\nsourcePath: 'packages/react-native/src/router/components/useRouterBackHandler.tsx'\n---\n\n# useRouterBackHandler\n\nA ho"
  },
  {
    "path": "docs/reference/react-native/screen-control/useVisibility.md",
    "chars": 1404,
    "preview": "---\nsourcePath: packages/react-native/src/visibility/useVisibility.tsx\n---\n\n# useVisibility\n\nReturns whether the screen "
  },
  {
    "path": "docs/reference/react-native/screen-control/useVisibilityChange.md",
    "chars": 1651,
    "preview": "---\nsourcePath: packages/react-native/src/visibility/useVisibilityChange.ts\n---\n\n# useVisibilityChange\n\nCalls a callback"
  },
  {
    "path": "docs/reference/react-native/screen-navigation/openURL.md",
    "chars": 1344,
    "preview": "---\nsourcePath: packages/react-native/src/native-modules/natives/openURL.ts\n---\n\n# openURL\n\nOpens the specified URL in t"
  },
  {
    "path": "docs/reference/react-native/ui/BackButton.md",
    "chars": 2454,
    "preview": "---\nsourcePath: 'packages/react-native/src/router/components/BackButton.tsx'\n---\n\n# BackButton\n\nA back button component."
  },
  {
    "path": "docs/reference/react-native/ui/BlurView.md",
    "chars": 4741,
    "preview": "---\nsourcePath: packages/react-native/src/blur/BlurView.tsx\n---\n\n# BlurView\n\n`BlurView` adds a blurred background effect"
  },
  {
    "path": "docs/reference/react-native/ui/ColorPreference.md",
    "chars": 347,
    "preview": "---\nsourcePath: packages/react-native/src/initial-props/InitialProps.ts\n---\n\n# ColorPreference\n\nType representing the co"
  },
  {
    "path": "docs/reference/react-native/ui/KeyboardAboveView.md",
    "chars": 2222,
    "preview": "---\nsourcePath: packages/react-native/src/keyboard/KeyboardAboveView.tsx\n---\n\n# KeyboardAboveView\n\nA component that auto"
  },
  {
    "path": "docs/reference/react-native/ui/OnAudioFocusChanged.md",
    "chars": 1118,
    "preview": "---\nsourcePath: packages/react-native/src/video/instance.tsx\n---\n\n# OnAudioFocusChanged\n\nThis is a callback function tri"
  },
  {
    "path": "docs/reference/react-native/ui/ScrollViewInertialBackground.md",
    "chars": 3285,
    "preview": "---\nsourcePath: packages/react-native/src/scroll-view-inertial-background/ScrollViewInertialBackground.tsx\n---\n\n# Scroll"
  },
  {
    "path": "docs/reference/react-native/ui/Video.md",
    "chars": 5552,
    "preview": "---\nsourcePath: packages/react-native/src/video/Video.tsx\n---\n\n# Video\n\nThe Video component implements audio focus contr"
  },
  {
    "path": "docs/reference/style-utils/ui/Flex.md",
    "chars": 5638,
    "preview": "---\nsourcePath: packages/style-utils/src/flex.tsx\n---\n\n# Flex\n\n`Flex` is a component that arranges child elements based "
  },
  {
    "path": "docs/reference/style-utils/ui/FlexCenter.md",
    "chars": 4089,
    "preview": "---\nsourcePath: packages/style-utils/src/flex.tsx\n---\n\n# FlexCenter\n\n`Flex.Center` is a component that places child elem"
  },
  {
    "path": "docs/reference/style-utils/ui/FlexCenterHorizontal.md",
    "chars": 4065,
    "preview": "---\nsourcePath: packages/style-utils/src/flex.tsx\n---\n\n# FlexCenterHorizontal\n\n`Flex.CenterHorizontal` is a component fo"
  },
  {
    "path": "docs/reference/style-utils/ui/FlexCenterVertical.md",
    "chars": 4040,
    "preview": "---\nsourcePath: packages/style-utils/src/flex.tsx\n---\n\n# FlexCenterVertical\n\n`Flex.CenterVertical` is a component for **"
  },
  {
    "path": "docs/reference/style-utils/ui/Spacing.md",
    "chars": 2631,
    "preview": "---\nsourcePath: packages/style-utils/src/spacing.tsx\n---\n\n# Spacing\n\n`Spacing` is a component that adds margin by occupy"
  },
  {
    "path": "docs/reference/style-utils/ui/Stack.md",
    "chars": 5003,
    "preview": "---\nsourcePath: packages/style-utils/src/stack.tsx\n---\n\n# Stack\n\n`Stack` is a component that arranges child elements in "
  },
  {
    "path": "docs/reference/style-utils/ui/StackHorizontal.md",
    "chars": 3220,
    "preview": "---\nsourcePath: packages/style-utils/src/stack.tsx\n---\n\n# StackHorizontal\n\n`Stack.Horizontal` is a component that arrang"
  },
  {
    "path": "docs/reference/style-utils/ui/StackVertical.md",
    "chars": 2976,
    "preview": "---\nsourcePath: packages/style-utils/src/stack.tsx\n---\n\n# StackVertical\n\n`Stack.Vertical` is a component that arranges c"
  },
  {
    "path": "docs/reference/style-utils/ui/margin.md",
    "chars": 19096,
    "preview": "---\nsourcePath: packages/style-utils/src/box-spacing.tsx\n---\n\n# margin\n\nThe `margin` function sets the outer spacing of "
  },
  {
    "path": "docs/reference/style-utils/ui/padding.md",
    "chars": 19115,
    "preview": "---\nsourcePath: packages/style-utils/src/box-spacing.tsx\n---\n\n# padding\n\nThe `padding` function sets the inner spacing o"
  },
  {
    "path": "eslint.config.cjs",
    "chars": 4483,
    "preview": "/**\n * https://github.com/microsoft/vscode-eslint/issues/1620#issuecomment-2090780605\n */\n\nconst tseslint = require('typ"
  },
  {
    "path": "infra/deployment-manager/CHANGELOG.md",
    "chars": 550,
    "preview": "# @granite-js/deployment-manager\n\n## 1.0.23\n\n## 1.0.22\n\n## 1.0.21\n\n## 1.0.20\n\n## 1.0.19\n\n## 1.0.18\n\n## 1.0.17\n\n## 1.0.16"
  },
  {
    "path": "infra/deployment-manager/NOTICE",
    "chars": 3036,
    "preview": "NOTICE\n\nThis project makes use of third-party libraries that are licensed under their respective open-source licenses. B"
  },
  {
    "path": "infra/deployment-manager/package.json",
    "chars": 1153,
    "preview": "{\n  \"name\": \"@granite-js/deployment-manager\",\n  \"type\": \"module\",\n  \"version\": \"1.0.23\",\n  \"main\": \"./dist/index.cjs\",\n "
  },
  {
    "path": "infra/deployment-manager/src/DeployManager.spec.ts",
    "chars": 18466,
    "preview": "import { randomUUID } from 'crypto';\nimport { S3Client as BaseS3Client, GetObjectCommand, NoSuchKey } from '@aws-sdk/cli"
  },
  {
    "path": "infra/deployment-manager/src/DeployManager.ts",
    "chars": 713,
    "preview": "import { planRollout } from './planRollout';\nimport { readBundleList } from './readBundleList';\nimport { readCluster } f"
  },
  {
    "path": "infra/deployment-manager/src/constants.ts",
    "chars": 113,
    "preview": "export const MAX_GROUP_ID = 1000;\nexport const BUNDLE_BASE_NAME = 'bundle';\nexport const MAX_HISTORY_COUNT = 50;\n"
  },
  {
    "path": "infra/deployment-manager/src/errors/InternalServerError.ts",
    "chars": 303,
    "preview": "export class InternalServerError<E = unknown> extends Error {\n  constructor(message: string, originError: E) {\n    super"
  },
  {
    "path": "infra/deployment-manager/src/errors/InvalidRequest.ts",
    "chars": 158,
    "preview": "export class InvalidRequest extends Error {\n  constructor(message: string) {\n    super();\n    this.name = 'InvalidReques"
  },
  {
    "path": "infra/deployment-manager/src/errors/NotFoundError.ts",
    "chars": 156,
    "preview": "export class NotFoundError extends Error {\n  constructor(message: string) {\n    super();\n    this.name = 'NotFoundError'"
  },
  {
    "path": "infra/deployment-manager/src/errors/index.ts",
    "chars": 106,
    "preview": "export * from './InternalServerError';\nexport * from './InvalidRequest';\nexport * from './NotFoundError';\n"
  },
  {
    "path": "infra/deployment-manager/src/index.ts",
    "chars": 259,
    "preview": "import { S3Client, paths } from './s3';\n\nexport { DeployManager } from './DeployManager';\nexport { InternalServerError, "
  },
  {
    "path": "infra/deployment-manager/src/planCanaryRollout.ts",
    "chars": 1076,
    "preview": "import { shuffle, range } from 'es-toolkit';\nimport { MAX_GROUP_ID } from './constants';\nimport type { CanaryDeploymentS"
  },
  {
    "path": "infra/deployment-manager/src/planRollout.ts",
    "chars": 2798,
    "preview": "import { planCanaryRollout } from './planCanaryRollout';\nimport { planStableRollout } from './planStableRollout';\nimport"
  },
  {
    "path": "infra/deployment-manager/src/planStableRollout.ts",
    "chars": 314,
    "preview": "import type { StableDeploymentState, DeploymentId } from './types';\n\nexport interface PlanStableRolloutConfig {\n  deploy"
  },
  {
    "path": "infra/deployment-manager/src/readBundleList.ts",
    "chars": 339,
    "preview": "import { paths, type S3Client } from './s3';\nimport type { DeploymentInfo } from './types';\n\nexport async function readB"
  },
  {
    "path": "infra/deployment-manager/src/readCluster.ts",
    "chars": 683,
    "preview": "import { parse } from 'valibot';\nimport { S3Client } from './s3/client';\nimport { paths } from './s3/paths';\nimport { cl"
  },
  {
    "path": "infra/deployment-manager/src/readDeploymentState.ts",
    "chars": 791,
    "preview": "import { parse, ValiError } from 'valibot';\nimport { InternalServerError } from './errors/InternalServerError';\nimport {"
  },
  {
    "path": "infra/deployment-manager/src/resolveBundle.ts",
    "chars": 776,
    "preview": "import { BUNDLE_BASE_NAME } from './constants';\nimport { paths } from './s3/paths';\n\nexport interface ResolveBundleOptio"
  },
  {
    "path": "infra/deployment-manager/src/resolveDeploymentId.ts",
    "chars": 2817,
    "preview": "import { NoSuchBucket, NoSuchKey } from '@aws-sdk/client-s3';\nimport { parse } from 'valibot';\nimport { MAX_GROUP_ID } f"
  },
  {
    "path": "infra/deployment-manager/src/rollout.ts",
    "chars": 445,
    "preview": "import { paths, type S3Client } from './s3';\nimport type { DeploymentState } from './types';\n\nexport async function roll"
  },
  {
    "path": "infra/deployment-manager/src/rolloutCluster.ts",
    "chars": 536,
    "preview": "import { paths, type S3Client } from './s3';\nimport type { DeploymentId } from './types';\n\ninterface ClusterRolloutConfi"
  },
  {
    "path": "infra/deployment-manager/src/s3/client.ts",
    "chars": 1388,
    "preview": "import {\n  S3Client as S3ClientBase,\n  GetObjectCommand,\n  PutObjectCommand,\n  HeadObjectCommand,\n  type PutObjectComman"
  },
  {
    "path": "infra/deployment-manager/src/s3/index.ts",
    "chars": 92,
    "preview": "import { S3Client } from './client';\n\nexport { paths } from './paths';\nexport { S3Client };\n"
  },
  {
    "path": "infra/deployment-manager/src/s3/paths.ts",
    "chars": 591,
    "preview": "export const paths = {\n  bundlePathPrefix: (appName: string, deploymentId: string) => `bundles/${appName}/${deploymentId"
  },
  {
    "path": "infra/deployment-manager/src/s3/utils.ts",
    "chars": 101,
    "preview": "export function isNoSuchKeyError<E extends Error>(error: E) {\n  return error.name === 'NoSuchKey';\n}\n"
  },
  {
    "path": "infra/deployment-manager/src/types.ts",
    "chars": 2025,
    "preview": "import { string, object, literal, array, number, union, InferOutput } from 'valibot';\n\nconst deploymentIdSchema = string"
  },
  {
    "path": "infra/deployment-manager/src/updateBundleList.ts",
    "chars": 726,
    "preview": "import { NoSuchKey } from '@aws-sdk/client-s3';\nimport { readBundleList } from './readBundleList';\nimport { S3Client } f"
  },
  {
    "path": "infra/deployment-manager/src/uploadBundle.ts",
    "chars": 1182,
    "preview": "import * as fs from 'fs';\nimport { resolveBundle } from './resolveBundle';\nimport type { S3Client } from './s3';\nimport "
  },
  {
    "path": "infra/deployment-manager/src/utils/toDeployedAtString.ts",
    "chars": 303,
    "preview": "export function toDeployedAtString(date: Date) {\n  return [\n    date.getFullYear(),\n    (date.getMonth() + 1).toString()"
  },
  {
    "path": "infra/deployment-manager/src/utils/toRuntimeString.ts",
    "chars": 92,
    "preview": "export function toRuntimeString(runtime: string) {\n  return runtime.replace(/\\D+/g, '_');\n}\n"
  },
  {
    "path": "infra/deployment-manager/src/writeBundleList.ts",
    "chars": 478,
    "preview": "import { MAX_HISTORY_COUNT } from './constants';\nimport { paths, type S3Client } from './s3';\nimport type { DeploymentIn"
  },
  {
    "path": "infra/deployment-manager/tsconfig.json",
    "chars": 111,
    "preview": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"types\": [\"node\"]\n  },\n  \"include\": [\"src\"]\n}\n"
  },
  {
    "path": "infra/deployment-manager/tsdown.config.ts",
    "chars": 219,
    "preview": "import { defineConfig } from 'tsdown';\n\nexport default defineConfig([\n  {\n    entry: './src/index.ts',\n    format: ['esm"
  },
  {
    "path": "infra/deployment-manager/tsup.config.ts",
    "chars": 192,
    "preview": "import { defineConfig } from 'tsup';\n\nexport default defineConfig([\n  {\n    entry: ['./src/index.ts'],\n    format: ['esm"
  },
  {
    "path": "infra/forge-cli/CHANGELOG.md",
    "chars": 2840,
    "preview": "# @granite-js/forge-cli\n\n## 1.0.23\n\n### Patch Changes\n\n- @granite-js/deployment-manager@1.0.23\n- @granite-js/plugin-core"
  },
  {
    "path": "infra/forge-cli/NOTICE",
    "chars": 3208,
    "preview": "NOTICE\n\nThis project makes use of third-party libraries that are licensed under their respective open-source licenses. B"
  },
  {
    "path": "infra/forge-cli/README.md",
    "chars": 66,
    "preview": "# @granite-js/forge\n\nA CLI tool for managing Granite applications\n"
  },
  {
    "path": "infra/forge-cli/bin/index.js",
    "chars": 48,
    "preview": "#!/usr/bin/env node\n\nimport '../dist/index.js';\n"
  },
  {
    "path": "infra/forge-cli/package.json",
    "chars": 1122,
    "preview": "{\n  \"name\": \"@granite-js/forge-cli\",\n  \"description\": \"A CLI tool for managing Granite applications\",\n  \"type\": \"module\""
  }
]

// ... and 1374 more files (download for full content)

About this extraction

This page contains the full source code of the toss/granite GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1574 files (6.5 MB), approximately 1.8M tokens, and a symbol index with 8486 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!