diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..7ca1d0a Binary files /dev/null and b/.DS_Store differ diff --git a/.github/.DS_Store b/.github/.DS_Store new file mode 100644 index 0000000..feefe37 Binary files /dev/null and b/.github/.DS_Store differ diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 0000000..a35c30a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,56 @@ +--- +name: 🚨 Bug Report +about: Report something not working +title: "" +labels: "" +assignees: "" +--- + +## Bug Report + +### Capacitor Version + + + +``` +PASTE OUTPUT HERE +``` + +### Platform(s) + + + +### Current Behavior + + + +### Expected Behavior + + + +### Code Reproduction + + + +### Other Technical Details + + + +### Additional Context + + diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md new file mode 100644 index 0000000..a7e50db --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -0,0 +1,41 @@ +--- +name: ⚡️ Feature Request +about: Request a feature or change +title: "" +labels: "" +assignees: "" +--- + +## Feature Request + +### Plugin + + + +### Description + + + +### Platform(s) + + + +### Preferred Solution + + + +### Alternatives + + + +### Additional Context + + diff --git a/.github/ISSUE_TEMPLATE/pull_request_template.md b/.github/ISSUE_TEMPLATE/pull_request_template.md new file mode 100644 index 0000000..3468c93 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/pull_request_template.md @@ -0,0 +1,30 @@ +## Description + + + +## Context + + + + +## Type of changes + + + +- [ ] Fix (non-breaking change which fixes an issue) +- [ ] Feature (non-breaking change which adds functionality) +- [ ] Refactor (cosmetic changes) +- [ ] Breaking change (change that would cause existing functionality to not work as expected) + +## Platforms affected + +- [ ] Android +- [ ] iOS +- [ ] JavaScript + +## Tests + + + + +## Screenshots (if appropriate) diff --git a/.github/actions/setup-tools/action.yml b/.github/actions/setup-tools/action.yml new file mode 100644 index 0000000..754e53e --- /dev/null +++ b/.github/actions/setup-tools/action.yml @@ -0,0 +1,14 @@ +name: 'Setup Tools' +description: 'Setup tools needed in repo' + +runs: + using: 'composite' + steps: + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 23 + - name: Install dependencies + working-directory: ./packages/capacitor-plugin + shell: bash + run: npm i \ No newline at end of file diff --git a/.github/assets/logo.png b/.github/assets/logo.png new file mode 100644 index 0000000..469077f Binary files /dev/null and b/.github/assets/logo.png differ diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml new file mode 100644 index 0000000..31c86bf --- /dev/null +++ b/.github/workflows/continuous_integration.yml @@ -0,0 +1,56 @@ +name: "Continuous Integrations" + +on: + pull_request: + types: [opened, synchronize, reopened] + +jobs: + setup: + uses: ./.github/workflows/reusable_setup.yml + + lint: + needs: 'setup' + uses: ./.github/workflows/reusable_lint.yml + + build: + needs: 'setup' + uses: ./.github/workflows/reusable_build.yml + + verify-plugin: + needs: ['setup', 'lint', 'build'] + runs-on: 'macos-latest' + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + - name: 'Setup Tools' + uses: ./.github/actions/setup-tools + - name: 'Verify iOS + Android + Web' + working-directory: ./packages/capacitor-plugin + run: npm run verify + + build-example-app: + needs: ['verify-plugin'] + runs-on: 'macos-latest' + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + - name: 'Setup Tools' + uses: ./.github/actions/setup-tools + - name: 'Build plugin' + working-directory: ./packages/capacitor-plugin + run: npm run build + - name: 'Install example app dependencies' + working-directory: ./packages/example-app-capacitor + run: npm i + - name: 'Build Web example app' + working-directory: ./packages/example-app-capacitor + run: npm run build + - name: 'Sync example app native platforms' + working-directory: ./packages/example-app-capacitor + run: npx cap sync + - name: 'Build Android example app' + working-directory: ./packages/example-app-capacitor/android + run: ./gradlew clean assembleDebug + - name: 'Build iOS example app' + working-directory: ./packages/example-app-capacitor/ios/App + run: xcodebuild clean build -workspace App.xcworkspace -scheme App CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO \ No newline at end of file diff --git a/.github/workflows/release_plugin.yml b/.github/workflows/release_plugin.yml new file mode 100644 index 0000000..d217872 --- /dev/null +++ b/.github/workflows/release_plugin.yml @@ -0,0 +1,51 @@ +name: "Release Plugin" + +on: + push: + branches: + - development + - next + - main + workflow_dispatch: + +permissions: + contents: write + issues: write + deployments: write + +jobs: + setup: + uses: ./.github/workflows/reusable_setup.yml + secrets: + THE_GH_RELEASE_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }} + + lint: + needs: 'setup' + uses: ./.github/workflows/reusable_lint.yml + secrets: + THE_GH_RELEASE_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }} + + build-packages: + needs: 'setup' + uses: ./.github/workflows/reusable_build.yml + secrets: + THE_GH_RELEASE_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }} + + release: + needs: ['setup','lint','build-packages'] + runs-on: 'ubuntu-latest' + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.CAP_GH_RELEASE_TOKEN }} + - name: 'Setup Tools' + uses: ./.github/actions/setup-tools + - name: Release + working-directory: ./packages/capacitor-plugin + env: + GITHUB_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }} + GH_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} + run: npx semantic-release \ No newline at end of file diff --git a/.github/workflows/reusable_build.yml b/.github/workflows/reusable_build.yml new file mode 100644 index 0000000..705e3d9 --- /dev/null +++ b/.github/workflows/reusable_build.yml @@ -0,0 +1,36 @@ +name: "Build Plugin" + +on: + workflow_call: + secrets: + THE_GH_RELEASE_TOKEN: + required: false + +jobs: + build: + runs-on: "ubuntu-latest" + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.THE_GH_RELEASE_TOKEN || github.token }} + + - name: "Setup Tools" + uses: ./.github/actions/setup-tools + + - name: "Copy README.md in root" + working-directory: ./packages/capacitor-plugin + run: cp README.md README.md.original + + - name: "Build Packages" + working-directory: ./packages/capacitor-plugin + run: npm run build + + - name: "Check README.md changes" + working-directory: ./packages/capacitor-plugin + run: | + if ! cmp --silent README.md README.md.original; then + echo "Detected README.md changes; Do 'npm run build' to update the docs." + exit 1 + fi diff --git a/.github/workflows/reusable_lint.yml b/.github/workflows/reusable_lint.yml new file mode 100644 index 0000000..9cb11fc --- /dev/null +++ b/.github/workflows/reusable_lint.yml @@ -0,0 +1,23 @@ +name: "Lint Plugin" + +on: + workflow_call: + secrets: + THE_GH_RELEASE_TOKEN: + required: false + +jobs: + lint: + runs-on: 'macos-latest' + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + with: + token: ${{ secrets.THE_GH_RELEASE_TOKEN || github.token }} + + - name: 'Setup Tools' + uses: ./.github/actions/setup-tools + + - name: 'Lint Packages' + working-directory: ./packages/capacitor-plugin + run: npm run lint \ No newline at end of file diff --git a/.github/workflows/reusable_setup.yml b/.github/workflows/reusable_setup.yml new file mode 100644 index 0000000..c7549e9 --- /dev/null +++ b/.github/workflows/reusable_setup.yml @@ -0,0 +1,22 @@ +name: "Setup" + +on: + workflow_call: + secrets: + THE_GH_RELEASE_TOKEN: + required: false + +jobs: + setup: + strategy: + matrix: + os: ['ubuntu-latest', 'macos-latest'] + runs-on: ${{ matrix.os }} + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + with: + token: ${{ secrets.THE_GH_RELEASE_TOKEN || github.token }} + + - name: 'Setup Tools' + uses: ./.github/actions/setup-tools \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..4cfe3ce --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +package-lock=false +provenance=true \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..93b24fe --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,6 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [Unreleased] \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..504ccfc --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,71 @@ +# Contributing + +This guide provides instructions for contributing to this Capacitor plugin. + +## Native code + +This repository contains minimal code for native Android and iOS. The implementation for native mobile exists in separate repositories: + +- [Contributing for Android](https://github.com/ionic-team/ion-android-filetransfer?tab=readme-ov-file#contributing) +- [Contributing for iOS](https://github.com/ionic-team/ion-ios-filetransfer?tab=readme-ov-file#contributing) + +## Developing + +### Local Setup + +1. Fork and clone the repo, uncheking the clone `main` branch only option. +2. If you plan to create a new feature or fix a bug, checkout `development` branch (in general Pull Requests should be open for that branch). +3. Install the dependencies. + + ```shell + npm install + ``` + +4. Install SwiftLint if you're on macOS. + + ```shell + brew install swiftlint + ``` + +### Scripts + +#### `npm run build` + +Build the plugin web assets and generate plugin API documentation using [`@capacitor/docgen`](https://github.com/ionic-team/capacitor-docgen). + +It will compile the TypeScript code from `src/` into ESM JavaScript in `dist/esm/`. These files are used in apps with bundlers when your plugin is imported. + +Then, Rollup will bundle the code into a single file at `dist/plugin.js`. This file is used in apps without bundlers by including it as a script in `index.html`. + +#### `npm run verify` + +Build and validate the web and native projects. + +This is useful to run in CI to verify that the plugin builds for all platforms. + +#### `npm run lint` / `npm run fmt` + +Check formatting and code quality, autoformat/autofix if possible. + +This template is integrated with ESLint, Prettier, and SwiftLint. Using these tools is completely optional, but the [Capacitor Community](https://github.com/capacitor-community/) strives to have consistent code style and structure for easier cooperation. + +## Commits/PR's + +Commits and PR's should use the [conventional-commits](https://www.conventionalcommits.org/) format so the release process can version and create changelog correctly. + +## Publishing + +Publishing is automated based on the branch committed to. When a commit or merge is made to a branch a release that corresponds with the branch will be created: + +| Branch Name | Build Type | NPM Tag | Example NPM Version | +| ----------- | ----------------------------- | ------- | ---------------------------------- | +| development | dev | dev | @capacitor/file-transfer@1.0.0-dev.1 | +| next | next (these are betas/alphas) | next | @capacitor/file-transfer@1.0.0-next.1 | +| main | latest | latest | @capacitor/file-transfer@1.0.0 | + +- Dev work should be done by creating and merging PR's into the `development` branch until a feature set is complete enough to form a release. +- When a feature set is complete enough to form a release, merge the `development` branch into the `next` branch where it becomes a beta/alpha tagged under `next` for testing teams to use before full release. In case a PR is opened from `development` to `next`, avoid squashing the commits, to keep the history. +- Upon completed testing the `next` branch is merged into `main` for a full release to be made. In case a PR is opened from `next` to `main`, avoid squashing the commits, to keep the history. +- The `main` branch should then be merged into `dev` and `next` to keep them up to date with the latest code base. + +> **Note**: The [`files`](https://docs.npmjs.com/cli/v7/configuring-npm/package-json#files) array in `package.json` specifies which files get published. If you rename files/directories or add files elsewhere, you may need to update it. diff --git a/package.json b/package.json new file mode 100644 index 0000000..afa6fce --- /dev/null +++ b/package.json @@ -0,0 +1,9 @@ +{ + "name": "root", + "private": true, + "dependencies": {}, + "devDependencies": { + "@types/node": "^20.14.8", + "typescript": "~5.4.5" + } + } \ No newline at end of file diff --git a/packages/.DS_Store b/packages/.DS_Store new file mode 100644 index 0000000..7f500c8 Binary files /dev/null and b/packages/.DS_Store differ diff --git a/packages/capacitor-plugin/.eslintignore b/packages/capacitor-plugin/.eslintignore new file mode 100644 index 0000000..a7e8e21 --- /dev/null +++ b/packages/capacitor-plugin/.eslintignore @@ -0,0 +1,2 @@ +build +dist \ No newline at end of file diff --git a/packages/capacitor-plugin/.gitignore b/packages/capacitor-plugin/.gitignore new file mode 100644 index 0000000..3052ff6 --- /dev/null +++ b/packages/capacitor-plugin/.gitignore @@ -0,0 +1,67 @@ +# node files +dist +node_modules + +# iOS files +Pods +Podfile.lock +Package.resolved +Build +xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc + +# macOS files +.DS_Store + +# Based on Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore + +# Built application files +*.apk +*.ap_ + +# Files for the ART/Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin +gen +out + +# Gradle files +.gradle +build + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation + +# Android Studio captures folder +captures + +# IntelliJ +*.iml +.idea + +# Keystore files +# Uncomment the following line if you do not want to check your keystore files in. +#*.jks + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild diff --git a/packages/capacitor-plugin/.prettierignore b/packages/capacitor-plugin/.prettierignore new file mode 100644 index 0000000..a7e8e21 --- /dev/null +++ b/packages/capacitor-plugin/.prettierignore @@ -0,0 +1,2 @@ +build +dist \ No newline at end of file diff --git a/packages/capacitor-plugin/CapacitorFileTransfer.podspec b/packages/capacitor-plugin/CapacitorFileTransfer.podspec new file mode 100644 index 0000000..1e8c5f7 --- /dev/null +++ b/packages/capacitor-plugin/CapacitorFileTransfer.podspec @@ -0,0 +1,20 @@ +require 'json' + +package = JSON.parse(File.read(File.join(__dir__, 'package.json'))) + +Pod::Spec.new do |s| + s.name = 'CapacitorFileTransfer' + s.version = package['version'] + s.summary = package['description'] + s.license = package['license'] + s.homepage = package['repository']['url'] + s.author = package['author'] + s.source = { :git => package['repository']['url'], :tag => s.version.to_s } + s.source_files = 'ios/Sources/FileTransferPlugin/*.{swift,h,m,c,cc,mm,cpp}' + s.ios.deployment_target = '14.0' + #s.dependency 'FileTransferLib', spec='~> 1.0' + # temporary xcframeowrk dependency - TODO update to official pod (commented line above) once published + s.vendored_frameworks = 'ios/Sources/*/IONFileTransferLib.xcframework' + s.dependency 'Capacitor' + s.swift_version = '5.1' +end diff --git a/packages/capacitor-plugin/LICENSE b/packages/capacitor-plugin/LICENSE new file mode 100644 index 0000000..774efa0 --- /dev/null +++ b/packages/capacitor-plugin/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Ionic + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/capacitor-plugin/Package.swift b/packages/capacitor-plugin/Package.swift new file mode 100644 index 0000000..f2e3c7e --- /dev/null +++ b/packages/capacitor-plugin/Package.swift @@ -0,0 +1,35 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapacitorFileTransfer", + platforms: [.iOS(.v14)], + products: [ + .library( + name: "CapacitorFileTransfer", + targets: ["FileTransferPlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", exact: "7.1.0") + ], + targets: [ + .binaryTarget( + name: "IONFileTransferLib", + // url: "https://github.com/ionic-team/ion-ios-filetransfer/releases/download/1.0.0/IONFileTransferLib.zip", + // checksum: "" // sha-256 + path: "./ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework" + ), + .target( + name: "FileTransferPlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm"), + "IONFileTransferLib" + ], + path: "ios/Sources/FileTransferPlugin"), + .testTarget( + name: "FileTransferPluginTests", + dependencies: ["FileTransferPlugin"], + path: "ios/Tests/FileTransferPluginTests") + ] +) diff --git a/packages/capacitor-plugin/README.md b/packages/capacitor-plugin/README.md new file mode 100644 index 0000000..b024159 --- /dev/null +++ b/packages/capacitor-plugin/README.md @@ -0,0 +1,180 @@ +# @capacitor/file-transfer + +The FileTransfer API provides mechanisms for downloading and uploading files. + +## Install + +```bash +npm install @capacitor/file-transfer +npx cap sync +``` + +## API + + + +* [`downloadFile(...)`](#downloadfile) +* [`uploadFile(...)`](#uploadfile) +* [`addListener('progress', ...)`](#addlistenerprogress-) +* [`removeAllListeners()`](#removealllisteners) +* [Interfaces](#interfaces) + + + + + + +### downloadFile(...) + +```typescript +downloadFile(options: DownloadFileOptions) => Promise +``` + +Perform an HTTP request to a server and download the file to the specified destination. + +| Param | Type | +| ------------- | ------------------------------------------------------------------- | +| **`options`** | DownloadFileOptions | + +**Returns:** Promise<DownloadFileResult> + +**Since:** 1.0.0 + +-------------------- + + +### uploadFile(...) + +```typescript +uploadFile(options: UploadFileOptions) => Promise +``` + +Perform an HTTP request to upload a file to a server + +| Param | Type | +| ------------- | --------------------------------------------------------------- | +| **`options`** | UploadFileOptions | + +**Returns:** Promise<UploadFileResult> + +**Since:** 1.0.0 + +-------------------- + + +### addListener('progress', ...) + +```typescript +addListener(eventName: "progress", listenerFunc: (progress: ProgressStatus) => void) => Promise +``` + +Add a listener to file transfer (download or upload) progress events. + +| Param | Type | +| ------------------ | -------------------------------------------------------------------------------- | +| **`eventName`** | 'progress' | +| **`listenerFunc`** | (progress: ProgressStatus) => void | + +**Returns:** Promise<PluginListenerHandle> + +**Since:** 1.0.0 + +-------------------- + + +### removeAllListeners() + +```typescript +removeAllListeners() => Promise +``` + +Remove all listeners for this plugin. + +**Since:** 1.0.0 + +-------------------- + + +### Interfaces + + +#### DownloadFileResult + +| Prop | Type | Description | Since | +| ---------- | ------------------- | -------------------------------------------------------------------- | ----- | +| **`path`** | string | The path the file was downloaded to. | 1.0.0 | +| **`blob`** | Blob | The blob data of the downloaded file. This is only available on web. | 1.0.0 | + + +#### DownloadFileOptions + +| Prop | Type | Description | Since | +| -------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | +| **`path`** | string | The full file path the downloaded file should be moved to. | 1.0.0 | +| **`progress`** | boolean | If true, progress event will be dispatched on every chunk received. See addListener() for more information. Chunks are throttled to every 100ms on Android/iOS to avoid slowdowns. | 1.0.0 | + + +#### UploadFileResult + +| Prop | Type | Description | Since | +| ------------------ | --------------------------------------- | ------------------------------------------------------ | ----- | +| **`bytesSent`** | number | Total number of bytes uploaded | 1.0.0 | +| **`responseCode`** | string | HTTP response code for the upload | 1.0.0 | +| **`response`** | string | HTTP response body from the upload (when available) | 1.0.0 | +| **`headers`** | { [key: string]: string; } | HTTP headers from the upload response (when available) | 1.0.0 | + + +#### UploadFileOptions + +| Prop | Type | Description | Since | +| ----------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | +| **`path`** | string | Full file path of the file to upload. | 1.0.0 | +| **`blob`** | Blob | Blob data to upload. Will use this instead of path if provided. This is only available on web. | 1.0.0 | +| **`chunkedMode`** | boolean | Whether to upload data in a chunked streaming mode. Not supported on web. | 1.0.0 | +| **`mimeType`** | string | Mime type of the data to upload. Only used if "Content-Type" header was not provided. | 1.0.0 | +| **`fileKey`** | string | Type of form element. The default is set to "file". Only used if "Content-Type" header was not provided. | 1.0.0 | +| **`progress`** | boolean | If true, progress event will be dispatched on every chunk received. See addListener() for more information. Chunks are throttled to every 100ms on Android/iOS to avoid slowdowns. | 1.0.0 | + + +#### PluginListenerHandle + +| Prop | Type | +| ------------ | ----------------------------------------- | +| **`remove`** | () => Promise<void> | + + +#### ProgressStatus + +| Prop | Type | Description | Since | +| ---------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----- | +| **`type`** | 'download' \| 'upload' | The type of transfer operation (download or upload). | 1.0.0 | +| **`url`** | string | The url of the file associated with the transfer (download or upload). | 1.0.0 | +| **`bytes`** | number | The number of bytes transferred so far. | 1.0.0 | +| **`contentLength`** | number | The total number of bytes associated with the file transfer. | 1.0.0 | +| **`lengthComputable`** | boolean | Whether or not the contentLength value is relevant. In some situations, the total number of bytes may not be possible to determine. | 1.0.0 | + + + +### Errors +The plugin returns the following errors with specific codes on iOS, Android, and Web: + +| Error code | Platform(s) | Description | +|-------------------|------------------|----------------------------------| +| OS-PLUG-FLTR-0005 | Android, iOS | The method's input parameters aren't valid. | +| OS-PLUG-FLTR-0006 | Android, iOS | Invalid server URL was provided or URL is empty. | +| OS-PLUG-FLTR-0007 | Android, iOS | Unable to perform operation, user denied permission request. | +| OS-PLUG-FLTR-0008 | Android, iOS | Operation failed because file does not exist. | +| OS-PLUG-FLTR-0009 | Android, iOS, Web | Failed to connect to server. | +| OS-PLUG-FLTR-0010 | Android, iOS | The server responded with HTTP 304 – Not Modified. If you want to avoid this, check your headers related to HTTP caching. | +| OS-PLUG-FLTR-0011 | Android, iOS | The server responded with an HTTP error status code. | +| OS-PLUG-FLTR-0012 | Android, iOS, Web | The operation failed with an error (generic error). | + +When handling errors in your application, you can check the error code to determine the specific issue. The error object typically contains additional information such as: + +- `code`: The error code (as shown in the table above) +- `message`: A human-readable description of the error +- `source`: The source of the transfer (file path or URL) +- `target`: The target of the transfer (file path or URL) +- `httpStatus`: The HTTP status code (for HTTP errors) +- `body`: The response body (for HTTP errors) +- `headers`: The response headers (for HTTP errors) diff --git a/packages/capacitor-plugin/android/.gitignore b/packages/capacitor-plugin/android/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/packages/capacitor-plugin/android/.gitignore @@ -0,0 +1 @@ +/build diff --git a/packages/capacitor-plugin/android/build.gradle b/packages/capacitor-plugin/android/build.gradle new file mode 100644 index 0000000..e687d31 --- /dev/null +++ b/packages/capacitor-plugin/android/build.gradle @@ -0,0 +1,69 @@ +ext { + junitVersion = project.hasProperty('junitVersion') ? rootProject.ext.junitVersion : '4.13.2' + androidxAppCompatVersion = project.hasProperty('androidxAppCompatVersion') ? rootProject.ext.androidxAppCompatVersion : '1.7.0' + androidxJunitVersion = project.hasProperty('androidxJunitVersion') ? rootProject.ext.androidxJunitVersion : '1.2.1' + androidxEspressoCoreVersion = project.hasProperty('androidxEspressoCoreVersion') ? rootProject.ext.androidxEspressoCoreVersion : '3.6.1' +} + +buildscript { + ext.kotlin_version = project.hasProperty("kotlin_version") ? rootProject.ext.kotlin_version : '1.9.24' + repositories { + google() + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:8.7.3' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' + +android { + namespace "com.capacitorjs.plugins.filetransfer" + compileSdk project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 35 + defaultConfig { + minSdkVersion project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : 23 + targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 35 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + lintOptions { + abortOnError false + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_21 + targetCompatibility JavaVersion.VERSION_21 + } +} + +kotlin { + jvmToolchain(21) +} + +repositories { + google() + mavenCentral() +} + + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar']) + implementation project(':capacitor-android') + // TODO replace with 1.0.0 once an official release of the native library is done + implementation "io.ionic.libs:ionfiletransfer-android:0.0.1" + implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion" + + testImplementation "junit:junit:$junitVersion" + + androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion" + androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion" +} diff --git a/packages/capacitor-plugin/android/gradle.properties b/packages/capacitor-plugin/android/gradle.properties new file mode 100644 index 0000000..2e87c52 --- /dev/null +++ b/packages/capacitor-plugin/android/gradle.properties @@ -0,0 +1,22 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true diff --git a/packages/capacitor-plugin/android/gradle/wrapper/gradle-wrapper.jar b/packages/capacitor-plugin/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..a4b76b9 Binary files /dev/null and b/packages/capacitor-plugin/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/packages/capacitor-plugin/android/gradle/wrapper/gradle-wrapper.properties b/packages/capacitor-plugin/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c1d5e01 --- /dev/null +++ b/packages/capacitor-plugin/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/packages/capacitor-plugin/android/gradlew b/packages/capacitor-plugin/android/gradlew new file mode 100755 index 0000000..f5feea6 --- /dev/null +++ b/packages/capacitor-plugin/android/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# 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 +# +# https://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. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/packages/capacitor-plugin/android/gradlew.bat b/packages/capacitor-plugin/android/gradlew.bat new file mode 100644 index 0000000..9b42019 --- /dev/null +++ b/packages/capacitor-plugin/android/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/packages/capacitor-plugin/android/proguard-rules.pro b/packages/capacitor-plugin/android/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/packages/capacitor-plugin/android/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/packages/capacitor-plugin/android/settings.gradle b/packages/capacitor-plugin/android/settings.gradle new file mode 100644 index 0000000..1e5b843 --- /dev/null +++ b/packages/capacitor-plugin/android/settings.gradle @@ -0,0 +1,2 @@ +include ':capacitor-android' +project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor') \ No newline at end of file diff --git a/packages/capacitor-plugin/android/src/main/AndroidManifest.xml b/packages/capacitor-plugin/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000..cc947c5 --- /dev/null +++ b/packages/capacitor-plugin/android/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/packages/capacitor-plugin/android/src/main/java/com/capacitorjs/plugins/filetransfer/FileTransferErrors.kt b/packages/capacitor-plugin/android/src/main/java/com/capacitorjs/plugins/filetransfer/FileTransferErrors.kt new file mode 100644 index 0000000..e16fbaa --- /dev/null +++ b/packages/capacitor-plugin/android/src/main/java/com/capacitorjs/plugins/filetransfer/FileTransferErrors.kt @@ -0,0 +1,121 @@ +package com.capacitorjs.plugins.filetransfer + +import com.getcapacitor.JSObject +import io.ionic.libs.ionfiletransferlib.model.IONFLTRException + +object FileTransferErrors { + fun formatErrorCode(number: Int): String { + return "OS-PLUG-FLTR-" + number.toString().padStart(4, '0') + } + + data class ErrorInfo( + val code: String, + val message: String, + val source: String? = null, + val target: String? = null, + val httpStatus: Int? = null, + val body: String? = null, + val headers: Map>? = null, + val exception: String? = null + ) { + /** + * Converts the ErrorInfo to a JSObject that can be passed to PluginCall.reject + */ + fun toJSObject(): JSObject { + return JSObject().apply { + put("code", code) + put("message", message) + if (source != null) put("source", source) + if (target != null) put("target", target) + if (httpStatus != null) put("httpStatus", httpStatus) + if (body != null) put("body", body) + + if (headers != null) { + val headersObj = JSObject() + headers.forEach { (key, values) -> + headersObj.put(key, values.firstOrNull() ?: "") + } + put("headers", headersObj) + } + + if (exception != null) put("exception", exception) + } + } + } + + val invalidParameters = ErrorInfo( + code = formatErrorCode(4), + message = "The method's input parameters aren't valid." + ) + + fun invalidServerUrl(url: String) = if (url.isBlank()) { + urlEmpty + } else { + ErrorInfo( + code = formatErrorCode(5), + message = "Invalid server URL was provided - $url", + source = url + ) + } + + val permissionDenied = ErrorInfo( + code = formatErrorCode(6), + message = "Unable to perform operation, user denied permission request." + ) + + val fileDoesNotExist = ErrorInfo( + code = formatErrorCode(7), + message = "Operation failed because file does not exist." + ) + + val connectionError = ErrorInfo( + code = formatErrorCode(8), + message = "Failed to connect to server." + ) + + val notModified = ErrorInfo( + code = formatErrorCode(9), + message = "The server responded with HTTP 304 – Not Modified. If you want to avoid this, check your headers related to HTTP caching.", + httpStatus = 304 + ) + + fun httpError(responseCode: String, message: String, responseBody: String?, headers: Map>?) = ErrorInfo( + code = formatErrorCode(10), + message = "HTTP error: $responseCode - $message", + httpStatus = responseCode.toIntOrNull(), + body = responseBody, + headers = headers, + exception = message + ) + + fun genericError(cause: Throwable) = ErrorInfo( + code = formatErrorCode(11), + message = "The operation failed with an error - ${cause.localizedMessage}", + exception = cause.localizedMessage + ) + + val urlEmpty = ErrorInfo( + code = formatErrorCode(5), + message = "URL to connect to is either null or empty." + ) +} + +fun Throwable.toFileTransferError(): FileTransferErrors.ErrorInfo = when (this) { + is IONFLTRException.InvalidPath -> FileTransferErrors.invalidParameters + is IONFLTRException.EmptyURL -> FileTransferErrors.urlEmpty + is IONFLTRException.InvalidURL -> FileTransferErrors.invalidServerUrl(url) + is IONFLTRException.FileDoesNotExist -> FileTransferErrors.fileDoesNotExist + is IONFLTRException.CannotCreateDirectory -> FileTransferErrors.genericError(this) + is IONFLTRException.HttpError -> { + if (responseCode == "304") { + FileTransferErrors.notModified + } else { + FileTransferErrors.httpError(responseCode, message, responseBody, headers) + } + } + is IONFLTRException.ConnectionError -> FileTransferErrors.connectionError + is IONFLTRException.TransferError -> FileTransferErrors.genericError(this) + is IONFLTRException.UnknownError -> FileTransferErrors.genericError(this) + is SecurityException -> FileTransferErrors.permissionDenied + else -> FileTransferErrors.genericError(this) +} \ No newline at end of file diff --git a/packages/capacitor-plugin/android/src/main/java/com/capacitorjs/plugins/filetransfer/FileTransferPlugin.kt b/packages/capacitor-plugin/android/src/main/java/com/capacitorjs/plugins/filetransfer/FileTransferPlugin.kt new file mode 100644 index 0000000..0c86593 --- /dev/null +++ b/packages/capacitor-plugin/android/src/main/java/com/capacitorjs/plugins/filetransfer/FileTransferPlugin.kt @@ -0,0 +1,341 @@ +package com.capacitorjs.plugins.filetransfer + +import android.Manifest +import android.content.Context +import android.media.MediaScannerConnection +import android.os.Build +import android.os.Environment +import com.getcapacitor.JSObject +import com.getcapacitor.PermissionState +import com.getcapacitor.Plugin +import com.getcapacitor.PluginCall +import com.getcapacitor.PluginMethod +import com.getcapacitor.annotation.CapacitorPlugin +import com.getcapacitor.annotation.Permission +import com.getcapacitor.annotation.PermissionCallback +import io.ionic.libs.ionfiletransferlib.IONFLTRController +import io.ionic.libs.ionfiletransferlib.model.IONFLTRDownloadOptions +import io.ionic.libs.ionfiletransferlib.model.IONFLTRProgressStatus +import io.ionic.libs.ionfiletransferlib.model.IONFLTRTransferHttpOptions +import io.ionic.libs.ionfiletransferlib.model.IONFLTRTransferResult +import io.ionic.libs.ionfiletransferlib.model.IONFLTRUploadOptions +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.cancel +import kotlinx.coroutines.flow.catch +import kotlinx.coroutines.flow.launchIn +import kotlinx.coroutines.flow.onEach + +@CapacitorPlugin( + name = "FileTransfer", + permissions = [ + Permission( + strings = [Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE], + alias = "publicStorage" + ) + ] +) +class FileTransferPlugin : Plugin() { + + companion object { + const val PUBLIC_STORAGE = "publicStorage" + private const val PROGRESS_UPDATE_INTERVAL = 100L // 100ms between progress updates + private const val DEFAULT_TIMEOUT_MS = 60000 // Default timeout of 60 seconds + } + + private val ioScope: CoroutineScope by lazy { CoroutineScope(Dispatchers.IO) } + private val controller: IONFLTRController by lazy { IONFLTRController(context) } + private lateinit var context: Context + private var lastProgressUpdate = 0L + + override fun load() { + super.load() + context = bridge.context + } + + override fun handleOnDestroy() { + super.handleOnDestroy() + ioScope.cancel() + } + + private fun JSObject.toMap(): Map { + val map = mutableMapOf() + keys().forEach { key -> + map[key] = getString(key).orEmpty() + } + return map + } + + private fun JSObject.toParamsMap(): Map> { + val map = mutableMapOf>() + keys().forEach { key -> + when (val value = opt(key)) { + is String -> map[key] = arrayOf(value) + is org.json.JSONArray -> { + val values = mutableListOf() + for (i in 0 until value.length()) { + value.optString(i).takeIf { it.isNotEmpty() }?.let { values.add(it) } + } + if (values.isNotEmpty()) { + map[key] = values.toTypedArray() + } + } + } + } + return map + } + + /** + * Notify progress to listeners + * Throttled to every 100ms to avoid excessive callbacks + * + * @param transferType The type of transfer ("download" or "upload") + * @param url The URL of the file being transferred + * @param status The status of the transfer containing bytes, contentLength, etc. + * @param forceUpdate If true, sends the update regardless of throttling + */ + private fun notifyProgress(transferType: String, url: String, status: IONFLTRProgressStatus, forceUpdate: Boolean = false) { + val currentTime = System.currentTimeMillis() + if (forceUpdate || currentTime - lastProgressUpdate >= PROGRESS_UPDATE_INTERVAL) { + val progressData = JSObject().apply { + put("type", transferType) + put("url", url) + put("bytes", status.bytes) + put("contentLength", status.contentLength) + put("lengthComputable", status.lengthComputable) + } + notifyListeners("progress", progressData) + lastProgressUpdate = currentTime + } + } + + /** + * Creates HTTP options for transfer operations based on plugin call parameters + * + * @param call The plugin call containing HTTP options + * @param defaultMethod The default HTTP method to use if not specified in the call + * @return Configured HTTP options for the transfer operation + */ + private fun createHttpOptions(call: PluginCall, defaultMethod: String): IONFLTRTransferHttpOptions { + val headers = call.getObject("headers") ?: JSObject() + val params = call.getObject("params") ?: JSObject() + + return IONFLTRTransferHttpOptions( + method = call.getString("method") ?: defaultMethod, + headers = headers.toMap(), + params = params.toParamsMap(), + shouldEncodeUrlParams = call.getBoolean("shouldEncodeUrlParams", true) ?: true, + readTimeout = call.getInt("readTimeout", DEFAULT_TIMEOUT_MS) ?: DEFAULT_TIMEOUT_MS, + connectTimeout = call.getInt("connectTimeout", DEFAULT_TIMEOUT_MS) ?: DEFAULT_TIMEOUT_MS, + disableRedirects = call.getBoolean("disableRedirects", false) ?: false + ) + } + + @PluginMethod + fun downloadFile(call: PluginCall) { + val url = call.getString("url") ?: run { + call.sendError(FileTransferErrors.invalidParameters, "URL is required") + return + } + val filePath = call.getString("path") ?: run { + call.sendError(FileTransferErrors.invalidParameters, "Path is required") + return + } + + // Check for storage permissions before proceeding + if (!isStoragePermissionGranted()) { + requestAllPermissions(call, "permissionCallback") + return + } + + val progress = call.getBoolean("progress", false) ?: false + val httpOptions = createHttpOptions(call, "GET") + + val options = IONFLTRDownloadOptions( + url = url, + filePath = filePath, + httpOptions = httpOptions + ) + + controller.downloadFile(options) + .onEach { result -> + when (result) { + is IONFLTRTransferResult.Ongoing -> { + if (progress) { + notifyProgress("download", url, result.status) + } + } + is IONFLTRTransferResult.Complete -> { + // Send a final progress update with 100% completion + if (progress) { + val contentLength = result.data.totalBytes + val finalStatus = IONFLTRProgressStatus( + bytes = contentLength, + contentLength = contentLength, + lengthComputable = true + ) + notifyProgress("download", url, finalStatus, forceUpdate = true) + } + + // Update MediaStore if the file is in a public directory + if (isPublicDirectory(filePath)) { + MediaScannerConnection.scanFile(context, arrayOf(filePath), null, null) + } + + val response = JSObject().apply { + put("path", filePath) + } + call.resolve(response) + } + } + } + .catch { error -> + val errorInfo = error.toFileTransferError().copy( + source = url, + target = filePath + ) + call.sendError(errorInfo) + } + .launchIn(ioScope) + } + + @PluginMethod + fun uploadFile(call: PluginCall) { + val url = call.getString("url") ?: run { + call.sendError(FileTransferErrors.invalidParameters, "URL is required") + return + } + val filePath = call.getString("path") ?: run { + call.sendError(FileTransferErrors.invalidParameters, "Path is required") + return + } + + // Check for storage permissions before proceeding + if (!isStoragePermissionGranted()) { + requestAllPermissions(call, "permissionCallback") + return + } + + val progress = call.getBoolean("progress", false) ?: false + val chunkedMode = call.getBoolean("chunkedMode", false) ?: false + val mimeType = call.getString("mimeType") + val fileKey = call.getString("fileKey") ?: "file" + + val httpOptions = createHttpOptions(call, "POST") + + val options = IONFLTRUploadOptions( + url = url, + filePath = filePath, + chunkedMode = chunkedMode, + mimeType = mimeType, + fileKey = fileKey, + httpOptions = httpOptions + ) + + controller.uploadFile(options) + .onEach { result -> + when (result) { + is IONFLTRTransferResult.Ongoing -> { + if (progress) { + notifyProgress("upload", url, result.status) + } + } + is IONFLTRTransferResult.Complete -> { + // Send a final progress update with 100% completion + if (progress) { + val contentLength = result.data.totalBytes + val finalStatus = IONFLTRProgressStatus( + bytes = contentLength, + contentLength = contentLength, + lengthComputable = true + ) + notifyProgress("upload", url, finalStatus, forceUpdate = true) + } + + val response = JSObject().apply { + put("bytesSent", result.data.totalBytes) + put("responseCode", result.data.responseCode) + put("response", result.data.responseBody) + put("headers", result.data.headers) + } + call.resolve(response) + } + } + } + .catch { error -> + val errorInfo = error.toFileTransferError().copy( + source = filePath, + target = url + ) + call.sendError(errorInfo) + } + .launchIn(ioScope) + } + + /** + * Permission callback for when the user responds to permission requests + */ + @PermissionCallback + private fun permissionCallback(call: PluginCall) { + if (!isStoragePermissionGranted()) { + val errorInfo = FileTransferErrors.permissionDenied.copy( + source = if (call.methodName == "uploadFile") call.getString("path") else call.getString("url"), + target = if (call.methodName == "uploadFile") call.getString("url") else call.getString("path") + ) + call.sendError(errorInfo) + return + } + + when (call.methodName) { + "downloadFile" -> downloadFile(call) + "uploadFile" -> uploadFile(call) + } + } + + /** + * Extension function for PluginCall to send an error with the appropriate format + * @param error The ErrorInfo containing error details + * @param customMessage Optional custom message to override the error's default message + */ + private fun PluginCall.sendError(error: FileTransferErrors.ErrorInfo, customMessage: String? = null) { + val errorObject = error.toJSObject() + if (customMessage != null) { + // Override the default message if a custom one is provided + errorObject.put("message", customMessage) + this.reject(customMessage, error.code, errorObject) + } else { + this.reject(error.message, error.code, errorObject) + } + } + + /** + * Checks if the storage permission is granted + * @return Returns true if the app is running on Android 30 or newer or if the permission is already granted + * or false if it is denied. + */ + private fun isStoragePermissionGranted(): Boolean { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.R || getPermissionState(PUBLIC_STORAGE) == PermissionState.GRANTED + } + + /** + * Checks if the file path is in a public directory (not in app-specific directories) + * @param filePath The file path to check + * @return Returns true if the file path is in a public directory + */ + private fun isPublicDirectory(filePath: String): Boolean { + // Check if the path is in external storage + val externalStoragePath = Environment.getExternalStorageDirectory().absolutePath + + // Get package directory paths + val appPrivatePaths = listOf( + context.filesDir.absolutePath, + context.cacheDir.absolutePath, + context.getExternalFilesDir(null)?.absolutePath, + context.externalCacheDir?.absolutePath + ) + + // Check if path is in external storage but not in app-specific directories + return filePath.startsWith(externalStoragePath) && + appPrivatePaths.none { it != null && filePath.startsWith(it) } + } +} \ No newline at end of file diff --git a/packages/capacitor-plugin/android/src/main/res/.gitkeep b/packages/capacitor-plugin/android/src/main/res/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/capacitor-plugin/android/src/test/java/com/capacitorjs/plugins/filetransfer/ExampleUnitTest.java b/packages/capacitor-plugin/android/src/test/java/com/capacitorjs/plugins/filetransfer/ExampleUnitTest.java new file mode 100644 index 0000000..a0fed0c --- /dev/null +++ b/packages/capacitor-plugin/android/src/test/java/com/capacitorjs/plugins/filetransfer/ExampleUnitTest.java @@ -0,0 +1,18 @@ +package com.getcapacitor; + +import static org.junit.Assert.*; + +import org.junit.Test; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + + @Test + public void addition_isCorrect() throws Exception { + assertEquals(4, 2 + 2); + } +} diff --git a/packages/capacitor-plugin/ios/.gitignore b/packages/capacitor-plugin/ios/.gitignore new file mode 100644 index 0000000..afb34f8 --- /dev/null +++ b/packages/capacitor-plugin/ios/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc \ No newline at end of file diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/FileTransferErrors.swift b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/FileTransferErrors.swift new file mode 100644 index 0000000..70d9c33 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/FileTransferErrors.swift @@ -0,0 +1,192 @@ +import Foundation +import Capacitor +import IONFileTransferLib + +/// A structured error type used in file transfer operations. +/// +/// `FileTransferError` represents various error states that can occur during file uploads and downloads, +/// including validation issues, connection problems, HTTP response errors, and file system errors. +struct FileTransferError: Error { + + /// A error code in the format `OS-PLUG-FLTR-XXXX`. + let code: String + + /// A human-readable error message. + let message: String + + /// The source URL or path related to the error, if available. + var source: String? + + /// The target URL or path related to the error, if available. + var target: String? + + /// The HTTP status code, if the error is related to a network response. + let httpStatus: Int? + + /// The response body returned by the server, if any. + let body: String? + + /// The response headers returned by the server, if any. + let headers: [String: String]? + + /// The underlying error that caused this error, if any. + let cause: Error? + + /// Creates a new `FileTransferError` with the given values. + /// + /// - Parameters: + /// - code: A numeric code that will be formatted internally. + /// - message: A human-readable message describing the error. + /// - source: The original input source, such as a URL or path. + /// - target: The intended destination, such as a URL or path. + /// - httpStatus: Optional HTTP status code if error was a network response. + /// - body: Optional response body. + /// - headers: Optional response headers. + /// - cause: Optional underlying error. + init( + code: Int, + message: String, + source: String? = nil, + target: String? = nil, + httpStatus: Int? = nil, + body: String? = nil, + headers: [String: String]? = nil, + cause: Error? = nil + ) { + self.code = String(format: "OS-PLUG-FLTR-%04d", code) + self.message = message + self.source = source + self.target = target + self.httpStatus = httpStatus + self.body = body + self.headers = headers + self.cause = cause + } + + /// A dictionary representation of the error for use in JavaScript or other serialization contexts. + /// + /// This includes the code, message, and optional metadata such as HTTP status, + /// headers, body, and exception description. + var errorInfo: JSObject { + var info: JSObject = [ + "code": code, + "message": message + ] + if let httpStatus = httpStatus { info["httpStatus"] = httpStatus } + if let body = body { info["body"] = body } + if let headers = headers { + let headersObj: JSObject = headers.reduce(into: [:]) { result, pair in + result[pair.key] = pair.value + } + info["headers"] = headersObj + } + if let cause = cause { info["exception"] = cause.localizedDescription } + + return info + } +} + +// MARK: - Static Constructors + +extension FileTransferError { + + static func invalidParameters(_ message: String? = nil) -> FileTransferError { + .init(code: 4, message: message ?? "The method's input parameters aren't valid.") + } + + static func invalidServerUrl(_ url: String?) -> FileTransferError { + .init( + code: 5, + message: (url?.isEmpty ?? true) + ? "URL to connect to is either null or empty." + : "Invalid server URL was provided - \(url!)", + source: url + ) + } + + static func fileDoesNotExist() -> FileTransferError { + .init(code: 7, message: "Operation failed because file does not exist.") + } + + static func connectionError() -> FileTransferError { + .init(code: 8, message: "Failed to connect to server.") + } + + static func notModified() -> FileTransferError { + .init( + code: 9, + message: "The server responded with HTTP 304 – Not Modified. If you want to avoid this, check your headers related to HTTP caching.", + httpStatus: 304 + ) + } + + static func httpError( + responseCode: Int, + message: String, + responseBody: String? = nil, + headers: [String: String]? = nil, + cause: Error? = nil + ) -> FileTransferError { + .init( + code: 10, + message: "HTTP error: \(responseCode) - \(message)", + httpStatus: responseCode, + body: responseBody, + headers: headers, + cause: cause + ) + } + + static func genericError( + cause: Error? = nil + ) -> FileTransferError { + .init( + code: 11, + message: "The operation failed with an error.", + cause: cause + ) + } +} + +// MARK: - IONFLTRException Mapping + +extension IONFLTRException { + + /// Converts an `IONFLTRException` to a corresponding `FileTransferError`. + /// + /// This method maps specific cases of `IONFLTRException` to their + /// equivalent `FileTransferError` cases, providing a unified error + /// representation for file transfer operations. + /// + /// - Returns: A `FileTransferError` instance representing the exception. + func toFileTransferError() -> FileTransferError { + switch self { + case .invalidPath: + return FileTransferError.invalidParameters() + case .emptyURL: + return FileTransferError.invalidServerUrl(nil) + case .invalidURL(let url): + return FileTransferError.invalidServerUrl(url) + case .fileDoesNotExist: + return FileTransferError.fileDoesNotExist() + case .cannotCreateDirectory: + return FileTransferError.genericError(cause: self) + case .httpError(let responseCode, let responseBody, let headers): + return responseCode == 304 + ? FileTransferError.notModified() + : FileTransferError.httpError( + responseCode: responseCode, + message: self.description, + responseBody: responseBody, + headers: headers, + cause: self + ) + case .connectionError: + return FileTransferError.connectionError() + case .transferError: + return FileTransferError.genericError(cause: self) + case .unknownError: + return FileTransferError.genericError(cause: self) + } + } +} diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/FileTransferPlugin.swift b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/FileTransferPlugin.swift new file mode 100644 index 0000000..e53f26b --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/FileTransferPlugin.swift @@ -0,0 +1,288 @@ +import Foundation +import Combine +import Capacitor +import IONFileTransferLib +import QuartzCore + +private enum Action: String { + case download + case upload +} + +/// A Capacitor plugin that enables file upload and download using the IONFileTransferLib. +/// +/// This plugin provides two main JavaScript-exposed methods: `uploadFile` and `downloadFile`. +/// Internally, it uses Combine to observe progress and results, and bridges data using CAPPluginCall. +@objc(FileTransferPlugin) +public class FileTransferPlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "FileTransferPlugin" + public let jsName = "FileTransfer" + public let pluginMethods: [CAPPluginMethod] = [ + .init(selector: #selector(downloadFile), returnType: CAPPluginReturnPromise), + .init(selector: #selector(uploadFile), returnType: CAPPluginReturnPromise) + ] + private lazy var manager: IONFLTRManager = .init() + private lazy var cancellables: Set = [] + private var lastProgressReportTime = CACurrentMediaTime() + private let progressUpdateInterval: TimeInterval = 0.1 // 100ms + + /// Downloads a file from the provided URL to the specified local path. + /// + /// - Parameter call: The Capacitor call containing `url`, `path`, and optional HTTP options. + @objc func downloadFile(_ call: CAPPluginCall) { + do { + let (serverURL, fileURL, shouldTrackProgress, httpOptions) = try validateAndPrepare(call: call, action: .download) + + try manager.downloadFile( + fromServerURL: serverURL, + toFileURL: fileURL, + withHttpOptions: httpOptions + ).sink( + receiveCompletion: handleCompletion(call: call, source: serverURL.absoluteString, target: fileURL.absoluteString), + receiveValue: handleReceiveValue( + call: call, + type: .download, + url: serverURL.absoluteString, + path: fileURL.path, + shouldTrackProgress: shouldTrackProgress + ) + ).store(in: &cancellables) + } catch { + call.sendError(error, source: call.getString("url"), target: call.getString("path")) + } + } + + /// Uploads a file from the provided path to the specified server URL. + /// + /// - Parameter call: The Capacitor call containing `url`, `path`, `fileKey`, and optional HTTP options. + @objc func uploadFile(_ call: CAPPluginCall) { + do { + let (serverURL, fileURL, shouldTrackProgress, httpOptions) = try validateAndPrepare(call: call, action: .upload) + let chunkedMode = call.getBool("chunkedMode", false) + let mimeType = call.getString("mimeType") + let fileKey = call.getString("fileKey") ?? "file" + let uploadOptions = IONFLTRUploadOptions( + chunkedMode: chunkedMode, + mimeType: mimeType, + fileKey: fileKey + ) + + try manager.uploadFile( + fromFileURL: fileURL, + toServerURL: serverURL, + withUploadOptions: uploadOptions, + andHttpOptions: httpOptions + ).sink( + receiveCompletion: handleCompletion(call: call, source: fileURL.absoluteString, target: serverURL.absoluteString), + receiveValue: handleReceiveValue( + call: call, + type: .upload, + url: serverURL.absoluteString, + path: fileURL.path, + shouldTrackProgress: shouldTrackProgress + ) + ).store(in: &cancellables) + } catch { + call.sendError(error, source: call.getString("path"), target: call.getString("url")) + } + } + + /// Validates parameters from the call and prepares transfer-related data. + /// + /// - Parameters: + /// - call: The plugin call. + /// - action: The type of action (`upload` or `download`). + /// - Throws: An error if validation fails. + /// - Returns: Tuple containing server URL, file URL, progress flag, and HTTP options. + private func validateAndPrepare(call: CAPPluginCall, action: Action) throws -> (URL, URL, Bool, IONFLTRHttpOptions) { + guard let url = call.getString("url") else { + throw FileTransferError.invalidServerUrl(nil) + } + + guard let serverURL = URL(string: url) else { + throw FileTransferError.invalidServerUrl(url) + } + + guard let path = call.getString("path") else { + throw FileTransferError.invalidParameters("Path is required.") + } + + guard let fileURL = URL(string: path) else { + throw FileTransferError.invalidParameters("Path is invalid.") + } + + let shouldTrackProgress = call.getBool("progress", false) + let headers = call.getObject("headers") ?? JSObject() + let params = call.getObject("params") ?? JSObject() + + let httpOptions = IONFLTRHttpOptions( + method: call.getString("method") ?? defaultHTTPMethod(for: action), + params: extractParams(from: params), + headers: extractHeaders(from: headers), + timeout: call.getInt("connectTimeout", call.getInt("readTimeout", 60000)) / 1000, // Timeouts in iOS are in seconds. So read the value in millis and divide by 1000 + disableRedirects: call.getBool("disableRedirects", false), + shouldEncodeUrlParams: call.getBool("shouldEncodeUrlParams", true) + ) + + return (serverURL, fileURL, shouldTrackProgress, httpOptions) + } + + /// Provides the default HTTP method for the given action. + private func defaultHTTPMethod(for action: Action) -> String { + switch action { + case .download: + return "GET" + case .upload: + return "POST" + } + } + + /// Converts a JSObject to a string dictionary used for headers. + private func extractHeaders(from jsObject: JSObject) -> [String: String] { + return jsObject.reduce(into: [String: String]()) { result, pair in + if let stringValue = pair.value as? String { + result[pair.key] = stringValue + } + } + } + + /// Converts a JSObject to a dictionary of arrays, supporting both string and string-array values. + private func extractParams(from jsObject: JSObject) -> [String: [String]] { + var result: [String: [String]] = [:] + for (key, value) in jsObject { + if let stringValue = value as? String { + result[key] = [stringValue] + } else if let arrayValue = value as? [Any] { + let stringArray = arrayValue.compactMap { $0 as? String } + if !stringArray.isEmpty { + result[key] = stringArray + } + } + } + return result + } + + /// Handles completion of the upload or download Combine pipeline. + private func handleCompletion(call: CAPPluginCall, source: String, target: String) -> (Subscribers.Completion) -> Void { + return { completion in + if case let .failure(error) = completion { + call.sendError(error, source: source, target: target) + } + } + } + + /// Handles received value from the Combine stream. + /// + /// - Parameters: + /// - call: The original plugin call. + /// - type: Whether it's an upload or download. + /// - url: The source or destination URL as string. + /// - path: The file path used in the transfer. + /// - shouldTrackProgress: Whether progress events should be emitted. + private func handleReceiveValue( + call: CAPPluginCall, + type: Action, + url: String, + path: String, + shouldTrackProgress: Bool + ) -> (IONFLTRTransferResult) -> Void { + return { result in + switch result { + case .ongoing(let status): + self.reportProgressIfNeeded( + type: type, + url: url, + bytes: status.bytes, + contentLength: status.contentLength, + lengthComputable: status.lengthComputable, + shouldTrack: shouldTrackProgress + ) + + case .complete(let data): + self.reportProgressIfNeeded( + type: type, + url: url, + bytes: data.totalBytes, + contentLength: data.totalBytes, + lengthComputable: true, + shouldTrack: shouldTrackProgress, + force: true + ) + + let result: JSObject = { + switch type { + case .download: + return ["path": path] + case .upload: + return [ + "bytesSent": data.totalBytes, + "responseCode": data.responseCode, + "response": data.responseBody ?? "", + "headers": data.headers.reduce(into: JSObject()) { result, entry in + result[entry.key] = entry.value + } + ] + } + }() + call.resolve(result) + } + } + } + + /// Reports a progress event to JavaScript listeners if conditions are met. + /// + /// This method emits a `"progress"` event with details about the transfer status, including + /// the number of bytes transferred and the total expected content length. It respects a + /// throttling interval (`progressUpdateInterval`) to avoid sending too many events, unless + /// forced via the `force` parameter. + /// + /// - Parameters: + /// - type: The type of file transfer operation (`upload` or `download`). + /// - url: The source or destination URL of the file transfer. + /// - bytes: The number of bytes transferred so far. + /// - contentLength: The total number of bytes expected to be transferred. + /// - lengthComputable: A Boolean value indicating whether the content length is known. + /// - shouldTrack: A flag indicating whether progress tracking is enabled. + /// - force: A flag that, if true, bypasses throttling and sends the event immediately. Defaults to `false`. + private func reportProgressIfNeeded( + type: Action, + url: String, + bytes: Int, + contentLength: Int, + lengthComputable: Bool, + shouldTrack: Bool, + force: Bool = false + ) { + guard shouldTrack else { return } + + let current = CACurrentMediaTime() + guard force || (current - lastProgressReportTime >= progressUpdateInterval) else { return } + lastProgressReportTime = current + + let progressData: JSObject = [ + "type": type.rawValue, + "url": url, + "bytes": bytes, + "contentLength": contentLength, + "lengthComputable": lengthComputable + ] + notifyListeners("progress", data: progressData) + } +} + +extension CAPPluginCall { + func sendError(_ error: Error, source: String?, target: String?) { + var pluginError: FileTransferError + switch error { + case let error as FileTransferError: + pluginError = error + case let error as IONFLTRException: + pluginError = error.toFileTransferError() + default: + pluginError = .genericError(cause: error) + } + pluginError.source = source + pluginError.target = target + self.reject(pluginError.message, pluginError.code, nil, pluginError.errorInfo) + } +} diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/Info.plist b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/Info.plist new file mode 100644 index 0000000..a1e4464 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/Info.plist @@ -0,0 +1,48 @@ + + + + + AvailableLibraries + + + BinaryPath + IONFileTransferLib.framework/IONFileTransferLib + DebugSymbolsPath + dSYMs + LibraryIdentifier + ios-arm64 + LibraryPath + IONFileTransferLib.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + BinaryPath + IONFileTransferLib.framework/IONFileTransferLib + DebugSymbolsPath + dSYMs + LibraryIdentifier + ios-arm64_x86_64-simulator + LibraryPath + IONFileTransferLib.framework + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Headers/IONFileTransferLib-Swift.h b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Headers/IONFileTransferLib-Swift.h new file mode 100644 index 0000000..81eae28 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Headers/IONFileTransferLib-Swift.h @@ -0,0 +1,326 @@ +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.1) +#ifndef IONFILETRANSFERLIB_SWIFT_H +#define IONFILETRANSFERLIB_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#endif +#if defined(__cplusplus) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wnon-modular-include-in-framework-module" +#if defined(__arm64e__) && __has_include() +# include +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-macro-identifier" +# ifndef __ptrauth_swift_value_witness_function_pointer +# define __ptrauth_swift_value_witness_function_pointer(x) +# endif +# ifndef __ptrauth_swift_class_method_pointer +# define __ptrauth_swift_class_method_pointer(x) +# endif +#pragma clang diagnostic pop +#endif +#pragma clang diagnostic pop +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif +#if !defined(SWIFT_RUNTIME_NAME) +# if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# else +# define SWIFT_RUNTIME_NAME(X) +# endif +#endif +#if !defined(SWIFT_COMPILE_NAME) +# if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# else +# define SWIFT_COMPILE_NAME(X) +# endif +#endif +#if !defined(SWIFT_METHOD_FAMILY) +# if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# else +# define SWIFT_METHOD_FAMILY(X) +# endif +#endif +#if !defined(SWIFT_NOESCAPE) +# if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +# else +# define SWIFT_NOESCAPE +# endif +#endif +#if !defined(SWIFT_RELEASES_ARGUMENT) +# if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# else +# define SWIFT_RELEASES_ARGUMENT +# endif +#endif +#if !defined(SWIFT_WARN_UNUSED_RESULT) +# if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# else +# define SWIFT_WARN_UNUSED_RESULT +# endif +#endif +#if !defined(SWIFT_NORETURN) +# if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +# else +# define SWIFT_NORETURN +# endif +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if !defined(SWIFT_DEPRECATED_OBJC) +# if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# endif +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if !defined(SWIFT_INDIRECT_RESULT) +# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result)) +#endif +#if !defined(SWIFT_CONTEXT) +# define SWIFT_CONTEXT __attribute__((swift_context)) +#endif +#if !defined(SWIFT_ERROR_RESULT) +# define SWIFT_ERROR_RESULT __attribute__((swift_error_result)) +#endif +#if defined(__cplusplus) +# define SWIFT_NOEXCEPT noexcept +#else +# define SWIFT_NOEXCEPT +#endif +#if !defined(SWIFT_C_INLINE_THUNK) +# if __has_attribute(always_inline) +# if __has_attribute(nodebug) +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug)) +# else +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) +# endif +# else +# define SWIFT_C_INLINE_THUNK inline +# endif +#endif +#if defined(_WIN32) +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport) +#endif +#else +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(objc_modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +@import ObjectiveC; +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" +#pragma clang diagnostic ignored "-Wunsafe-buffer-usage" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="IONFileTransferLib",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) + +/// A manager class for handling file transfer operations. +/// The IONFLTRManager class provides methods to manage file downloads and uploads, including +/// preparing, validating, and executing file transfer operations. It integrates with validators, +/// file helpers, and URL request helpers to ensure smooth and reliable file transfers. +SWIFT_CLASS("_TtC18IONFileTransferLib14IONFLTRManager") +@interface IONFLTRManager : NSObject +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#if defined(__cplusplus) +#endif +#pragma clang diagnostic pop +#endif + +#else +#error unsupported Swift architecture +#endif diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/IONFileTransferLib b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/IONFileTransferLib new file mode 100755 index 0000000..e28ae1b Binary files /dev/null and b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/IONFileTransferLib differ diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Info.plist b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Info.plist new file mode 100644 index 0000000..20de951 Binary files /dev/null and b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Info.plist differ diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.abi.json b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.abi.json new file mode 100644 index 0000000..614f9a5 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.abi.json @@ -0,0 +1,2496 @@ +{ + "ABIRoot": { + "kind": "Root", + "name": "IONFileTransferLib", + "printedName": "IONFileTransferLib", + "children": [ + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "TypeDecl", + "name": "IONFLTRException", + "printedName": "IONFLTRException", + "children": [ + { + "kind": "Var", + "name": "invalidPath", + "printedName": "invalidPath", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.String?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(path: Swift.String?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO11invalidPathyACSSSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO11invalidPathyACSSSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "emptyURL", + "printedName": "emptyURL", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.String?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(url: Swift.String?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO8emptyURLyACSSSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO8emptyURLyACSSSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "invalidURL", + "printedName": "invalidURL", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.String) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(url: Swift.String)", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO10invalidURLyACSS_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO10invalidURLyACSS_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "fileDoesNotExist", + "printedName": "fileDoesNotExist", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> ((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO16fileDoesNotExistyACs5Error_pSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO16fileDoesNotExistyACs5Error_pSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "cannotCreateDirectory", + "printedName": "cannotCreateDirectory", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.String, (any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String, (any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(path: Swift.String, cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO21cannotCreateDirectoryyACSS_s5Error_pSgtcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO21cannotCreateDirectoryyACSS_s5Error_pSgtcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "httpError", + "printedName": "httpError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.Int, Swift.String?, [Swift.String : Swift.String]?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.String?, [Swift.String : Swift.String]?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(responseCode: Swift.Int, responseBody: Swift.String?, headers: [Swift.String : Swift.String]?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Swift.String]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO9httpErroryACSi_SSSgSDyS2SGSgtcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO9httpErroryACSi_SSSgSDyS2SGSgtcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "connectionError", + "printedName": "connectionError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> ((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO15connectionErroryACs0F0_pSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO15connectionErroryACs0F0_pSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "transferError", + "printedName": "transferError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> ((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO13transferErroryACs0F0_pSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO13transferErroryACs0F0_pSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "unknownError", + "printedName": "unknownError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> ((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO12unknownErroryACs0F0_pSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO12unknownErroryACs0F0_pSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvp", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvg", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvg", + "moduleName": "IONFileTransferLib", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO2eeoiySbAC_ACtFZ", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO2eeoiySbAC_ACtFZ", + "moduleName": "IONFileTransferLib", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "isFromExtension": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "TypeDecl", + "name": "IONFLTRManager", + "printedName": "IONFLTRManager", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRManager", + "printedName": "IONFileTransferLib.IONFLTRManager", + "usr": "c:@M@IONFileTransferLib@objc(cs)IONFLTRManager" + } + ], + "declKind": "Constructor", + "usr": "c:@M@IONFileTransferLib@objc(cs)IONFLTRManager(im)init", + "mangledName": "$s18IONFileTransferLib14IONFLTRManagerCACycfc", + "moduleName": "IONFileTransferLib", + "overriding": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "AccessControl", + "Override" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "downloadFile", + "printedName": "downloadFile(fromServerURL:toFileURL:withHttpOptions:)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRPublisher", + "printedName": "IONFileTransferLib.IONFLTRPublisher", + "usr": "s:18IONFileTransferLib16IONFLTRPublisherC" + }, + { + "kind": "TypeNominal", + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" + }, + { + "kind": "TypeNominal", + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRHttpOptions", + "printedName": "IONFileTransferLib.IONFLTRHttpOptions", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib14IONFLTRManagerC12downloadFile13fromServerURL02tofI015withHttpOptionsAA16IONFLTRPublisherC10Foundation0I0V_AlA011IONFLTRHttpM0VtKF", + "mangledName": "$s18IONFileTransferLib14IONFLTRManagerC12downloadFile13fromServerURL02tofI015withHttpOptionsAA16IONFLTRPublisherC10Foundation0I0V_AlA011IONFLTRHttpM0VtKF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "uploadFile", + "printedName": "uploadFile(fromFileURL:toServerURL:withUploadOptions:andHttpOptions:)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRPublisher", + "printedName": "IONFileTransferLib.IONFLTRPublisher", + "usr": "s:18IONFileTransferLib16IONFLTRPublisherC" + }, + { + "kind": "TypeNominal", + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" + }, + { + "kind": "TypeNominal", + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRUploadOptions", + "printedName": "IONFileTransferLib.IONFLTRUploadOptions", + "usr": "s:18IONFileTransferLib20IONFLTRUploadOptionsV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRHttpOptions", + "printedName": "IONFileTransferLib.IONFLTRHttpOptions", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib14IONFLTRManagerC10uploadFile04fromF3URL08toServerH017withUploadOptions07andHttpM0AA16IONFLTRPublisherC10Foundation0H0V_AmA013IONFLTRUploadM0VAA011IONFLTRHttpM0VtKF", + "mangledName": "$s18IONFileTransferLib14IONFLTRManagerC10uploadFile04fromF3URL08toServerH017withUploadOptions07andHttpM0AA16IONFLTRPublisherC10Foundation0H0V_AmA013IONFLTRUploadM0VAA011IONFLTRHttpM0VtKF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "c:@M@IONFileTransferLib@objc(cs)IONFLTRManager", + "mangledName": "$s18IONFileTransferLib14IONFLTRManagerC", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment", + "ObjC" + ], + "superclassUsr": "c:objc(cs)NSObject", + "hasMissingDesignatedInitializers": true, + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Combine", + "printedName": "Combine", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "TypeDecl", + "name": "IONFLTRPublisher", + "printedName": "IONFLTRPublisher", + "children": [ + { + "kind": "Function", + "name": "receive", + "printedName": "receive(subscriber:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "GenericTypeParam", + "printedName": "τ_0_0" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib16IONFLTRPublisherC7receive10subscriberyx_t7Combine10SubscriberRzs5Error_p7FailureRtzAA21IONFLTRTransferResultO5InputRtzlF", + "mangledName": "$s18IONFileTransferLib16IONFLTRPublisherC7receive10subscriberyx_t7Combine10SubscriberRzs5Error_p7FailureRtzAA21IONFLTRTransferResultO5InputRtzlF", + "moduleName": "IONFileTransferLib", + "genericSig": "<τ_0_0 where τ_0_0 : Combine.Subscriber, τ_0_0.Failure == any Swift.Error, τ_0_0.Input == IONFileTransferLib.IONFLTRTransferResult>", + "sugared_genericSig": "", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:18IONFileTransferLib16IONFLTRPublisherC", + "mangledName": "$s18IONFileTransferLib16IONFLTRPublisherC", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "hasMissingDesignatedInitializers": true, + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Publisher", + "printedName": "Publisher", + "children": [ + { + "kind": "TypeWitness", + "name": "Output", + "printedName": "Output", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + } + ] + }, + { + "kind": "TypeWitness", + "name": "Failure", + "printedName": "Failure", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ] + } + ], + "usr": "s:7Combine9PublisherP", + "mangledName": "$s7Combine9PublisherP" + } + ] + }, + { + "kind": "TypeDecl", + "name": "IONFLTRHttpOptions", + "printedName": "IONFLTRHttpOptions", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(method:params:headers:timeout:disableRedirects:shouldEncodeUrlParams:)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRHttpOptions", + "printedName": "IONFileTransferLib.IONFLTRHttpOptions", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : [Swift.String]]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sa" + } + ], + "hasDefaultArg": true, + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "hasDefaultArg": true, + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "hasDefaultArg": true, + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + } + ], + "declKind": "Constructor", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV6method6params7headers7timeout16disableRedirects21shouldEncodeUrlParamsACSS_SDySSSaySSGGSDyS2SGSiS2btcfc", + "mangledName": "$s18IONFileTransferLib18IONFLTRHttpOptionsV6method6params7headers7timeout16disableRedirects21shouldEncodeUrlParamsACSS_SDySSSaySSGGSDyS2SGSiS2btcfc", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "init_kind": "Designated" + } + ], + "declKind": "Struct", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV", + "mangledName": "$s18IONFileTransferLib18IONFLTRHttpOptionsV", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + } + ] + }, + { + "kind": "TypeDecl", + "name": "IONFLTRTransferResult", + "printedName": "IONFLTRTransferResult", + "children": [ + { + "kind": "Var", + "name": "ongoing", + "printedName": "ongoing", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRTransferResult.Type) -> (IONFileTransferLib.IONFLTRProgressStatus) -> IONFileTransferLib.IONFLTRTransferResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRProgressStatus) -> IONFileTransferLib.IONFLTRTransferResult", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(status: IONFileTransferLib.IONFLTRProgressStatus)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRProgressStatus", + "printedName": "IONFileTransferLib.IONFLTRProgressStatus", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRTransferResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO7ongoingyAcA21IONFLTRProgressStatusV_tcACmF", + "mangledName": "$s18IONFileTransferLib21IONFLTRTransferResultO7ongoingyAcA21IONFLTRProgressStatusV_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "complete", + "printedName": "complete", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRTransferResult.Type) -> (IONFileTransferLib.IONFLTRTransferComplete) -> IONFileTransferLib.IONFLTRTransferResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRTransferComplete) -> IONFileTransferLib.IONFLTRTransferResult", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(data: IONFileTransferLib.IONFLTRTransferComplete)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferComplete", + "printedName": "IONFileTransferLib.IONFLTRTransferComplete", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRTransferResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO8completeyAcA0D8CompleteV_tcACmF", + "mangledName": "$s18IONFileTransferLib21IONFLTRTransferResultO8completeyAcA0D8CompleteV_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZ", + "moduleName": "IONFileTransferLib", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO", + "mangledName": "$s18IONFileTransferLib21IONFLTRTransferResultO", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "IONFLTRProgressStatus", + "printedName": "IONFLTRProgressStatus", + "children": [ + { + "kind": "Var", + "name": "bytes", + "printedName": "bytes", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivp", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivg", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivs", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivM", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "contentLength", + "printedName": "contentLength", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivp", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivg", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivs", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivM", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "lengthComputable", + "printedName": "lengthComputable", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvp", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvg", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvs", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvM", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRProgressStatus", + "printedName": "IONFileTransferLib.IONFLTRProgressStatus", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRProgressStatus", + "printedName": "IONFileTransferLib.IONFLTRProgressStatus", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV2eeoiySbAC_ACtFZ", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV2eeoiySbAC_ACtFZ", + "moduleName": "IONFileTransferLib", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "IONFLTRTransferComplete", + "printedName": "IONFLTRTransferComplete", + "children": [ + { + "kind": "Var", + "name": "totalBytes", + "printedName": "totalBytes", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivp", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivg", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivs", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivM", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "responseCode", + "printedName": "responseCode", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivp", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivg", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivs", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivM", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "responseBody", + "printedName": "responseBody", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvp", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvg", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvs", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvM", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "headers", + "printedName": "headers", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvp", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvg", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvs", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvM", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRTransferComplete", + "printedName": "IONFileTransferLib.IONFLTRTransferComplete", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRTransferComplete", + "printedName": "IONFileTransferLib.IONFLTRTransferComplete", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV2eeoiySbAC_ACtFZ", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV2eeoiySbAC_ACtFZ", + "moduleName": "IONFileTransferLib", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "UniformTypeIdentifiers", + "printedName": "UniformTypeIdentifiers", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "TypeDecl", + "name": "IONFLTRUploadOptions", + "printedName": "IONFLTRUploadOptions", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(chunkedMode:mimeType:fileKey:formParams:)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRUploadOptions", + "printedName": "IONFileTransferLib.IONFLTRUploadOptions", + "usr": "s:18IONFileTransferLib20IONFLTRUploadOptionsV" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "hasDefaultArg": true, + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "hasDefaultArg": true, + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Swift.String]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "hasDefaultArg": true, + "usr": "s:Sq" + } + ], + "declKind": "Constructor", + "usr": "s:18IONFileTransferLib20IONFLTRUploadOptionsV11chunkedMode8mimeType7fileKey10formParamsACSb_SSSgSSSDyS2SGSgtcfc", + "mangledName": "$s18IONFileTransferLib20IONFLTRUploadOptionsV11chunkedMode8mimeType7fileKey10formParamsACSb_SSSgSSSDyS2SGSgtcfc", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "init_kind": "Designated" + } + ], + "declKind": "Struct", + "usr": "s:18IONFileTransferLib20IONFLTRUploadOptionsV", + "mangledName": "$s18IONFileTransferLib20IONFLTRUploadOptionsV", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + } + ] + } + ], + "json_format_version": 8 + }, + "ConstValues": [ + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/Delegates\/IONFLTRUploadDelegate.swift", + "kind": "IntegerLiteral", + "offset": 539, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/Delegates\/IONFLTRDownloadDelegate.swift", + "kind": "IntegerLiteral", + "offset": 635, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/Delegates\/IONFLTRDownloadDelegate.swift", + "kind": "BooleanLiteral", + "offset": 1096, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "Dictionary", + "offset": 1165, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "Dictionary", + "offset": 1201, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "IntegerLiteral", + "offset": 1229, + "length": 2, + "value": "60" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "BooleanLiteral", + "offset": 1266, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "BooleanLiteral", + "offset": 1311, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRTransferResult.swift", + "kind": "Dictionary", + "offset": 2038, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/Delegates\/IONFLTRBaseDelegate.swift", + "kind": "BooleanLiteral", + "offset": 1189, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRUploadOptions.swift", + "kind": "BooleanLiteral", + "offset": 891, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRUploadOptions.swift", + "kind": "StringLiteral", + "offset": 957, + "length": 6, + "value": "\"file\"" + } + ] +} \ No newline at end of file diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.private.swiftinterface b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.private.swiftinterface new file mode 100644 index 0000000..d4645a1 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.private.swiftinterface @@ -0,0 +1,66 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.1) +// swift-module-flags: -target arm64-apple-ios14.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-bare-slash-regex -module-name IONFileTransferLib +// swift-module-flags-ignorable: -no-verify-emitted-module-interface +import Combine +import Foundation +import Swift +import UniformTypeIdentifiers +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum IONFLTRException : Swift.Error, Swift.CustomStringConvertible { + case invalidPath(path: Swift.String?) + case emptyURL(url: Swift.String?) + case invalidURL(url: Swift.String) + case fileDoesNotExist(cause: (any Swift.Error)?) + case cannotCreateDirectory(path: Swift.String, cause: (any Swift.Error)?) + case httpError(responseCode: Swift.Int, responseBody: Swift.String?, headers: [Swift.String : Swift.String]?) + case connectionError(cause: (any Swift.Error)?) + case transferError(cause: (any Swift.Error)?) + case unknownError(cause: (any Swift.Error)?) + public var description: Swift.String { + get + } +} +extension IONFileTransferLib.IONFLTRException : Swift.Equatable { + public static func == (lhs: IONFileTransferLib.IONFLTRException, rhs: IONFileTransferLib.IONFLTRException) -> Swift.Bool +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers public class IONFLTRManager : ObjectiveC.NSObject { + @objc override dynamic public init() + public func downloadFile(fromServerURL serverURL: Foundation.URL, toFileURL fileURL: Foundation.URL, withHttpOptions httpOptions: IONFileTransferLib.IONFLTRHttpOptions) throws -> IONFileTransferLib.IONFLTRPublisher + public func uploadFile(fromFileURL fileURL: Foundation.URL, toServerURL serverURL: Foundation.URL, withUploadOptions uploadOptions: IONFileTransferLib.IONFLTRUploadOptions, andHttpOptions httpOptions: IONFileTransferLib.IONFLTRHttpOptions) throws -> IONFileTransferLib.IONFLTRPublisher + @objc deinit +} +@_hasMissingDesignatedInitializers public class IONFLTRPublisher : Combine.Publisher { + public typealias Output = IONFileTransferLib.IONFLTRTransferResult + public typealias Failure = Swift.Error + public func receive(subscriber: S) where S : Combine.Subscriber, S.Failure == any Swift.Error, S.Input == IONFileTransferLib.IONFLTRTransferResult + @objc deinit +} +public typealias HttpParams = [Swift.String : [Swift.String]] +public typealias HttpHeaders = [Swift.String : Swift.String] +public struct IONFLTRHttpOptions { + public init(method: Swift.String, params: IONFileTransferLib.HttpParams = [:], headers: IONFileTransferLib.HttpHeaders = [:], timeout: Swift.Int = 60, disableRedirects: Swift.Bool = false, shouldEncodeUrlParams: Swift.Bool = true) +} +public enum IONFLTRTransferResult : Swift.Equatable { + case ongoing(status: IONFileTransferLib.IONFLTRProgressStatus) + case complete(data: IONFileTransferLib.IONFLTRTransferComplete) + public static func == (a: IONFileTransferLib.IONFLTRTransferResult, b: IONFileTransferLib.IONFLTRTransferResult) -> Swift.Bool +} +public struct IONFLTRProgressStatus : Swift.Equatable { + public var bytes: Swift.Int + public var contentLength: Swift.Int + public var lengthComputable: Swift.Bool + public static func == (a: IONFileTransferLib.IONFLTRProgressStatus, b: IONFileTransferLib.IONFLTRProgressStatus) -> Swift.Bool +} +public struct IONFLTRTransferComplete : Swift.Equatable { + public var totalBytes: Swift.Int + public var responseCode: Swift.Int + public var responseBody: Swift.String? + public var headers: [Swift.String : Swift.String] + public static func == (a: IONFileTransferLib.IONFLTRTransferComplete, b: IONFileTransferLib.IONFLTRTransferComplete) -> Swift.Bool +} +public struct IONFLTRUploadOptions { + public init(chunkedMode: Swift.Bool = false, mimeType: Swift.String? = nil, fileKey: Swift.String = "file", formParams: [Swift.String : Swift.String]? = nil) +} diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.swiftdoc b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.swiftdoc new file mode 100644 index 0000000..9bfe065 Binary files /dev/null and b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.swiftdoc differ diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.swiftinterface b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.swiftinterface new file mode 100644 index 0000000..d4645a1 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.swiftinterface @@ -0,0 +1,66 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.1) +// swift-module-flags: -target arm64-apple-ios14.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-bare-slash-regex -module-name IONFileTransferLib +// swift-module-flags-ignorable: -no-verify-emitted-module-interface +import Combine +import Foundation +import Swift +import UniformTypeIdentifiers +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum IONFLTRException : Swift.Error, Swift.CustomStringConvertible { + case invalidPath(path: Swift.String?) + case emptyURL(url: Swift.String?) + case invalidURL(url: Swift.String) + case fileDoesNotExist(cause: (any Swift.Error)?) + case cannotCreateDirectory(path: Swift.String, cause: (any Swift.Error)?) + case httpError(responseCode: Swift.Int, responseBody: Swift.String?, headers: [Swift.String : Swift.String]?) + case connectionError(cause: (any Swift.Error)?) + case transferError(cause: (any Swift.Error)?) + case unknownError(cause: (any Swift.Error)?) + public var description: Swift.String { + get + } +} +extension IONFileTransferLib.IONFLTRException : Swift.Equatable { + public static func == (lhs: IONFileTransferLib.IONFLTRException, rhs: IONFileTransferLib.IONFLTRException) -> Swift.Bool +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers public class IONFLTRManager : ObjectiveC.NSObject { + @objc override dynamic public init() + public func downloadFile(fromServerURL serverURL: Foundation.URL, toFileURL fileURL: Foundation.URL, withHttpOptions httpOptions: IONFileTransferLib.IONFLTRHttpOptions) throws -> IONFileTransferLib.IONFLTRPublisher + public func uploadFile(fromFileURL fileURL: Foundation.URL, toServerURL serverURL: Foundation.URL, withUploadOptions uploadOptions: IONFileTransferLib.IONFLTRUploadOptions, andHttpOptions httpOptions: IONFileTransferLib.IONFLTRHttpOptions) throws -> IONFileTransferLib.IONFLTRPublisher + @objc deinit +} +@_hasMissingDesignatedInitializers public class IONFLTRPublisher : Combine.Publisher { + public typealias Output = IONFileTransferLib.IONFLTRTransferResult + public typealias Failure = Swift.Error + public func receive(subscriber: S) where S : Combine.Subscriber, S.Failure == any Swift.Error, S.Input == IONFileTransferLib.IONFLTRTransferResult + @objc deinit +} +public typealias HttpParams = [Swift.String : [Swift.String]] +public typealias HttpHeaders = [Swift.String : Swift.String] +public struct IONFLTRHttpOptions { + public init(method: Swift.String, params: IONFileTransferLib.HttpParams = [:], headers: IONFileTransferLib.HttpHeaders = [:], timeout: Swift.Int = 60, disableRedirects: Swift.Bool = false, shouldEncodeUrlParams: Swift.Bool = true) +} +public enum IONFLTRTransferResult : Swift.Equatable { + case ongoing(status: IONFileTransferLib.IONFLTRProgressStatus) + case complete(data: IONFileTransferLib.IONFLTRTransferComplete) + public static func == (a: IONFileTransferLib.IONFLTRTransferResult, b: IONFileTransferLib.IONFLTRTransferResult) -> Swift.Bool +} +public struct IONFLTRProgressStatus : Swift.Equatable { + public var bytes: Swift.Int + public var contentLength: Swift.Int + public var lengthComputable: Swift.Bool + public static func == (a: IONFileTransferLib.IONFLTRProgressStatus, b: IONFileTransferLib.IONFLTRProgressStatus) -> Swift.Bool +} +public struct IONFLTRTransferComplete : Swift.Equatable { + public var totalBytes: Swift.Int + public var responseCode: Swift.Int + public var responseBody: Swift.String? + public var headers: [Swift.String : Swift.String] + public static func == (a: IONFileTransferLib.IONFLTRTransferComplete, b: IONFileTransferLib.IONFLTRTransferComplete) -> Swift.Bool +} +public struct IONFLTRUploadOptions { + public init(chunkedMode: Swift.Bool = false, mimeType: Swift.String? = nil, fileKey: Swift.String = "file", formParams: [Swift.String : Swift.String]? = nil) +} diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/module.modulemap b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/module.modulemap new file mode 100644 index 0000000..383be00 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/Modules/module.modulemap @@ -0,0 +1,4 @@ +framework module IONFileTransferLib { + header "IONFileTransferLib-Swift.h" + requires objc +} diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/_CodeSignature/CodeResources b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..c18cb35 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/IONFileTransferLib.framework/_CodeSignature/CodeResources @@ -0,0 +1,179 @@ + + + + + files + + Headers/IONFileTransferLib-Swift.h + + AiYyerL/NqEMe3OuMm9Sb5GR4R4= + + Info.plist + + 4HkBzxrfJoc0KRg4zZfX9GcPcMY= + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.abi.json + + vwGAk+OOovMkL/Fw7p9qXh5DPo0= + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.private.swiftinterface + + mGfgeUYyHitLPk+KCyaQMHdohA4= + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.swiftdoc + + +1r1hRpsxtFa03zkl2ARqNzz4rQ= + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.swiftinterface + + mGfgeUYyHitLPk+KCyaQMHdohA4= + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.swiftmodule + + FlEnI9bTJnk+e6ApLXXU+R6Xop8= + + Modules/module.modulemap + + qcSBbzGTOaQ3g9ohxBnUW30OhsE= + + + files2 + + Headers/IONFileTransferLib-Swift.h + + hash2 + + qwwCL+vkuGpHrJZRl6xdOHbI62NY+qyWF/oinPWnC3M= + + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.abi.json + + hash2 + + lUk0lAFnf3IStKReF0nu3idznW7YjGl9GMIJ/HXcuS0= + + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.private.swiftinterface + + hash2 + + vGGFO0k88zQ6JRcKdMttbExxCKI+ZdGaWBITpRYg76A= + + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.swiftdoc + + hash2 + + yoLxgnRzcz0WeXKoS+saSulUll0HM4ctM+1yuwb39Ks= + + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.swiftinterface + + hash2 + + vGGFO0k88zQ6JRcKdMttbExxCKI+ZdGaWBITpRYg76A= + + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios.swiftmodule + + hash2 + + itDsFvafzI7TDR5b6Q8UajP6MffZighQf0gKCXec7bg= + + + Modules/module.modulemap + + hash2 + + D+WZFrAG0KPhGeItkzdjkSXVW8iUSaD30gTuC04fyGI= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Info.plist b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Info.plist new file mode 100644 index 0000000..4c7fc09 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.io.ionic.libs.filetransfer.IONFileTransferLib + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/DWARF/IONFileTransferLib b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/DWARF/IONFileTransferLib new file mode 100644 index 0000000..aa0d849 Binary files /dev/null and b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/DWARF/IONFileTransferLib differ diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/Relocations/aarch64/IONFileTransferLib.yml b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/Relocations/aarch64/IONFileTransferLib.yml new file mode 100644 index 0000000..6e36ca6 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/Relocations/aarch64/IONFileTransferLib.yml @@ -0,0 +1,190 @@ +--- +triple: 'arm64-apple-darwin' +binary-path: '/Users/andre.destro/Library/Developer/Xcode/DerivedData/IONFileTransferLib-bhjyknwpzwdmovcwkbkiigjytkcn/Build/Intermediates.noindex/ArchiveIntermediates/IONFileTransferLib/InstallationBuildProductsLocation/Library/Frameworks/IONFileTransferLib.framework/IONFileTransferLib' +relocations: + - { offset: 0x32CF5, size: 0x8, addend: 0x0, symName: _IONFileTransferLibVersionString, symObjAddr: 0x0, symBinAddr: 0xD820, symSize: 0x0 } + - { offset: 0x32D29, size: 0x8, addend: 0x0, symName: _IONFileTransferLibVersionNumber, symObjAddr: 0x40, symBinAddr: 0xD860, symSize: 0x0 } + - { offset: 0x32D65, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvg', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x184 } + - { offset: 0x32DEC, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionO2eeoiySbAC_ACtFZ', symObjAddr: 0x198, symBinAddr: 0x4198, symSize: 0x4 } + - { offset: 0x32E19, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x1A0, symBinAddr: 0x419C, symSize: 0x238 } + - { offset: 0x32EBD, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwCP', symObjAddr: 0x3D8, symBinAddr: 0x43D4, symSize: 0x30 } + - { offset: 0x32ED1, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOWOy', symObjAddr: 0x408, symBinAddr: 0x4404, symSize: 0x7C } + - { offset: 0x32EE5, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwxx', symObjAddr: 0x484, symBinAddr: 0x4480, symSize: 0x14 } + - { offset: 0x32EF9, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOWOe', symObjAddr: 0x498, symBinAddr: 0x4494, symSize: 0x80 } + - { offset: 0x32F0D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwcp', symObjAddr: 0x518, symBinAddr: 0x4514, symSize: 0x60 } + - { offset: 0x32F21, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwca', symObjAddr: 0x578, symBinAddr: 0x4574, symSize: 0x70 } + - { offset: 0x32F35, size: 0x8, addend: 0x0, symName: ___swift_memcpy33_8, symObjAddr: 0x5E8, symBinAddr: 0x45E4, symSize: 0x14 } + - { offset: 0x32F49, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwta', symObjAddr: 0x5FC, symBinAddr: 0x45F8, symSize: 0x48 } + - { offset: 0x32F5D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwet', symObjAddr: 0x644, symBinAddr: 0x4640, symSize: 0x48 } + - { offset: 0x32F71, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwst', symObjAddr: 0x68C, symBinAddr: 0x4688, symSize: 0x48 } + - { offset: 0x32F85, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwug', symObjAddr: 0x6D4, symBinAddr: 0x46D0, symSize: 0x8 } + - { offset: 0x32F99, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwup', symObjAddr: 0x6DC, symBinAddr: 0x46D8, symSize: 0x4 } + - { offset: 0x32FAD, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwui', symObjAddr: 0x6E0, symBinAddr: 0x46DC, symSize: 0x8 } + - { offset: 0x32FC1, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOMa', symObjAddr: 0x6E8, symBinAddr: 0x46E4, symSize: 0x10 } + - { offset: 0x33068, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs5ErrorAAsADP7_domainSSvgTW', symObjAddr: 0x184, symBinAddr: 0x4184, symSize: 0x4 } + - { offset: 0x33084, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs5ErrorAAsADP5_codeSivgTW', symObjAddr: 0x188, symBinAddr: 0x4188, symSize: 0x4 } + - { offset: 0x330A0, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs5ErrorAAsADP9_userInfoyXlSgvgTW', symObjAddr: 0x18C, symBinAddr: 0x418C, symSize: 0x4 } + - { offset: 0x330BC, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs5ErrorAAsADP19_getEmbeddedNSErroryXlSgyFTW', symObjAddr: 0x190, symBinAddr: 0x4190, symSize: 0x4 } + - { offset: 0x33142, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvg', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x184 } + - { offset: 0x33245, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x194, symBinAddr: 0x4194, symSize: 0x4 } + - { offset: 0x33349, size: 0x8, addend: 0x0, symName: '_$sSTsSQ7ElementRpzrlE8containsySbABFSaySSG_Tg5', symObjAddr: 0x0, symBinAddr: 0x46F4, symSize: 0xC4 } + - { offset: 0x334A7, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib22IONFLTRInputsValidatorCMa', symObjAddr: 0xD4, symBinAddr: 0x47C8, symSize: 0x20 } + - { offset: 0x334E3, size: 0x8, addend: 0x0, symName: '_$sS2SSysWl', symObjAddr: 0x378, symBinAddr: 0x4A6C, symSize: 0x44 } + - { offset: 0x334F7, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOACs5ErrorAAWl', symObjAddr: 0x3BC, symBinAddr: 0x4AB0, symSize: 0x44 } + - { offset: 0x3350B, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledName, symObjAddr: 0x400, symBinAddr: 0x4AF4, symSize: 0x40 } + - { offset: 0x33550, size: 0x8, addend: 0x0, symName: '_$sSTsSQ7ElementRpzrlE8containsySbABFSaySSG_Tg5', symObjAddr: 0x0, symBinAddr: 0x46F4, symSize: 0xC4 } + - { offset: 0x3370C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib22IONFLTRInputsValidatorCfD', symObjAddr: 0xC4, symBinAddr: 0x47B8, symSize: 0x10 } + - { offset: 0x337A2, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib22IONFLTRInputsValidatorC08validateB6Inputs9serverURL04fileI0y10Foundation0I0V_AItKFTf4nnd_n', symObjAddr: 0xF4, symBinAddr: 0x47E8, symSize: 0x284 } + - { offset: 0x33933, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCACycfC', symObjAddr: 0x0, symBinAddr: 0x4B34, symSize: 0x20 } + - { offset: 0x33B06, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCMa', symObjAddr: 0xB0, symBinAddr: 0x4BE4, symSize: 0x20 } + - { offset: 0x33C38, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCfETo', symObjAddr: 0xBD4, symBinAddr: 0x5708, symSize: 0x48 } + - { offset: 0x33C6E, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCACycfC', symObjAddr: 0x0, symBinAddr: 0x4B34, symSize: 0x20 } + - { offset: 0x33CA9, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCACycfc', symObjAddr: 0x20, symBinAddr: 0x4B54, symSize: 0x90 } + - { offset: 0x33D20, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCACycfcTo', symObjAddr: 0xD0, symBinAddr: 0x4C04, symSize: 0x9C } + - { offset: 0x33F54, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerC12downloadFile13fromServerURL02tofI015withHttpOptionsAA16IONFLTRPublisherC10Foundation0I0V_AlA011IONFLTRHttpM0VtKF', symObjAddr: 0x16C, symBinAddr: 0x4CA0, symSize: 0x3AC } + - { offset: 0x34172, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerC10uploadFile04fromF3URL08toServerH017withUploadOptions07andHttpM0AA16IONFLTRPublisherC10Foundation0H0V_AmA013IONFLTRUploadM0VAA011IONFLTRHttpM0VtKF', symObjAddr: 0x518, symBinAddr: 0x504C, symSize: 0x390 } + - { offset: 0x3430E, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerC16prepareForUpload33_B8C7B2808035353E1FDF0D19D08736E0LL7fileURL06serverQ013uploadOptions04httpT010Foundation10URLRequestV_AJ0Q0VtAN_AnA013IONFLTRUploadT0VAA011IONFLTRHttpT0VtKF', symObjAddr: 0x8A8, symBinAddr: 0x53DC, symSize: 0x2FC } + - { offset: 0x3439F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCfD', symObjAddr: 0xBA4, symBinAddr: 0x56D8, symSize: 0x30 } + - { offset: 0x344FF, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateCfE', symObjAddr: 0x78, symBinAddr: 0x582C, symSize: 0x14 } + - { offset: 0x3452C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateCfETo', symObjAddr: 0xBC, symBinAddr: 0x5870, symSize: 0x14 } + - { offset: 0x3455B, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateCMa', symObjAddr: 0xD0, symBinAddr: 0x5884, symSize: 0x20 } + - { offset: 0x34643, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task15didSendBodyData14totalBytesSent0mn10ExpectedToJ0ySo12NSURLSessionC_So0R4TaskCs5Int64VA2NtFTo', symObjAddr: 0xF0, symBinAddr: 0x58A4, symSize: 0xA8 } + - { offset: 0x347EA, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0M4TaskCs0L0_pSgtFTo', symObjAddr: 0x61C, symBinAddr: 0x5DD0, symSize: 0x8C } + - { offset: 0x348C3, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task26willPerformHTTPRedirection10newRequest17completionHandlerySo12NSURLSessionC_So0P4TaskCSo17NSHTTPURLResponseC10Foundation10URLRequestVyAQSgctFTo', symObjAddr: 0x6A8, symBinAddr: 0x5E5C, symSize: 0x220 } + - { offset: 0x34973, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_8dataTask10didReceiveySo12NSURLSessionC_So0l4DataI0C10Foundation0M0VtFTo', symObjAddr: 0x8C8, symBinAddr: 0x607C, symSize: 0xE4 } + - { offset: 0x349CA, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataVSgWOe', symObjAddr: 0x9AC, symBinAddr: 0x6160, symSize: 0x14 } + - { offset: 0x349DE, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataV15_RepresentationOWOe', symObjAddr: 0x9C0, symBinAddr: 0x6174, symSize: 0x44 } + - { offset: 0x349F2, size: 0x8, addend: 0x0, symName: '_$s10Foundation10URLRequestVSgWOc', symObjAddr: 0xA44, symBinAddr: 0x61B8, symSize: 0x48 } + - { offset: 0x34A12, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0M4TaskCs0L0_pSgtFTf4dnnn_n', symObjAddr: 0xA8C, symBinAddr: 0x6200, symSize: 0x330 } + - { offset: 0x34BCF, size: 0x8, addend: 0x0, symName: '_$ss11AnyHashableVWOc', symObjAddr: 0xE00, symBinAddr: 0x6530, symSize: 0x3C } + - { offset: 0x34BE3, size: 0x8, addend: 0x0, symName: '_$sypWOc', symObjAddr: 0xE3C, symBinAddr: 0x656C, symSize: 0x3C } + - { offset: 0x34BF7, size: 0x8, addend: 0x0, symName: ___swift_destroy_boxed_opaque_existential_0, symObjAddr: 0xE78, symBinAddr: 0x65A8, symSize: 0x20 } + - { offset: 0x34C0B, size: 0x8, addend: 0x0, symName: '_$ss11AnyHashableVWOh', symObjAddr: 0xED4, symBinAddr: 0x6604, symSize: 0x34 } + - { offset: 0x34C1F, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataVSgWOy', symObjAddr: 0xF08, symBinAddr: 0x6638, symSize: 0x14 } + - { offset: 0x34C33, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataV15_RepresentationOWOy', symObjAddr: 0xF1C, symBinAddr: 0x664C, symSize: 0x44 } + - { offset: 0x34C6A, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC12receivedData33_C11A9EAC720B924A4FD97FC69DD27918LL10Foundation0G0Vvg', symObjAddr: 0x0, symBinAddr: 0x57B4, symSize: 0x78 } + - { offset: 0x34C95, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateCfD', symObjAddr: 0x8C, symBinAddr: 0x5840, symSize: 0x30 } + - { offset: 0x34D31, size: 0x8, addend: 0x0, symName: '_$sSTsE6reduce4into_qd__qd__n_yqd__z_7ElementQztKXEtKlFSDys11AnyHashableVypG_SDyS2SGTg50138$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0M4TaskCs0L0_pSgtFySDyS2SGz_s11dE21V3key_yp5valuettXEfU_Tf1ncn_n', symObjAddr: 0x198, symBinAddr: 0x594C, symSize: 0x484 } + - { offset: 0x35275, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCfE', symObjAddr: 0x484, symBinAddr: 0x6690, symSize: 0x3C } + - { offset: 0x3530A, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCfETo', symObjAddr: 0x4F4, symBinAddr: 0x6700, symSize: 0x3C } + - { offset: 0x35339, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCMU', symObjAddr: 0x530, symBinAddr: 0x673C, symSize: 0x8 } + - { offset: 0x3534D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCMa', symObjAddr: 0x538, symBinAddr: 0x6744, symSize: 0x3C } + - { offset: 0x35361, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCMr', symObjAddr: 0x574, symBinAddr: 0x6780, symSize: 0x78 } + - { offset: 0x353CF, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_12downloadTask12didWriteData17totalBytesWritten0mn10ExpectedToK0ySo12NSURLSessionC_So0r8DownloadI0Cs5Int64VA2NtFTo', symObjAddr: 0x5EC, symBinAddr: 0x67F8, symSize: 0xA8 } + - { offset: 0x3549E, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_12downloadTask22didFinishDownloadingToySo12NSURLSessionC_So0n8DownloadI0C10Foundation3URLVtFTo', symObjAddr: 0x694, symBinAddr: 0x68A0, symSize: 0xE0 } + - { offset: 0x35512, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0M4TaskCs0L0_pSgtFTo', symObjAddr: 0x774, symBinAddr: 0x6980, symSize: 0x8C } + - { offset: 0x355A5, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_4task26willPerformHTTPRedirection10newRequest17completionHandlerySo12NSURLSessionC_So0P4TaskCSo17NSHTTPURLResponseC10Foundation10URLRequestVyAQSgctFTo', symObjAddr: 0x800, symBinAddr: 0x6A0C, symSize: 0x220 } + - { offset: 0x3561D, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyFSS_SSTg5', symObjAddr: 0xAA8, symBinAddr: 0x6C2C, symSize: 0x1CC } + - { offset: 0x356E3, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtFSS_SSTg5', symObjAddr: 0xC74, symBinAddr: 0x6DF8, symSize: 0x340 } + - { offset: 0x35801, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_12downloadTask22didFinishDownloadingToySo12NSURLSessionC_So0n8DownloadI0C10Foundation3URLVtFTf4dnnn_n', symObjAddr: 0x10B0, symBinAddr: 0x7234, symSize: 0x3F8 } + - { offset: 0x35A19, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSS_SSTgm5Tf4g_n', symObjAddr: 0xFB4, symBinAddr: 0x7138, symSize: 0xFC } + - { offset: 0x35B8D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCfD', symObjAddr: 0x4C0, symBinAddr: 0x66CC, symSize: 0x34 } + - { offset: 0x35E09, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib26mapErrorToIONFLTRExceptionyAA0G0Os0E0_pF', symObjAddr: 0x0, symBinAddr: 0x762C, symSize: 0x530 } + - { offset: 0x35E2B, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib26mapErrorToIONFLTRExceptionyAA0G0Os0E0_pF', symObjAddr: 0x0, symBinAddr: 0x762C, symSize: 0x530 } + - { offset: 0x35ECC, size: 0x8, addend: 0x0, symName: '_$sSo7NSErrorCMa', symObjAddr: 0x570, symBinAddr: 0x7B5C, symSize: 0x3C } + - { offset: 0x35FC3, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherC7receive10subscriberyx_t7Combine10SubscriberRzs5Error_p7FailureRtzAA21IONFLTRTransferResultO5InputRtzlF', symObjAddr: 0x0, symBinAddr: 0x7BD8, symSize: 0x80 } + - { offset: 0x36042, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherC7Combine9PublisherAA7FailureAdEP_s5ErrorPWT', symObjAddr: 0xC0, symBinAddr: 0x7C98, symSize: 0xC } + - { offset: 0x36056, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherCMa', symObjAddr: 0xEC, symBinAddr: 0x7CC4, symSize: 0x20 } + - { offset: 0x36077, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherC7receive10subscriberyx_t7Combine10SubscriberRzs5Error_p7FailureRtzAA21IONFLTRTransferResultO5InputRtzlF', symObjAddr: 0x0, symBinAddr: 0x7BD8, symSize: 0x80 } + - { offset: 0x360D0, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherCfd', symObjAddr: 0x80, symBinAddr: 0x7C58, symSize: 0x1C } + - { offset: 0x36106, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherCfD', symObjAddr: 0x9C, symBinAddr: 0x7C74, symSize: 0x24 } + - { offset: 0x36147, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherC7Combine9PublisherAadEP7receive10subscriberyqd___tAD10SubscriberRd__7FailureQyd__AJRtz5InputQyd__6OutputRtzlFTW', symObjAddr: 0xCC, symBinAddr: 0x7CA4, symSize: 0x20 } + - { offset: 0x3620F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsV6method6params7headers7timeout16disableRedirects21shouldEncodeUrlParamsACSS_SDySSSaySSGGSDyS2SGSiS2btcfC', symObjAddr: 0x0, symBinAddr: 0x7CFC, symSize: 0x18 } + - { offset: 0x36262, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwxx', symObjAddr: 0x48, symBinAddr: 0x7D14, symSize: 0x30 } + - { offset: 0x36276, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwcp', symObjAddr: 0x78, symBinAddr: 0x7D44, symSize: 0x5C } + - { offset: 0x3628A, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwca', symObjAddr: 0xD4, symBinAddr: 0x7DA0, symSize: 0x94 } + - { offset: 0x3629E, size: 0x8, addend: 0x0, symName: ___swift_memcpy42_8, symObjAddr: 0x168, symBinAddr: 0x7E34, symSize: 0x14 } + - { offset: 0x362B2, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwta', symObjAddr: 0x17C, symBinAddr: 0x7E48, symSize: 0x6C } + - { offset: 0x362C6, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwet', symObjAddr: 0x1E8, symBinAddr: 0x7EB4, symSize: 0x48 } + - { offset: 0x362DA, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwst', symObjAddr: 0x230, symBinAddr: 0x7EFC, symSize: 0x4C } + - { offset: 0x362EE, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVMa', symObjAddr: 0x27C, symBinAddr: 0x7F48, symSize: 0x10 } + - { offset: 0x36377, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsV6method6params7headers7timeout16disableRedirects21shouldEncodeUrlParamsACSS_SDySSSaySSGGSDyS2SGSiS2btcfC', symObjAddr: 0x0, symBinAddr: 0x7CFC, symSize: 0x18 } + - { offset: 0x36481, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x7F58, symSize: 0x4 } + - { offset: 0x3684B, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOWOy', symObjAddr: 0x7A4, symBinAddr: 0x8624, symSize: 0x30 } + - { offset: 0x3685F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwxx', symObjAddr: 0x7D4, symBinAddr: 0x8654, symSize: 0x18 } + - { offset: 0x36873, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOWOe', symObjAddr: 0x7EC, symBinAddr: 0x866C, symSize: 0x30 } + - { offset: 0x36887, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwcp', symObjAddr: 0x81C, symBinAddr: 0x869C, symSize: 0x74 } + - { offset: 0x3689B, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwca', symObjAddr: 0x890, symBinAddr: 0x8710, symSize: 0x88 } + - { offset: 0x368AF, size: 0x8, addend: 0x0, symName: ___swift_memcpy41_8, symObjAddr: 0x918, symBinAddr: 0x8798, symSize: 0x14 } + - { offset: 0x368C3, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwta', symObjAddr: 0x92C, symBinAddr: 0x87AC, symSize: 0x50 } + - { offset: 0x368D7, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwet', symObjAddr: 0x97C, symBinAddr: 0x87FC, symSize: 0x48 } + - { offset: 0x368EB, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwst', symObjAddr: 0x9C4, symBinAddr: 0x8844, symSize: 0x50 } + - { offset: 0x368FF, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwug', symObjAddr: 0xA14, symBinAddr: 0x8894, symSize: 0x8 } + - { offset: 0x36913, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwui', symObjAddr: 0xA20, symBinAddr: 0x889C, symSize: 0xC } + - { offset: 0x36927, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOMa', symObjAddr: 0xA2C, symBinAddr: 0x88A8, symSize: 0x10 } + - { offset: 0x3693B, size: 0x8, addend: 0x0, symName: ___swift_memcpy17_8, symObjAddr: 0xA3C, symBinAddr: 0x88B8, symSize: 0x14 } + - { offset: 0x3694F, size: 0x8, addend: 0x0, symName: ___swift_noop_void_return, symObjAddr: 0xA50, symBinAddr: 0x88CC, symSize: 0x4 } + - { offset: 0x36963, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusVwet', symObjAddr: 0xA54, symBinAddr: 0x88D0, symSize: 0x54 } + - { offset: 0x36977, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusVwst', symObjAddr: 0xAA8, symBinAddr: 0x8924, symSize: 0x44 } + - { offset: 0x3698B, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusVMa', symObjAddr: 0xAEC, symBinAddr: 0x8968, symSize: 0x10 } + - { offset: 0x3699F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwxx', symObjAddr: 0xAFC, symBinAddr: 0x8978, symSize: 0x28 } + - { offset: 0x369B3, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwcp', symObjAddr: 0xB24, symBinAddr: 0x89A0, symSize: 0x44 } + - { offset: 0x369C7, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwca', symObjAddr: 0xB68, symBinAddr: 0x89E4, symSize: 0x74 } + - { offset: 0x369DB, size: 0x8, addend: 0x0, symName: ___swift_memcpy40_8, symObjAddr: 0xBDC, symBinAddr: 0x8A58, symSize: 0x14 } + - { offset: 0x369EF, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwta', symObjAddr: 0xBF0, symBinAddr: 0x8A6C, symSize: 0x4C } + - { offset: 0x36A03, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwet', symObjAddr: 0xC3C, symBinAddr: 0x8AB8, symSize: 0x48 } + - { offset: 0x36A17, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwst', symObjAddr: 0xC84, symBinAddr: 0x8B00, symSize: 0x48 } + - { offset: 0x36A2B, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVMa', symObjAddr: 0xCCC, symBinAddr: 0x8B48, symSize: 0x10 } + - { offset: 0x36A70, size: 0x8, addend: 0x0, symName: '_$sSDsSQR_rlE2eeoiySbSDyxq_G_ABtFZSS_SSTgm5', symObjAddr: 0x1E0, symBinAddr: 0x8094, symSize: 0x278 } + - { offset: 0x36B53, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x7F58, symSize: 0x4 } + - { offset: 0x36B73, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV2eeoiySbAC_ACtFZ', symObjAddr: 0x4, symBinAddr: 0x7F5C, symSize: 0x34 } + - { offset: 0x36B97, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV2eeoiySbAC_ACtFZ', symObjAddr: 0x38, symBinAddr: 0x7F90, symSize: 0x4 } + - { offset: 0x36BB8, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivg', symObjAddr: 0x40, symBinAddr: 0x7F94, symSize: 0x8 } + - { offset: 0x36BD2, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivs', symObjAddr: 0x48, symBinAddr: 0x7F9C, symSize: 0x8 } + - { offset: 0x36C04, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivM', symObjAddr: 0x50, symBinAddr: 0x7FA4, symSize: 0x10 } + - { offset: 0x36C18, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivg', symObjAddr: 0x64, symBinAddr: 0x7FB4, symSize: 0x8 } + - { offset: 0x36C2C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivs', symObjAddr: 0x6C, symBinAddr: 0x7FBC, symSize: 0x8 } + - { offset: 0x36C5E, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivM', symObjAddr: 0x74, symBinAddr: 0x7FC4, symSize: 0x10 } + - { offset: 0x36C82, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvg', symObjAddr: 0x88, symBinAddr: 0x7FD4, symSize: 0x8 } + - { offset: 0x36C96, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvs', symObjAddr: 0x90, symBinAddr: 0x7FDC, symSize: 0x8 } + - { offset: 0x36CC6, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvM', symObjAddr: 0x98, symBinAddr: 0x7FE4, symSize: 0x10 } + - { offset: 0x36D07, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvg', symObjAddr: 0x128, symBinAddr: 0x7FF4, symSize: 0x2C } + - { offset: 0x36D1B, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvs', symObjAddr: 0x154, symBinAddr: 0x8020, symSize: 0x34 } + - { offset: 0x36D50, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvg', symObjAddr: 0x19C, symBinAddr: 0x8054, symSize: 0x8 } + - { offset: 0x36D64, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvs', symObjAddr: 0x1A4, symBinAddr: 0x805C, symSize: 0x28 } + - { offset: 0x36D99, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvM', symObjAddr: 0x1CC, symBinAddr: 0x8084, symSize: 0x10 } + - { offset: 0x36DD1, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x45C, symBinAddr: 0x830C, symSize: 0x80 } + - { offset: 0x36E0F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x4DC, symBinAddr: 0x838C, symSize: 0x298 } + - { offset: 0x36F5E, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib17IONFLTRFileHelperCMa', symObjAddr: 0x10, symBinAddr: 0x8B5C, symSize: 0x20 } + - { offset: 0x36F8F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib17IONFLTRFileHelperC23createParentDirectories3fory10Foundation3URLV_tKFTf4nd_n', symObjAddr: 0x30, symBinAddr: 0x8B7C, symSize: 0x240 } + - { offset: 0x37575, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperCMa', symObjAddr: 0x1674, symBinAddr: 0xA420, symSize: 0x20 } + - { offset: 0x37594, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlFSS_Tg5', symObjAddr: 0x16D4, symBinAddr: 0xA440, symSize: 0x64 } + - { offset: 0x375CC, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlFSS_Tg5', symObjAddr: 0x1738, symBinAddr: 0xA4A4, symSize: 0xE0 } + - { offset: 0x37697, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF10Foundation12URLQueryItemV_Tg5', symObjAddr: 0x1818, symBinAddr: 0xA584, symSize: 0x174 } + - { offset: 0x377B1, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF10Foundation12URLQueryItemV_Tg5', symObjAddr: 0x198C, symBinAddr: 0xA6F8, symSize: 0x1C } + - { offset: 0x377C9, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtFSS_Tg5', symObjAddr: 0x19A8, symBinAddr: 0xA714, symSize: 0x24 } + - { offset: 0x377E1, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF10Foundation12URLQueryItemV_Tg5', symObjAddr: 0x19CC, symBinAddr: 0xA738, symSize: 0x174 } + - { offset: 0x379EC, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC19createMultipartBody13uploadOptions7fileURL0kE08boundary10Foundation4DataVAA013IONFLTRUploadJ0V_AI0L0VAA011IONFLTRFileE0CSStKFySS_SStXEfU_TA', symObjAddr: 0x28E0, symBinAddr: 0xB5B0, symSize: 0x2C } + - { offset: 0x37A00, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC13buildHttpBody4from10Foundation4DataVSgAA18IONFLTRHttpOptionsV_tFSaySSGSS_ALtXEfU_TA', symObjAddr: 0x298C, symBinAddr: 0xB5DC, symSize: 0x8 } + - { offset: 0x37A14, size: 0x8, addend: 0x0, symName: '_$sSaySSGSayxGSKsWl', symObjAddr: 0x2994, symBinAddr: 0xB5E4, symSize: 0x4C } + - { offset: 0x37A28, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameAbstract, symObjAddr: 0x29E0, symBinAddr: 0xB630, symSize: 0x44 } + - { offset: 0x37A97, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVWOr', symObjAddr: 0x2C94, symBinAddr: 0xB8E4, symSize: 0x44 } + - { offset: 0x37AAB, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVWOs', symObjAddr: 0x2CD8, symBinAddr: 0xB928, symSize: 0x44 } + - { offset: 0x37BC8, size: 0x8, addend: 0x0, symName: '_$sSTsE7flatMapySay7ElementQyd__Gqd__ABQzKXEKSTRd__lFSDySSSaySSGG_Say10Foundation12URLQueryItemVGTg5027$sSSSaySSGSay10Foundation12eF193VGIgggo_SS3key_AA5valuetAEs5Error_pIegnrzo_TR087$s18IONFileTransferLib23IONFLTRURLRequestHelperC15buildQueryItems4fromSay10Foundation12bC45VGAA18IONFLTRHttpOptionsV_tFAISS_SaySSGtXEfU_Tf3nnpf_nTf1cn_n', symObjAddr: 0xF20, symBinAddr: 0x9CDC, symSize: 0x41C } + - { offset: 0x3807F, size: 0x8, addend: 0x0, symName: '_$sSTsE7flatMapySay7ElementQyd__Gqd__ABQzKXEKSTRd__lFSDySSSaySSGG_AFTg555$sSSSaySSGAAIgggo_SS3key_AA5valuetAAs5Error_pIegnrzo_TRSSA2FIgggo_Tf1cn_nTf4ng_n', symObjAddr: 0x1C4C, symBinAddr: 0xA9B8, symSize: 0x2F8 } + - { offset: 0x38347, size: 0x8, addend: 0x0, symName: '_$sSTsE7forEachyyy7ElementQzKXEKFSDyS2SG_Tg544$sS2SIggg_SS3key_SS5valuets5Error_pIegnzo_TRS2SIggg_Tf1cn_nTf4ng_n', symObjAddr: 0x1F44, symBinAddr: 0xACB0, symSize: 0x208 } + - { offset: 0x383EA, size: 0x8, addend: 0x0, symName: '_$sSlsE3mapySayqd__Gqd__7ElementQzqd_0_YKXEqd_0_YKs5ErrorRd_0_r0_lFSaySSG_SSs5NeverOTg5139$s18IONFileTransferLib23IONFLTRURLRequestHelperC13buildHttpBody4from10Foundation4DataVSgAA18IONFLTRHttpOptionsV_tFSaySSGSS_ALtXEfU_S2SXEfU_0fG3Lib0iJ0CSSAJ0rS0VTf1cn_nTf4ndgg_n', symObjAddr: 0x2A24, symBinAddr: 0xB674, symSize: 0x270 } + - { offset: 0x386F3, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC12setupRequest9serverURL11httpOptions10Foundation10URLRequestVAG0I0V_AA011IONFLTRHttpK0VtKF', symObjAddr: 0x0, symBinAddr: 0x8DBC, symSize: 0x730 } + - { offset: 0x38996, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC25configureRequestForUpload7request11httpOptions06uploadL07fileURL0nE010Foundation10URLRequestV_AJ0O0VtAL_AA011IONFLTRHttpL0VAA013IONFLTRUploadL0VAnA011IONFLTRFileE0CtKF', symObjAddr: 0x730, symBinAddr: 0x94EC, symSize: 0x7F0 } + - { offset: 0x38C5F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC13buildHttpBody4from10Foundation4DataVSgAA18IONFLTRHttpOptionsV_tFSaySSGSS_ALtXEfU_', symObjAddr: 0x133C, symBinAddr: 0xA0F8, symSize: 0x98 } + - { offset: 0x38CCE, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC19createMultipartBody13uploadOptions7fileURL0kE08boundary10Foundation4DataVAA013IONFLTRUploadJ0V_AI0L0VAA011IONFLTRFileE0CSStKFySS_SStXEfU_', symObjAddr: 0x13D4, symBinAddr: 0xA190, symSize: 0x290 } + - { offset: 0x3903E, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC19createMultipartBody13uploadOptions7fileURL0kE08boundary10Foundation4DataVAA013IONFLTRUploadJ0V_AI0L0VAA011IONFLTRFileE0CSStKFTf4nndnd_n', symObjAddr: 0x214C, symBinAddr: 0xAEB8, symSize: 0x6F8 } + - { offset: 0x39704, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateC16handleCompletion4task5errorySo16NSURLSessionTaskC_s5Error_pSgtF', symObjAddr: 0x0, symBinAddr: 0xB96C, symSize: 0x224 } + - { offset: 0x39827, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateCfETo', symObjAddr: 0x6D8, symBinAddr: 0xC044, symSize: 0x10 } + - { offset: 0x39856, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateCMa', symObjAddr: 0x6E8, symBinAddr: 0xC054, symSize: 0x20 } + - { offset: 0x3986A, size: 0x8, addend: 0x0, symName: '_$ss11AnyHashableV3key_yp5valuetWOh', symObjAddr: 0x7E4, symBinAddr: 0xC074, symSize: 0x40 } + - { offset: 0x398F6, size: 0x8, addend: 0x0, symName: '_$sSTsE6reduce4into_qd__qd__n_yqd__z_7ElementQztKXEtKlFSDys11AnyHashableVypG_SDyS2SGTg50122$s18IONFileTransferLib19IONFLTRBaseDelegateC16handleCompletion4task5errorySo16NSURLSessionTaskC_s5Error_pSgtFySDyS2SGz_s11dE21V3key_yp5valuettXEfU_Tf1ncn_n', symObjAddr: 0x224, symBinAddr: 0xBB90, symSize: 0x458 } + - { offset: 0x39B1F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateC16handleCompletion4task5errorySo16NSURLSessionTaskC_s5Error_pSgtF', symObjAddr: 0x0, symBinAddr: 0xB96C, symSize: 0x224 } + - { offset: 0x39C7C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateCACycfcTo', symObjAddr: 0x67C, symBinAddr: 0xBFE8, symSize: 0x2C } + - { offset: 0x39CDB, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateCfD', symObjAddr: 0x6A8, symBinAddr: 0xC014, symSize: 0x30 } + - { offset: 0x39D94, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsV11chunkedMode8mimeType7fileKey10formParamsACSb_SSSgSSSDyS2SGSgtcfC', symObjAddr: 0x0, symBinAddr: 0xC0B4, symSize: 0x14 } + - { offset: 0x39DDD, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwxx', symObjAddr: 0x44, symBinAddr: 0xC0C8, symSize: 0x30 } + - { offset: 0x39DF1, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwcp', symObjAddr: 0x74, symBinAddr: 0xC0F8, symSize: 0x5C } + - { offset: 0x39E05, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwca', symObjAddr: 0xD0, symBinAddr: 0xC154, symSize: 0x8C } + - { offset: 0x39E19, size: 0x8, addend: 0x0, symName: ___swift_memcpy48_8, symObjAddr: 0x15C, symBinAddr: 0xC1E0, symSize: 0x14 } + - { offset: 0x39E2D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwta', symObjAddr: 0x170, symBinAddr: 0xC1F4, symSize: 0x5C } + - { offset: 0x39E41, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwet', symObjAddr: 0x1CC, symBinAddr: 0xC250, symSize: 0x48 } + - { offset: 0x39E55, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwst', symObjAddr: 0x214, symBinAddr: 0xC298, symSize: 0x4C } + - { offset: 0x39E69, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVMa', symObjAddr: 0x260, symBinAddr: 0xC2E4, symSize: 0x10 } + - { offset: 0x39ED4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsV11chunkedMode8mimeType7fileKey10formParamsACSb_SSSgSSSDyS2SGSgtcfC', symObjAddr: 0x0, symBinAddr: 0xC0B4, symSize: 0x14 } +... diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Headers/IONFileTransferLib-Swift.h b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Headers/IONFileTransferLib-Swift.h new file mode 100644 index 0000000..3655b8f --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Headers/IONFileTransferLib-Swift.h @@ -0,0 +1,648 @@ +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.1) +#ifndef IONFILETRANSFERLIB_SWIFT_H +#define IONFILETRANSFERLIB_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#endif +#if defined(__cplusplus) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wnon-modular-include-in-framework-module" +#if defined(__arm64e__) && __has_include() +# include +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-macro-identifier" +# ifndef __ptrauth_swift_value_witness_function_pointer +# define __ptrauth_swift_value_witness_function_pointer(x) +# endif +# ifndef __ptrauth_swift_class_method_pointer +# define __ptrauth_swift_class_method_pointer(x) +# endif +#pragma clang diagnostic pop +#endif +#pragma clang diagnostic pop +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif +#if !defined(SWIFT_RUNTIME_NAME) +# if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# else +# define SWIFT_RUNTIME_NAME(X) +# endif +#endif +#if !defined(SWIFT_COMPILE_NAME) +# if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# else +# define SWIFT_COMPILE_NAME(X) +# endif +#endif +#if !defined(SWIFT_METHOD_FAMILY) +# if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# else +# define SWIFT_METHOD_FAMILY(X) +# endif +#endif +#if !defined(SWIFT_NOESCAPE) +# if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +# else +# define SWIFT_NOESCAPE +# endif +#endif +#if !defined(SWIFT_RELEASES_ARGUMENT) +# if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# else +# define SWIFT_RELEASES_ARGUMENT +# endif +#endif +#if !defined(SWIFT_WARN_UNUSED_RESULT) +# if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# else +# define SWIFT_WARN_UNUSED_RESULT +# endif +#endif +#if !defined(SWIFT_NORETURN) +# if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +# else +# define SWIFT_NORETURN +# endif +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if !defined(SWIFT_DEPRECATED_OBJC) +# if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# endif +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if !defined(SWIFT_INDIRECT_RESULT) +# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result)) +#endif +#if !defined(SWIFT_CONTEXT) +# define SWIFT_CONTEXT __attribute__((swift_context)) +#endif +#if !defined(SWIFT_ERROR_RESULT) +# define SWIFT_ERROR_RESULT __attribute__((swift_error_result)) +#endif +#if defined(__cplusplus) +# define SWIFT_NOEXCEPT noexcept +#else +# define SWIFT_NOEXCEPT +#endif +#if !defined(SWIFT_C_INLINE_THUNK) +# if __has_attribute(always_inline) +# if __has_attribute(nodebug) +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug)) +# else +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) +# endif +# else +# define SWIFT_C_INLINE_THUNK inline +# endif +#endif +#if defined(_WIN32) +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport) +#endif +#else +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(objc_modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +@import ObjectiveC; +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" +#pragma clang diagnostic ignored "-Wunsafe-buffer-usage" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="IONFileTransferLib",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) + +/// A manager class for handling file transfer operations. +/// The IONFLTRManager class provides methods to manage file downloads and uploads, including +/// preparing, validating, and executing file transfer operations. It integrates with validators, +/// file helpers, and URL request helpers to ensure smooth and reliable file transfers. +SWIFT_CLASS("_TtC18IONFileTransferLib14IONFLTRManager") +@interface IONFLTRManager : NSObject +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#if defined(__cplusplus) +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.1) +#ifndef IONFILETRANSFERLIB_SWIFT_H +#define IONFILETRANSFERLIB_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#endif +#if defined(__cplusplus) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wnon-modular-include-in-framework-module" +#if defined(__arm64e__) && __has_include() +# include +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-macro-identifier" +# ifndef __ptrauth_swift_value_witness_function_pointer +# define __ptrauth_swift_value_witness_function_pointer(x) +# endif +# ifndef __ptrauth_swift_class_method_pointer +# define __ptrauth_swift_class_method_pointer(x) +# endif +#pragma clang diagnostic pop +#endif +#pragma clang diagnostic pop +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif +#if !defined(SWIFT_RUNTIME_NAME) +# if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# else +# define SWIFT_RUNTIME_NAME(X) +# endif +#endif +#if !defined(SWIFT_COMPILE_NAME) +# if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# else +# define SWIFT_COMPILE_NAME(X) +# endif +#endif +#if !defined(SWIFT_METHOD_FAMILY) +# if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# else +# define SWIFT_METHOD_FAMILY(X) +# endif +#endif +#if !defined(SWIFT_NOESCAPE) +# if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +# else +# define SWIFT_NOESCAPE +# endif +#endif +#if !defined(SWIFT_RELEASES_ARGUMENT) +# if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# else +# define SWIFT_RELEASES_ARGUMENT +# endif +#endif +#if !defined(SWIFT_WARN_UNUSED_RESULT) +# if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# else +# define SWIFT_WARN_UNUSED_RESULT +# endif +#endif +#if !defined(SWIFT_NORETURN) +# if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +# else +# define SWIFT_NORETURN +# endif +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if !defined(SWIFT_DEPRECATED_OBJC) +# if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# endif +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if !defined(SWIFT_INDIRECT_RESULT) +# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result)) +#endif +#if !defined(SWIFT_CONTEXT) +# define SWIFT_CONTEXT __attribute__((swift_context)) +#endif +#if !defined(SWIFT_ERROR_RESULT) +# define SWIFT_ERROR_RESULT __attribute__((swift_error_result)) +#endif +#if defined(__cplusplus) +# define SWIFT_NOEXCEPT noexcept +#else +# define SWIFT_NOEXCEPT +#endif +#if !defined(SWIFT_C_INLINE_THUNK) +# if __has_attribute(always_inline) +# if __has_attribute(nodebug) +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug)) +# else +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) +# endif +# else +# define SWIFT_C_INLINE_THUNK inline +# endif +#endif +#if defined(_WIN32) +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport) +#endif +#else +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(objc_modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +@import ObjectiveC; +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" +#pragma clang diagnostic ignored "-Wunsafe-buffer-usage" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="IONFileTransferLib",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) + +/// A manager class for handling file transfer operations. +/// The IONFLTRManager class provides methods to manage file downloads and uploads, including +/// preparing, validating, and executing file transfer operations. It integrates with validators, +/// file helpers, and URL request helpers to ensure smooth and reliable file transfers. +SWIFT_CLASS("_TtC18IONFileTransferLib14IONFLTRManager") +@interface IONFLTRManager : NSObject +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#if defined(__cplusplus) +#endif +#pragma clang diagnostic pop +#endif + +#else +#error unsupported Swift architecture +#endif diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/IONFileTransferLib b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/IONFileTransferLib new file mode 100755 index 0000000..16b3858 Binary files /dev/null and b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/IONFileTransferLib differ diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Info.plist b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Info.plist new file mode 100644 index 0000000..adbc088 Binary files /dev/null and b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Info.plist differ diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.abi.json b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.abi.json new file mode 100644 index 0000000..614f9a5 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.abi.json @@ -0,0 +1,2496 @@ +{ + "ABIRoot": { + "kind": "Root", + "name": "IONFileTransferLib", + "printedName": "IONFileTransferLib", + "children": [ + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "TypeDecl", + "name": "IONFLTRException", + "printedName": "IONFLTRException", + "children": [ + { + "kind": "Var", + "name": "invalidPath", + "printedName": "invalidPath", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.String?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(path: Swift.String?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO11invalidPathyACSSSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO11invalidPathyACSSSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "emptyURL", + "printedName": "emptyURL", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.String?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(url: Swift.String?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO8emptyURLyACSSSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO8emptyURLyACSSSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "invalidURL", + "printedName": "invalidURL", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.String) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(url: Swift.String)", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO10invalidURLyACSS_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO10invalidURLyACSS_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "fileDoesNotExist", + "printedName": "fileDoesNotExist", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> ((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO16fileDoesNotExistyACs5Error_pSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO16fileDoesNotExistyACs5Error_pSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "cannotCreateDirectory", + "printedName": "cannotCreateDirectory", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.String, (any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String, (any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(path: Swift.String, cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO21cannotCreateDirectoryyACSS_s5Error_pSgtcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO21cannotCreateDirectoryyACSS_s5Error_pSgtcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "httpError", + "printedName": "httpError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.Int, Swift.String?, [Swift.String : Swift.String]?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.String?, [Swift.String : Swift.String]?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(responseCode: Swift.Int, responseBody: Swift.String?, headers: [Swift.String : Swift.String]?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Swift.String]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO9httpErroryACSi_SSSgSDyS2SGSgtcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO9httpErroryACSi_SSSgSDyS2SGSgtcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "connectionError", + "printedName": "connectionError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> ((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO15connectionErroryACs0F0_pSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO15connectionErroryACs0F0_pSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "transferError", + "printedName": "transferError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> ((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO13transferErroryACs0F0_pSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO13transferErroryACs0F0_pSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "unknownError", + "printedName": "unknownError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> ((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO12unknownErroryACs0F0_pSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO12unknownErroryACs0F0_pSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvp", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvg", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvg", + "moduleName": "IONFileTransferLib", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO2eeoiySbAC_ACtFZ", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO2eeoiySbAC_ACtFZ", + "moduleName": "IONFileTransferLib", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "isFromExtension": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "TypeDecl", + "name": "IONFLTRManager", + "printedName": "IONFLTRManager", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRManager", + "printedName": "IONFileTransferLib.IONFLTRManager", + "usr": "c:@M@IONFileTransferLib@objc(cs)IONFLTRManager" + } + ], + "declKind": "Constructor", + "usr": "c:@M@IONFileTransferLib@objc(cs)IONFLTRManager(im)init", + "mangledName": "$s18IONFileTransferLib14IONFLTRManagerCACycfc", + "moduleName": "IONFileTransferLib", + "overriding": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "AccessControl", + "Override" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "downloadFile", + "printedName": "downloadFile(fromServerURL:toFileURL:withHttpOptions:)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRPublisher", + "printedName": "IONFileTransferLib.IONFLTRPublisher", + "usr": "s:18IONFileTransferLib16IONFLTRPublisherC" + }, + { + "kind": "TypeNominal", + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" + }, + { + "kind": "TypeNominal", + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRHttpOptions", + "printedName": "IONFileTransferLib.IONFLTRHttpOptions", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib14IONFLTRManagerC12downloadFile13fromServerURL02tofI015withHttpOptionsAA16IONFLTRPublisherC10Foundation0I0V_AlA011IONFLTRHttpM0VtKF", + "mangledName": "$s18IONFileTransferLib14IONFLTRManagerC12downloadFile13fromServerURL02tofI015withHttpOptionsAA16IONFLTRPublisherC10Foundation0I0V_AlA011IONFLTRHttpM0VtKF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "uploadFile", + "printedName": "uploadFile(fromFileURL:toServerURL:withUploadOptions:andHttpOptions:)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRPublisher", + "printedName": "IONFileTransferLib.IONFLTRPublisher", + "usr": "s:18IONFileTransferLib16IONFLTRPublisherC" + }, + { + "kind": "TypeNominal", + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" + }, + { + "kind": "TypeNominal", + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRUploadOptions", + "printedName": "IONFileTransferLib.IONFLTRUploadOptions", + "usr": "s:18IONFileTransferLib20IONFLTRUploadOptionsV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRHttpOptions", + "printedName": "IONFileTransferLib.IONFLTRHttpOptions", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib14IONFLTRManagerC10uploadFile04fromF3URL08toServerH017withUploadOptions07andHttpM0AA16IONFLTRPublisherC10Foundation0H0V_AmA013IONFLTRUploadM0VAA011IONFLTRHttpM0VtKF", + "mangledName": "$s18IONFileTransferLib14IONFLTRManagerC10uploadFile04fromF3URL08toServerH017withUploadOptions07andHttpM0AA16IONFLTRPublisherC10Foundation0H0V_AmA013IONFLTRUploadM0VAA011IONFLTRHttpM0VtKF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "c:@M@IONFileTransferLib@objc(cs)IONFLTRManager", + "mangledName": "$s18IONFileTransferLib14IONFLTRManagerC", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment", + "ObjC" + ], + "superclassUsr": "c:objc(cs)NSObject", + "hasMissingDesignatedInitializers": true, + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Combine", + "printedName": "Combine", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "TypeDecl", + "name": "IONFLTRPublisher", + "printedName": "IONFLTRPublisher", + "children": [ + { + "kind": "Function", + "name": "receive", + "printedName": "receive(subscriber:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "GenericTypeParam", + "printedName": "τ_0_0" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib16IONFLTRPublisherC7receive10subscriberyx_t7Combine10SubscriberRzs5Error_p7FailureRtzAA21IONFLTRTransferResultO5InputRtzlF", + "mangledName": "$s18IONFileTransferLib16IONFLTRPublisherC7receive10subscriberyx_t7Combine10SubscriberRzs5Error_p7FailureRtzAA21IONFLTRTransferResultO5InputRtzlF", + "moduleName": "IONFileTransferLib", + "genericSig": "<τ_0_0 where τ_0_0 : Combine.Subscriber, τ_0_0.Failure == any Swift.Error, τ_0_0.Input == IONFileTransferLib.IONFLTRTransferResult>", + "sugared_genericSig": "", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:18IONFileTransferLib16IONFLTRPublisherC", + "mangledName": "$s18IONFileTransferLib16IONFLTRPublisherC", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "hasMissingDesignatedInitializers": true, + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Publisher", + "printedName": "Publisher", + "children": [ + { + "kind": "TypeWitness", + "name": "Output", + "printedName": "Output", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + } + ] + }, + { + "kind": "TypeWitness", + "name": "Failure", + "printedName": "Failure", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ] + } + ], + "usr": "s:7Combine9PublisherP", + "mangledName": "$s7Combine9PublisherP" + } + ] + }, + { + "kind": "TypeDecl", + "name": "IONFLTRHttpOptions", + "printedName": "IONFLTRHttpOptions", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(method:params:headers:timeout:disableRedirects:shouldEncodeUrlParams:)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRHttpOptions", + "printedName": "IONFileTransferLib.IONFLTRHttpOptions", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : [Swift.String]]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sa" + } + ], + "hasDefaultArg": true, + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "hasDefaultArg": true, + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "hasDefaultArg": true, + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + } + ], + "declKind": "Constructor", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV6method6params7headers7timeout16disableRedirects21shouldEncodeUrlParamsACSS_SDySSSaySSGGSDyS2SGSiS2btcfc", + "mangledName": "$s18IONFileTransferLib18IONFLTRHttpOptionsV6method6params7headers7timeout16disableRedirects21shouldEncodeUrlParamsACSS_SDySSSaySSGGSDyS2SGSiS2btcfc", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "init_kind": "Designated" + } + ], + "declKind": "Struct", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV", + "mangledName": "$s18IONFileTransferLib18IONFLTRHttpOptionsV", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + } + ] + }, + { + "kind": "TypeDecl", + "name": "IONFLTRTransferResult", + "printedName": "IONFLTRTransferResult", + "children": [ + { + "kind": "Var", + "name": "ongoing", + "printedName": "ongoing", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRTransferResult.Type) -> (IONFileTransferLib.IONFLTRProgressStatus) -> IONFileTransferLib.IONFLTRTransferResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRProgressStatus) -> IONFileTransferLib.IONFLTRTransferResult", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(status: IONFileTransferLib.IONFLTRProgressStatus)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRProgressStatus", + "printedName": "IONFileTransferLib.IONFLTRProgressStatus", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRTransferResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO7ongoingyAcA21IONFLTRProgressStatusV_tcACmF", + "mangledName": "$s18IONFileTransferLib21IONFLTRTransferResultO7ongoingyAcA21IONFLTRProgressStatusV_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "complete", + "printedName": "complete", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRTransferResult.Type) -> (IONFileTransferLib.IONFLTRTransferComplete) -> IONFileTransferLib.IONFLTRTransferResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRTransferComplete) -> IONFileTransferLib.IONFLTRTransferResult", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(data: IONFileTransferLib.IONFLTRTransferComplete)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferComplete", + "printedName": "IONFileTransferLib.IONFLTRTransferComplete", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRTransferResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO8completeyAcA0D8CompleteV_tcACmF", + "mangledName": "$s18IONFileTransferLib21IONFLTRTransferResultO8completeyAcA0D8CompleteV_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZ", + "moduleName": "IONFileTransferLib", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO", + "mangledName": "$s18IONFileTransferLib21IONFLTRTransferResultO", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "IONFLTRProgressStatus", + "printedName": "IONFLTRProgressStatus", + "children": [ + { + "kind": "Var", + "name": "bytes", + "printedName": "bytes", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivp", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivg", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivs", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivM", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "contentLength", + "printedName": "contentLength", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivp", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivg", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivs", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivM", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "lengthComputable", + "printedName": "lengthComputable", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvp", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvg", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvs", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvM", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRProgressStatus", + "printedName": "IONFileTransferLib.IONFLTRProgressStatus", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRProgressStatus", + "printedName": "IONFileTransferLib.IONFLTRProgressStatus", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV2eeoiySbAC_ACtFZ", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV2eeoiySbAC_ACtFZ", + "moduleName": "IONFileTransferLib", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "IONFLTRTransferComplete", + "printedName": "IONFLTRTransferComplete", + "children": [ + { + "kind": "Var", + "name": "totalBytes", + "printedName": "totalBytes", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivp", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivg", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivs", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivM", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "responseCode", + "printedName": "responseCode", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivp", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivg", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivs", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivM", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "responseBody", + "printedName": "responseBody", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvp", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvg", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvs", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvM", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "headers", + "printedName": "headers", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvp", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvg", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvs", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvM", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRTransferComplete", + "printedName": "IONFileTransferLib.IONFLTRTransferComplete", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRTransferComplete", + "printedName": "IONFileTransferLib.IONFLTRTransferComplete", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV2eeoiySbAC_ACtFZ", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV2eeoiySbAC_ACtFZ", + "moduleName": "IONFileTransferLib", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "UniformTypeIdentifiers", + "printedName": "UniformTypeIdentifiers", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "TypeDecl", + "name": "IONFLTRUploadOptions", + "printedName": "IONFLTRUploadOptions", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(chunkedMode:mimeType:fileKey:formParams:)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRUploadOptions", + "printedName": "IONFileTransferLib.IONFLTRUploadOptions", + "usr": "s:18IONFileTransferLib20IONFLTRUploadOptionsV" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "hasDefaultArg": true, + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "hasDefaultArg": true, + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Swift.String]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "hasDefaultArg": true, + "usr": "s:Sq" + } + ], + "declKind": "Constructor", + "usr": "s:18IONFileTransferLib20IONFLTRUploadOptionsV11chunkedMode8mimeType7fileKey10formParamsACSb_SSSgSSSDyS2SGSgtcfc", + "mangledName": "$s18IONFileTransferLib20IONFLTRUploadOptionsV11chunkedMode8mimeType7fileKey10formParamsACSb_SSSgSSSDyS2SGSgtcfc", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "init_kind": "Designated" + } + ], + "declKind": "Struct", + "usr": "s:18IONFileTransferLib20IONFLTRUploadOptionsV", + "mangledName": "$s18IONFileTransferLib20IONFLTRUploadOptionsV", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + } + ] + } + ], + "json_format_version": 8 + }, + "ConstValues": [ + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/Delegates\/IONFLTRUploadDelegate.swift", + "kind": "IntegerLiteral", + "offset": 539, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/Delegates\/IONFLTRDownloadDelegate.swift", + "kind": "IntegerLiteral", + "offset": 635, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/Delegates\/IONFLTRDownloadDelegate.swift", + "kind": "BooleanLiteral", + "offset": 1096, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "Dictionary", + "offset": 1165, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "Dictionary", + "offset": 1201, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "IntegerLiteral", + "offset": 1229, + "length": 2, + "value": "60" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "BooleanLiteral", + "offset": 1266, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "BooleanLiteral", + "offset": 1311, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRTransferResult.swift", + "kind": "Dictionary", + "offset": 2038, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/Delegates\/IONFLTRBaseDelegate.swift", + "kind": "BooleanLiteral", + "offset": 1189, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRUploadOptions.swift", + "kind": "BooleanLiteral", + "offset": 891, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRUploadOptions.swift", + "kind": "StringLiteral", + "offset": 957, + "length": 6, + "value": "\"file\"" + } + ] +} \ No newline at end of file diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface new file mode 100644 index 0000000..a80891b --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface @@ -0,0 +1,66 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.1) +// swift-module-flags: -target arm64-apple-ios14.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-bare-slash-regex -module-name IONFileTransferLib +// swift-module-flags-ignorable: -no-verify-emitted-module-interface +import Combine +import Foundation +import Swift +import UniformTypeIdentifiers +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum IONFLTRException : Swift.Error, Swift.CustomStringConvertible { + case invalidPath(path: Swift.String?) + case emptyURL(url: Swift.String?) + case invalidURL(url: Swift.String) + case fileDoesNotExist(cause: (any Swift.Error)?) + case cannotCreateDirectory(path: Swift.String, cause: (any Swift.Error)?) + case httpError(responseCode: Swift.Int, responseBody: Swift.String?, headers: [Swift.String : Swift.String]?) + case connectionError(cause: (any Swift.Error)?) + case transferError(cause: (any Swift.Error)?) + case unknownError(cause: (any Swift.Error)?) + public var description: Swift.String { + get + } +} +extension IONFileTransferLib.IONFLTRException : Swift.Equatable { + public static func == (lhs: IONFileTransferLib.IONFLTRException, rhs: IONFileTransferLib.IONFLTRException) -> Swift.Bool +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers public class IONFLTRManager : ObjectiveC.NSObject { + @objc override dynamic public init() + public func downloadFile(fromServerURL serverURL: Foundation.URL, toFileURL fileURL: Foundation.URL, withHttpOptions httpOptions: IONFileTransferLib.IONFLTRHttpOptions) throws -> IONFileTransferLib.IONFLTRPublisher + public func uploadFile(fromFileURL fileURL: Foundation.URL, toServerURL serverURL: Foundation.URL, withUploadOptions uploadOptions: IONFileTransferLib.IONFLTRUploadOptions, andHttpOptions httpOptions: IONFileTransferLib.IONFLTRHttpOptions) throws -> IONFileTransferLib.IONFLTRPublisher + @objc deinit +} +@_hasMissingDesignatedInitializers public class IONFLTRPublisher : Combine.Publisher { + public typealias Output = IONFileTransferLib.IONFLTRTransferResult + public typealias Failure = Swift.Error + public func receive(subscriber: S) where S : Combine.Subscriber, S.Failure == any Swift.Error, S.Input == IONFileTransferLib.IONFLTRTransferResult + @objc deinit +} +public typealias HttpParams = [Swift.String : [Swift.String]] +public typealias HttpHeaders = [Swift.String : Swift.String] +public struct IONFLTRHttpOptions { + public init(method: Swift.String, params: IONFileTransferLib.HttpParams = [:], headers: IONFileTransferLib.HttpHeaders = [:], timeout: Swift.Int = 60, disableRedirects: Swift.Bool = false, shouldEncodeUrlParams: Swift.Bool = true) +} +public enum IONFLTRTransferResult : Swift.Equatable { + case ongoing(status: IONFileTransferLib.IONFLTRProgressStatus) + case complete(data: IONFileTransferLib.IONFLTRTransferComplete) + public static func == (a: IONFileTransferLib.IONFLTRTransferResult, b: IONFileTransferLib.IONFLTRTransferResult) -> Swift.Bool +} +public struct IONFLTRProgressStatus : Swift.Equatable { + public var bytes: Swift.Int + public var contentLength: Swift.Int + public var lengthComputable: Swift.Bool + public static func == (a: IONFileTransferLib.IONFLTRProgressStatus, b: IONFileTransferLib.IONFLTRProgressStatus) -> Swift.Bool +} +public struct IONFLTRTransferComplete : Swift.Equatable { + public var totalBytes: Swift.Int + public var responseCode: Swift.Int + public var responseBody: Swift.String? + public var headers: [Swift.String : Swift.String] + public static func == (a: IONFileTransferLib.IONFLTRTransferComplete, b: IONFileTransferLib.IONFLTRTransferComplete) -> Swift.Bool +} +public struct IONFLTRUploadOptions { + public init(chunkedMode: Swift.Bool = false, mimeType: Swift.String? = nil, fileKey: Swift.String = "file", formParams: [Swift.String : Swift.String]? = nil) +} diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.swiftdoc b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.swiftdoc new file mode 100644 index 0000000..4938f31 Binary files /dev/null and b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.swiftdoc differ diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.swiftinterface b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.swiftinterface new file mode 100644 index 0000000..a80891b --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.swiftinterface @@ -0,0 +1,66 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.1) +// swift-module-flags: -target arm64-apple-ios14.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-bare-slash-regex -module-name IONFileTransferLib +// swift-module-flags-ignorable: -no-verify-emitted-module-interface +import Combine +import Foundation +import Swift +import UniformTypeIdentifiers +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum IONFLTRException : Swift.Error, Swift.CustomStringConvertible { + case invalidPath(path: Swift.String?) + case emptyURL(url: Swift.String?) + case invalidURL(url: Swift.String) + case fileDoesNotExist(cause: (any Swift.Error)?) + case cannotCreateDirectory(path: Swift.String, cause: (any Swift.Error)?) + case httpError(responseCode: Swift.Int, responseBody: Swift.String?, headers: [Swift.String : Swift.String]?) + case connectionError(cause: (any Swift.Error)?) + case transferError(cause: (any Swift.Error)?) + case unknownError(cause: (any Swift.Error)?) + public var description: Swift.String { + get + } +} +extension IONFileTransferLib.IONFLTRException : Swift.Equatable { + public static func == (lhs: IONFileTransferLib.IONFLTRException, rhs: IONFileTransferLib.IONFLTRException) -> Swift.Bool +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers public class IONFLTRManager : ObjectiveC.NSObject { + @objc override dynamic public init() + public func downloadFile(fromServerURL serverURL: Foundation.URL, toFileURL fileURL: Foundation.URL, withHttpOptions httpOptions: IONFileTransferLib.IONFLTRHttpOptions) throws -> IONFileTransferLib.IONFLTRPublisher + public func uploadFile(fromFileURL fileURL: Foundation.URL, toServerURL serverURL: Foundation.URL, withUploadOptions uploadOptions: IONFileTransferLib.IONFLTRUploadOptions, andHttpOptions httpOptions: IONFileTransferLib.IONFLTRHttpOptions) throws -> IONFileTransferLib.IONFLTRPublisher + @objc deinit +} +@_hasMissingDesignatedInitializers public class IONFLTRPublisher : Combine.Publisher { + public typealias Output = IONFileTransferLib.IONFLTRTransferResult + public typealias Failure = Swift.Error + public func receive(subscriber: S) where S : Combine.Subscriber, S.Failure == any Swift.Error, S.Input == IONFileTransferLib.IONFLTRTransferResult + @objc deinit +} +public typealias HttpParams = [Swift.String : [Swift.String]] +public typealias HttpHeaders = [Swift.String : Swift.String] +public struct IONFLTRHttpOptions { + public init(method: Swift.String, params: IONFileTransferLib.HttpParams = [:], headers: IONFileTransferLib.HttpHeaders = [:], timeout: Swift.Int = 60, disableRedirects: Swift.Bool = false, shouldEncodeUrlParams: Swift.Bool = true) +} +public enum IONFLTRTransferResult : Swift.Equatable { + case ongoing(status: IONFileTransferLib.IONFLTRProgressStatus) + case complete(data: IONFileTransferLib.IONFLTRTransferComplete) + public static func == (a: IONFileTransferLib.IONFLTRTransferResult, b: IONFileTransferLib.IONFLTRTransferResult) -> Swift.Bool +} +public struct IONFLTRProgressStatus : Swift.Equatable { + public var bytes: Swift.Int + public var contentLength: Swift.Int + public var lengthComputable: Swift.Bool + public static func == (a: IONFileTransferLib.IONFLTRProgressStatus, b: IONFileTransferLib.IONFLTRProgressStatus) -> Swift.Bool +} +public struct IONFLTRTransferComplete : Swift.Equatable { + public var totalBytes: Swift.Int + public var responseCode: Swift.Int + public var responseBody: Swift.String? + public var headers: [Swift.String : Swift.String] + public static func == (a: IONFileTransferLib.IONFLTRTransferComplete, b: IONFileTransferLib.IONFLTRTransferComplete) -> Swift.Bool +} +public struct IONFLTRUploadOptions { + public init(chunkedMode: Swift.Bool = false, mimeType: Swift.String? = nil, fileKey: Swift.String = "file", formParams: [Swift.String : Swift.String]? = nil) +} diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.abi.json b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.abi.json new file mode 100644 index 0000000..614f9a5 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.abi.json @@ -0,0 +1,2496 @@ +{ + "ABIRoot": { + "kind": "Root", + "name": "IONFileTransferLib", + "printedName": "IONFileTransferLib", + "children": [ + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "TypeDecl", + "name": "IONFLTRException", + "printedName": "IONFLTRException", + "children": [ + { + "kind": "Var", + "name": "invalidPath", + "printedName": "invalidPath", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.String?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(path: Swift.String?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO11invalidPathyACSSSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO11invalidPathyACSSSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "emptyURL", + "printedName": "emptyURL", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.String?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(url: Swift.String?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO8emptyURLyACSSSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO8emptyURLyACSSSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "invalidURL", + "printedName": "invalidURL", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.String) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(url: Swift.String)", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO10invalidURLyACSS_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO10invalidURLyACSS_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "fileDoesNotExist", + "printedName": "fileDoesNotExist", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> ((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO16fileDoesNotExistyACs5Error_pSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO16fileDoesNotExistyACs5Error_pSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "cannotCreateDirectory", + "printedName": "cannotCreateDirectory", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.String, (any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.String, (any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(path: Swift.String, cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO21cannotCreateDirectoryyACSS_s5Error_pSgtcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO21cannotCreateDirectoryyACSS_s5Error_pSgtcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "httpError", + "printedName": "httpError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> (Swift.Int, Swift.String?, [Swift.String : Swift.String]?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Int, Swift.String?, [Swift.String : Swift.String]?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(responseCode: Swift.Int, responseBody: Swift.String?, headers: [Swift.String : Swift.String]?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Swift.String]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO9httpErroryACSi_SSSgSDyS2SGSgtcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO9httpErroryACSi_SSSgSDyS2SGSgtcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "connectionError", + "printedName": "connectionError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> ((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO15connectionErroryACs0F0_pSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO15connectionErroryACs0F0_pSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "transferError", + "printedName": "transferError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> ((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO13transferErroryACs0F0_pSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO13transferErroryACs0F0_pSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "unknownError", + "printedName": "unknownError", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRException.Type) -> ((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "((any Swift.Error)?) -> IONFileTransferLib.IONFLTRException", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(cause: (any Swift.Error)?)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(any Swift.Error)?", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ], + "usr": "s:Sq" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRException.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO12unknownErroryACs0F0_pSg_tcACmF", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO12unknownErroryACs0F0_pSg_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvp", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvg", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvg", + "moduleName": "IONFileTransferLib", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRException", + "printedName": "IONFileTransferLib.IONFLTRException", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO2eeoiySbAC_ACtFZ", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO2eeoiySbAC_ACtFZ", + "moduleName": "IONFileTransferLib", + "static": true, + "declAttributes": [ + "AccessControl" + ], + "isFromExtension": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:18IONFileTransferLib16IONFLTRExceptionO", + "mangledName": "$s18IONFileTransferLib16IONFLTRExceptionO", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Error", + "printedName": "Error", + "usr": "s:s5ErrorP", + "mangledName": "$ss5ErrorP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "TypeDecl", + "name": "IONFLTRManager", + "printedName": "IONFLTRManager", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRManager", + "printedName": "IONFileTransferLib.IONFLTRManager", + "usr": "c:@M@IONFileTransferLib@objc(cs)IONFLTRManager" + } + ], + "declKind": "Constructor", + "usr": "c:@M@IONFileTransferLib@objc(cs)IONFLTRManager(im)init", + "mangledName": "$s18IONFileTransferLib14IONFLTRManagerCACycfc", + "moduleName": "IONFileTransferLib", + "overriding": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "AccessControl", + "Override" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "downloadFile", + "printedName": "downloadFile(fromServerURL:toFileURL:withHttpOptions:)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRPublisher", + "printedName": "IONFileTransferLib.IONFLTRPublisher", + "usr": "s:18IONFileTransferLib16IONFLTRPublisherC" + }, + { + "kind": "TypeNominal", + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" + }, + { + "kind": "TypeNominal", + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRHttpOptions", + "printedName": "IONFileTransferLib.IONFLTRHttpOptions", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib14IONFLTRManagerC12downloadFile13fromServerURL02tofI015withHttpOptionsAA16IONFLTRPublisherC10Foundation0I0V_AlA011IONFLTRHttpM0VtKF", + "mangledName": "$s18IONFileTransferLib14IONFLTRManagerC12downloadFile13fromServerURL02tofI015withHttpOptionsAA16IONFLTRPublisherC10Foundation0I0V_AlA011IONFLTRHttpM0VtKF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "uploadFile", + "printedName": "uploadFile(fromFileURL:toServerURL:withUploadOptions:andHttpOptions:)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRPublisher", + "printedName": "IONFileTransferLib.IONFLTRPublisher", + "usr": "s:18IONFileTransferLib16IONFLTRPublisherC" + }, + { + "kind": "TypeNominal", + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" + }, + { + "kind": "TypeNominal", + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRUploadOptions", + "printedName": "IONFileTransferLib.IONFLTRUploadOptions", + "usr": "s:18IONFileTransferLib20IONFLTRUploadOptionsV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRHttpOptions", + "printedName": "IONFileTransferLib.IONFLTRHttpOptions", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib14IONFLTRManagerC10uploadFile04fromF3URL08toServerH017withUploadOptions07andHttpM0AA16IONFLTRPublisherC10Foundation0H0V_AmA013IONFLTRUploadM0VAA011IONFLTRHttpM0VtKF", + "mangledName": "$s18IONFileTransferLib14IONFLTRManagerC10uploadFile04fromF3URL08toServerH017withUploadOptions07andHttpM0AA16IONFLTRPublisherC10Foundation0H0V_AmA013IONFLTRUploadM0VAA011IONFLTRHttpM0VtKF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "c:@M@IONFileTransferLib@objc(cs)IONFLTRManager", + "mangledName": "$s18IONFileTransferLib14IONFLTRManagerC", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment", + "ObjC" + ], + "superclassUsr": "c:objc(cs)NSObject", + "hasMissingDesignatedInitializers": true, + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Combine", + "printedName": "Combine", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "TypeDecl", + "name": "IONFLTRPublisher", + "printedName": "IONFLTRPublisher", + "children": [ + { + "kind": "Function", + "name": "receive", + "printedName": "receive(subscriber:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "GenericTypeParam", + "printedName": "τ_0_0" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib16IONFLTRPublisherC7receive10subscriberyx_t7Combine10SubscriberRzs5Error_p7FailureRtzAA21IONFLTRTransferResultO5InputRtzlF", + "mangledName": "$s18IONFileTransferLib16IONFLTRPublisherC7receive10subscriberyx_t7Combine10SubscriberRzs5Error_p7FailureRtzAA21IONFLTRTransferResultO5InputRtzlF", + "moduleName": "IONFileTransferLib", + "genericSig": "<τ_0_0 where τ_0_0 : Combine.Subscriber, τ_0_0.Failure == any Swift.Error, τ_0_0.Input == IONFileTransferLib.IONFLTRTransferResult>", + "sugared_genericSig": "", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:18IONFileTransferLib16IONFLTRPublisherC", + "mangledName": "$s18IONFileTransferLib16IONFLTRPublisherC", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "hasMissingDesignatedInitializers": true, + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Publisher", + "printedName": "Publisher", + "children": [ + { + "kind": "TypeWitness", + "name": "Output", + "printedName": "Output", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + } + ] + }, + { + "kind": "TypeWitness", + "name": "Failure", + "printedName": "Failure", + "children": [ + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "any Swift.Error", + "usr": "s:s5ErrorP" + } + ] + } + ], + "usr": "s:7Combine9PublisherP", + "mangledName": "$s7Combine9PublisherP" + } + ] + }, + { + "kind": "TypeDecl", + "name": "IONFLTRHttpOptions", + "printedName": "IONFLTRHttpOptions", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(method:params:headers:timeout:disableRedirects:shouldEncodeUrlParams:)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRHttpOptions", + "printedName": "IONFileTransferLib.IONFLTRHttpOptions", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : [Swift.String]]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sa" + } + ], + "hasDefaultArg": true, + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "hasDefaultArg": true, + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "hasDefaultArg": true, + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + } + ], + "declKind": "Constructor", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV6method6params7headers7timeout16disableRedirects21shouldEncodeUrlParamsACSS_SDySSSaySSGGSDyS2SGSiS2btcfc", + "mangledName": "$s18IONFileTransferLib18IONFLTRHttpOptionsV6method6params7headers7timeout16disableRedirects21shouldEncodeUrlParamsACSS_SDySSSaySSGGSDyS2SGSiS2btcfc", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "init_kind": "Designated" + } + ], + "declKind": "Struct", + "usr": "s:18IONFileTransferLib18IONFLTRHttpOptionsV", + "mangledName": "$s18IONFileTransferLib18IONFLTRHttpOptionsV", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + } + ] + }, + { + "kind": "TypeDecl", + "name": "IONFLTRTransferResult", + "printedName": "IONFLTRTransferResult", + "children": [ + { + "kind": "Var", + "name": "ongoing", + "printedName": "ongoing", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRTransferResult.Type) -> (IONFileTransferLib.IONFLTRProgressStatus) -> IONFileTransferLib.IONFLTRTransferResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRProgressStatus) -> IONFileTransferLib.IONFLTRTransferResult", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(status: IONFileTransferLib.IONFLTRProgressStatus)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRProgressStatus", + "printedName": "IONFileTransferLib.IONFLTRProgressStatus", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRTransferResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO7ongoingyAcA21IONFLTRProgressStatusV_tcACmF", + "mangledName": "$s18IONFileTransferLib21IONFLTRTransferResultO7ongoingyAcA21IONFLTRProgressStatusV_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Var", + "name": "complete", + "printedName": "complete", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRTransferResult.Type) -> (IONFileTransferLib.IONFLTRTransferComplete) -> IONFileTransferLib.IONFLTRTransferResult", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(IONFileTransferLib.IONFLTRTransferComplete) -> IONFileTransferLib.IONFLTRTransferResult", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(data: IONFileTransferLib.IONFLTRTransferComplete)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferComplete", + "printedName": "IONFileTransferLib.IONFLTRTransferComplete", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV" + } + ] + } + ] + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "IONFileTransferLib.IONFLTRTransferResult.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO8completeyAcA0D8CompleteV_tcACmF", + "mangledName": "$s18IONFileTransferLib21IONFLTRTransferResultO8completeyAcA0D8CompleteV_tcACmF", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRTransferResult", + "printedName": "IONFileTransferLib.IONFLTRTransferResult", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZ", + "mangledName": "$s18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZ", + "moduleName": "IONFileTransferLib", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Enum", + "usr": "s:18IONFileTransferLib21IONFLTRTransferResultO", + "mangledName": "$s18IONFileTransferLib21IONFLTRTransferResultO", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "IONFLTRProgressStatus", + "printedName": "IONFLTRProgressStatus", + "children": [ + { + "kind": "Var", + "name": "bytes", + "printedName": "bytes", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivp", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivg", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivs", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivM", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "contentLength", + "printedName": "contentLength", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivp", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivg", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivs", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivM", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "lengthComputable", + "printedName": "lengthComputable", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvp", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvg", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvs", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvM", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRProgressStatus", + "printedName": "IONFileTransferLib.IONFLTRProgressStatus", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRProgressStatus", + "printedName": "IONFileTransferLib.IONFLTRProgressStatus", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV2eeoiySbAC_ACtFZ", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV2eeoiySbAC_ACtFZ", + "moduleName": "IONFileTransferLib", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:18IONFileTransferLib21IONFLTRProgressStatusV", + "mangledName": "$s18IONFileTransferLib21IONFLTRProgressStatusV", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "TypeDecl", + "name": "IONFLTRTransferComplete", + "printedName": "IONFLTRTransferComplete", + "children": [ + { + "kind": "Var", + "name": "totalBytes", + "printedName": "totalBytes", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivp", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivg", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivs", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivM", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV10totalBytesSivM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "responseCode", + "printedName": "responseCode", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivp", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivg", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivs", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivM", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseCodeSivM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "responseBody", + "printedName": "responseBody", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvp", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvg", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvs", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvM", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "headers", + "printedName": "headers", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Var", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvp", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvp", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvg", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvg", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvs", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvs", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvM", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvM", + "moduleName": "IONFileTransferLib", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Function", + "name": "==", + "printedName": "==(_:_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRTransferComplete", + "printedName": "IONFileTransferLib.IONFLTRTransferComplete", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV" + }, + { + "kind": "TypeNominal", + "name": "IONFLTRTransferComplete", + "printedName": "IONFileTransferLib.IONFLTRTransferComplete", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV" + } + ], + "declKind": "Func", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV2eeoiySbAC_ACtFZ", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV2eeoiySbAC_ACtFZ", + "moduleName": "IONFileTransferLib", + "static": true, + "implicit": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Struct", + "usr": "s:18IONFileTransferLib23IONFLTRTransferCompleteV", + "mangledName": "$s18IONFileTransferLib23IONFLTRTransferCompleteV", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "UniformTypeIdentifiers", + "printedName": "UniformTypeIdentifiers", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "IONFileTransferLib" + }, + { + "kind": "TypeDecl", + "name": "IONFLTRUploadOptions", + "printedName": "IONFLTRUploadOptions", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(chunkedMode:mimeType:fileKey:formParams:)", + "children": [ + { + "kind": "TypeNominal", + "name": "IONFLTRUploadOptions", + "printedName": "IONFileTransferLib.IONFLTRUploadOptions", + "usr": "s:18IONFileTransferLib20IONFLTRUploadOptionsV" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "hasDefaultArg": true, + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "hasDefaultArg": true, + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Swift.String]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "hasDefaultArg": true, + "usr": "s:Sq" + } + ], + "declKind": "Constructor", + "usr": "s:18IONFileTransferLib20IONFLTRUploadOptionsV11chunkedMode8mimeType7fileKey10formParamsACSb_SSSgSSSDyS2SGSgtcfc", + "mangledName": "$s18IONFileTransferLib20IONFLTRUploadOptionsV11chunkedMode8mimeType7fileKey10formParamsACSb_SSSgSSSDyS2SGSgtcfc", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "init_kind": "Designated" + } + ], + "declKind": "Struct", + "usr": "s:18IONFileTransferLib20IONFLTRUploadOptionsV", + "mangledName": "$s18IONFileTransferLib20IONFLTRUploadOptionsV", + "moduleName": "IONFileTransferLib", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + } + ] + } + ], + "json_format_version": 8 + }, + "ConstValues": [ + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/Delegates\/IONFLTRUploadDelegate.swift", + "kind": "IntegerLiteral", + "offset": 539, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/Delegates\/IONFLTRDownloadDelegate.swift", + "kind": "IntegerLiteral", + "offset": 635, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/Delegates\/IONFLTRDownloadDelegate.swift", + "kind": "BooleanLiteral", + "offset": 1096, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "Dictionary", + "offset": 1165, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "Dictionary", + "offset": 1201, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "IntegerLiteral", + "offset": 1229, + "length": 2, + "value": "60" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "BooleanLiteral", + "offset": 1266, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRHttpOptions.swift", + "kind": "BooleanLiteral", + "offset": 1311, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRTransferResult.swift", + "kind": "Dictionary", + "offset": 2038, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/Delegates\/IONFLTRBaseDelegate.swift", + "kind": "BooleanLiteral", + "offset": 1189, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRUploadOptions.swift", + "kind": "BooleanLiteral", + "offset": 891, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/andre.destro\/workspace\/ion-ios-filetransfer\/IONFileTransferLib\/IONFLTRUploadOptions.swift", + "kind": "StringLiteral", + "offset": 957, + "length": 6, + "value": "\"file\"" + } + ] +} \ No newline at end of file diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface new file mode 100644 index 0000000..ea49bb4 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface @@ -0,0 +1,66 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.1) +// swift-module-flags: -target x86_64-apple-ios14.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-bare-slash-regex -module-name IONFileTransferLib +// swift-module-flags-ignorable: -no-verify-emitted-module-interface +import Combine +import Foundation +import Swift +import UniformTypeIdentifiers +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum IONFLTRException : Swift.Error, Swift.CustomStringConvertible { + case invalidPath(path: Swift.String?) + case emptyURL(url: Swift.String?) + case invalidURL(url: Swift.String) + case fileDoesNotExist(cause: (any Swift.Error)?) + case cannotCreateDirectory(path: Swift.String, cause: (any Swift.Error)?) + case httpError(responseCode: Swift.Int, responseBody: Swift.String?, headers: [Swift.String : Swift.String]?) + case connectionError(cause: (any Swift.Error)?) + case transferError(cause: (any Swift.Error)?) + case unknownError(cause: (any Swift.Error)?) + public var description: Swift.String { + get + } +} +extension IONFileTransferLib.IONFLTRException : Swift.Equatable { + public static func == (lhs: IONFileTransferLib.IONFLTRException, rhs: IONFileTransferLib.IONFLTRException) -> Swift.Bool +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers public class IONFLTRManager : ObjectiveC.NSObject { + @objc override dynamic public init() + public func downloadFile(fromServerURL serverURL: Foundation.URL, toFileURL fileURL: Foundation.URL, withHttpOptions httpOptions: IONFileTransferLib.IONFLTRHttpOptions) throws -> IONFileTransferLib.IONFLTRPublisher + public func uploadFile(fromFileURL fileURL: Foundation.URL, toServerURL serverURL: Foundation.URL, withUploadOptions uploadOptions: IONFileTransferLib.IONFLTRUploadOptions, andHttpOptions httpOptions: IONFileTransferLib.IONFLTRHttpOptions) throws -> IONFileTransferLib.IONFLTRPublisher + @objc deinit +} +@_hasMissingDesignatedInitializers public class IONFLTRPublisher : Combine.Publisher { + public typealias Output = IONFileTransferLib.IONFLTRTransferResult + public typealias Failure = Swift.Error + public func receive(subscriber: S) where S : Combine.Subscriber, S.Failure == any Swift.Error, S.Input == IONFileTransferLib.IONFLTRTransferResult + @objc deinit +} +public typealias HttpParams = [Swift.String : [Swift.String]] +public typealias HttpHeaders = [Swift.String : Swift.String] +public struct IONFLTRHttpOptions { + public init(method: Swift.String, params: IONFileTransferLib.HttpParams = [:], headers: IONFileTransferLib.HttpHeaders = [:], timeout: Swift.Int = 60, disableRedirects: Swift.Bool = false, shouldEncodeUrlParams: Swift.Bool = true) +} +public enum IONFLTRTransferResult : Swift.Equatable { + case ongoing(status: IONFileTransferLib.IONFLTRProgressStatus) + case complete(data: IONFileTransferLib.IONFLTRTransferComplete) + public static func == (a: IONFileTransferLib.IONFLTRTransferResult, b: IONFileTransferLib.IONFLTRTransferResult) -> Swift.Bool +} +public struct IONFLTRProgressStatus : Swift.Equatable { + public var bytes: Swift.Int + public var contentLength: Swift.Int + public var lengthComputable: Swift.Bool + public static func == (a: IONFileTransferLib.IONFLTRProgressStatus, b: IONFileTransferLib.IONFLTRProgressStatus) -> Swift.Bool +} +public struct IONFLTRTransferComplete : Swift.Equatable { + public var totalBytes: Swift.Int + public var responseCode: Swift.Int + public var responseBody: Swift.String? + public var headers: [Swift.String : Swift.String] + public static func == (a: IONFileTransferLib.IONFLTRTransferComplete, b: IONFileTransferLib.IONFLTRTransferComplete) -> Swift.Bool +} +public struct IONFLTRUploadOptions { + public init(chunkedMode: Swift.Bool = false, mimeType: Swift.String? = nil, fileKey: Swift.String = "file", formParams: [Swift.String : Swift.String]? = nil) +} diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.swiftdoc b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.swiftdoc new file mode 100644 index 0000000..b291503 Binary files /dev/null and b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.swiftdoc differ diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.swiftinterface new file mode 100644 index 0000000..ea49bb4 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.swiftinterface @@ -0,0 +1,66 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.1) +// swift-module-flags: -target x86_64-apple-ios14.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-bare-slash-regex -module-name IONFileTransferLib +// swift-module-flags-ignorable: -no-verify-emitted-module-interface +import Combine +import Foundation +import Swift +import UniformTypeIdentifiers +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +public enum IONFLTRException : Swift.Error, Swift.CustomStringConvertible { + case invalidPath(path: Swift.String?) + case emptyURL(url: Swift.String?) + case invalidURL(url: Swift.String) + case fileDoesNotExist(cause: (any Swift.Error)?) + case cannotCreateDirectory(path: Swift.String, cause: (any Swift.Error)?) + case httpError(responseCode: Swift.Int, responseBody: Swift.String?, headers: [Swift.String : Swift.String]?) + case connectionError(cause: (any Swift.Error)?) + case transferError(cause: (any Swift.Error)?) + case unknownError(cause: (any Swift.Error)?) + public var description: Swift.String { + get + } +} +extension IONFileTransferLib.IONFLTRException : Swift.Equatable { + public static func == (lhs: IONFileTransferLib.IONFLTRException, rhs: IONFileTransferLib.IONFLTRException) -> Swift.Bool +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers public class IONFLTRManager : ObjectiveC.NSObject { + @objc override dynamic public init() + public func downloadFile(fromServerURL serverURL: Foundation.URL, toFileURL fileURL: Foundation.URL, withHttpOptions httpOptions: IONFileTransferLib.IONFLTRHttpOptions) throws -> IONFileTransferLib.IONFLTRPublisher + public func uploadFile(fromFileURL fileURL: Foundation.URL, toServerURL serverURL: Foundation.URL, withUploadOptions uploadOptions: IONFileTransferLib.IONFLTRUploadOptions, andHttpOptions httpOptions: IONFileTransferLib.IONFLTRHttpOptions) throws -> IONFileTransferLib.IONFLTRPublisher + @objc deinit +} +@_hasMissingDesignatedInitializers public class IONFLTRPublisher : Combine.Publisher { + public typealias Output = IONFileTransferLib.IONFLTRTransferResult + public typealias Failure = Swift.Error + public func receive(subscriber: S) where S : Combine.Subscriber, S.Failure == any Swift.Error, S.Input == IONFileTransferLib.IONFLTRTransferResult + @objc deinit +} +public typealias HttpParams = [Swift.String : [Swift.String]] +public typealias HttpHeaders = [Swift.String : Swift.String] +public struct IONFLTRHttpOptions { + public init(method: Swift.String, params: IONFileTransferLib.HttpParams = [:], headers: IONFileTransferLib.HttpHeaders = [:], timeout: Swift.Int = 60, disableRedirects: Swift.Bool = false, shouldEncodeUrlParams: Swift.Bool = true) +} +public enum IONFLTRTransferResult : Swift.Equatable { + case ongoing(status: IONFileTransferLib.IONFLTRProgressStatus) + case complete(data: IONFileTransferLib.IONFLTRTransferComplete) + public static func == (a: IONFileTransferLib.IONFLTRTransferResult, b: IONFileTransferLib.IONFLTRTransferResult) -> Swift.Bool +} +public struct IONFLTRProgressStatus : Swift.Equatable { + public var bytes: Swift.Int + public var contentLength: Swift.Int + public var lengthComputable: Swift.Bool + public static func == (a: IONFileTransferLib.IONFLTRProgressStatus, b: IONFileTransferLib.IONFLTRProgressStatus) -> Swift.Bool +} +public struct IONFLTRTransferComplete : Swift.Equatable { + public var totalBytes: Swift.Int + public var responseCode: Swift.Int + public var responseBody: Swift.String? + public var headers: [Swift.String : Swift.String] + public static func == (a: IONFileTransferLib.IONFLTRTransferComplete, b: IONFileTransferLib.IONFLTRTransferComplete) -> Swift.Bool +} +public struct IONFLTRUploadOptions { + public init(chunkedMode: Swift.Bool = false, mimeType: Swift.String? = nil, fileKey: Swift.String = "file", formParams: [Swift.String : Swift.String]? = nil) +} diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/module.modulemap b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/module.modulemap new file mode 100644 index 0000000..383be00 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/Modules/module.modulemap @@ -0,0 +1,4 @@ +framework module IONFileTransferLib { + header "IONFileTransferLib-Swift.h" + requires objc +} diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/_CodeSignature/CodeResources b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..96a26d5 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/IONFileTransferLib.framework/_CodeSignature/CodeResources @@ -0,0 +1,234 @@ + + + + + files + + Headers/IONFileTransferLib-Swift.h + + 4LrG0ds3Eve/vCWGLBEICIccCCc= + + Info.plist + + DxqjKoj35mtIpMyLMqgSRyioSvw= + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.abi.json + + vwGAk+OOovMkL/Fw7p9qXh5DPo0= + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface + + F2pBHTLyerAzIMhz1KKb1COaTrI= + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.swiftdoc + + 14cxMl391HmFb+Gq90sscS8BUOA= + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.swiftinterface + + F2pBHTLyerAzIMhz1KKb1COaTrI= + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.swiftmodule + + mc7TUGSXX8t/+5vbn/0kAEkso40= + + Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.abi.json + + vwGAk+OOovMkL/Fw7p9qXh5DPo0= + + Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface + + mb/CYWp2eBAlrT3WAcmnEYNgiNw= + + Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.swiftdoc + + XdzUIMuSFUNUUX8dG1MK5ALP3LY= + + Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.swiftinterface + + mb/CYWp2eBAlrT3WAcmnEYNgiNw= + + Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.swiftmodule + + XXGBJOqN/08nog26ltcXhBu5qtY= + + Modules/module.modulemap + + qcSBbzGTOaQ3g9ohxBnUW30OhsE= + + + files2 + + Headers/IONFileTransferLib-Swift.h + + hash2 + + d+17EhdnjvlPWeaDmuUJxmZxu4/YiHoI/Jq2/D4U2LU= + + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.abi.json + + hash2 + + lUk0lAFnf3IStKReF0nu3idznW7YjGl9GMIJ/HXcuS0= + + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface + + hash2 + + SN8Vguxrxu4QY+FfD8v3sf7ZoJLK28KTWkpSV67MOm4= + + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.swiftdoc + + hash2 + + SWimFccpywhvNBpG6ye+BsZ8BdEdcgUS2Rf+c2Aj688= + + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.swiftinterface + + hash2 + + SN8Vguxrxu4QY+FfD8v3sf7ZoJLK28KTWkpSV67MOm4= + + + Modules/IONFileTransferLib.swiftmodule/arm64-apple-ios-simulator.swiftmodule + + hash2 + + K64E+Q1mMc4h+RAKiKrSF5zpmcNqigfPFO+s+O11sFw= + + + Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.abi.json + + hash2 + + lUk0lAFnf3IStKReF0nu3idznW7YjGl9GMIJ/HXcuS0= + + + Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface + + hash2 + + 6a4MqQGw4Ac3VYdc8b1owdqhoYFrSYSN+wNBYHP0BOs= + + + Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.swiftdoc + + hash2 + + Ky1ZXNjBTdl8LTp6ay9owD5ZynnUrVr/zIp5EGQnlqQ= + + + Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.swiftinterface + + hash2 + + 6a4MqQGw4Ac3VYdc8b1owdqhoYFrSYSN+wNBYHP0BOs= + + + Modules/IONFileTransferLib.swiftmodule/x86_64-apple-ios-simulator.swiftmodule + + hash2 + + VXJr+Qcduw5FbAwQdV76hN1GAp0C9k3Cz8rY4ykzqIg= + + + Modules/module.modulemap + + hash2 + + D+WZFrAG0KPhGeItkzdjkSXVW8iUSaD30gTuC04fyGI= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Info.plist b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Info.plist new file mode 100644 index 0000000..4c7fc09 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.io.ionic.libs.filetransfer.IONFileTransferLib + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/DWARF/IONFileTransferLib b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/DWARF/IONFileTransferLib new file mode 100644 index 0000000..2dd6bae Binary files /dev/null and b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/DWARF/IONFileTransferLib differ diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/Relocations/aarch64/IONFileTransferLib.yml b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/Relocations/aarch64/IONFileTransferLib.yml new file mode 100644 index 0000000..e9e1807 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/Relocations/aarch64/IONFileTransferLib.yml @@ -0,0 +1,190 @@ +--- +triple: 'arm64-apple-darwin' +binary-path: '/Users/andre.destro/Library/Developer/Xcode/DerivedData/IONFileTransferLib-bhjyknwpzwdmovcwkbkiigjytkcn/Build/Intermediates.noindex/ArchiveIntermediates/IONFileTransferLib/InstallationBuildProductsLocation/Library/Frameworks/IONFileTransferLib.framework/IONFileTransferLib' +relocations: + - { offset: 0x33416, size: 0x8, addend: 0x0, symName: _IONFileTransferLibVersionString, symObjAddr: 0x0, symBinAddr: 0xD3C0, symSize: 0x0 } + - { offset: 0x3344A, size: 0x8, addend: 0x0, symName: _IONFileTransferLibVersionNumber, symObjAddr: 0x40, symBinAddr: 0xD400, symSize: 0x0 } + - { offset: 0x33486, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvg', symObjAddr: 0x0, symBinAddr: 0x38E0, symSize: 0x184 } + - { offset: 0x3350D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionO2eeoiySbAC_ACtFZ', symObjAddr: 0x198, symBinAddr: 0x3A78, symSize: 0x4 } + - { offset: 0x3353A, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x1A0, symBinAddr: 0x3A7C, symSize: 0x238 } + - { offset: 0x335DE, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwCP', symObjAddr: 0x3D8, symBinAddr: 0x3CB4, symSize: 0x30 } + - { offset: 0x335F2, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOWOy', symObjAddr: 0x408, symBinAddr: 0x3CE4, symSize: 0x7C } + - { offset: 0x33606, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwxx', symObjAddr: 0x484, symBinAddr: 0x3D60, symSize: 0x14 } + - { offset: 0x3361A, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOWOe', symObjAddr: 0x498, symBinAddr: 0x3D74, symSize: 0x80 } + - { offset: 0x3362E, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwcp', symObjAddr: 0x518, symBinAddr: 0x3DF4, symSize: 0x60 } + - { offset: 0x33642, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwca', symObjAddr: 0x578, symBinAddr: 0x3E54, symSize: 0x70 } + - { offset: 0x33656, size: 0x8, addend: 0x0, symName: ___swift_memcpy33_8, symObjAddr: 0x5E8, symBinAddr: 0x3EC4, symSize: 0x14 } + - { offset: 0x3366A, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwta', symObjAddr: 0x5FC, symBinAddr: 0x3ED8, symSize: 0x48 } + - { offset: 0x3367E, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwet', symObjAddr: 0x644, symBinAddr: 0x3F20, symSize: 0x48 } + - { offset: 0x33692, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwst', symObjAddr: 0x68C, symBinAddr: 0x3F68, symSize: 0x48 } + - { offset: 0x336A6, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwug', symObjAddr: 0x6D4, symBinAddr: 0x3FB0, symSize: 0x8 } + - { offset: 0x336BA, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwup', symObjAddr: 0x6DC, symBinAddr: 0x3FB8, symSize: 0x4 } + - { offset: 0x336CE, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwui', symObjAddr: 0x6E0, symBinAddr: 0x3FBC, symSize: 0x8 } + - { offset: 0x336E2, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOMa', symObjAddr: 0x6E8, symBinAddr: 0x3FC4, symSize: 0x10 } + - { offset: 0x33789, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs5ErrorAAsADP7_domainSSvgTW', symObjAddr: 0x184, symBinAddr: 0x3A64, symSize: 0x4 } + - { offset: 0x337A5, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs5ErrorAAsADP5_codeSivgTW', symObjAddr: 0x188, symBinAddr: 0x3A68, symSize: 0x4 } + - { offset: 0x337C1, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs5ErrorAAsADP9_userInfoyXlSgvgTW', symObjAddr: 0x18C, symBinAddr: 0x3A6C, symSize: 0x4 } + - { offset: 0x337DD, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs5ErrorAAsADP19_getEmbeddedNSErroryXlSgyFTW', symObjAddr: 0x190, symBinAddr: 0x3A70, symSize: 0x4 } + - { offset: 0x33863, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvg', symObjAddr: 0x0, symBinAddr: 0x38E0, symSize: 0x184 } + - { offset: 0x33966, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x194, symBinAddr: 0x3A74, symSize: 0x4 } + - { offset: 0x33A6A, size: 0x8, addend: 0x0, symName: '_$sSTsSQ7ElementRpzrlE8containsySbABFSaySSG_Tg5', symObjAddr: 0x0, symBinAddr: 0x3FD4, symSize: 0xC4 } + - { offset: 0x33BC8, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib22IONFLTRInputsValidatorCMa', symObjAddr: 0xD4, symBinAddr: 0x40A8, symSize: 0x20 } + - { offset: 0x33C04, size: 0x8, addend: 0x0, symName: '_$sS2SSysWl', symObjAddr: 0x368, symBinAddr: 0x433C, symSize: 0x44 } + - { offset: 0x33C18, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOACs5ErrorAAWl', symObjAddr: 0x3AC, symBinAddr: 0x4380, symSize: 0x44 } + - { offset: 0x33C2C, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledName, symObjAddr: 0x3F0, symBinAddr: 0x43C4, symSize: 0x40 } + - { offset: 0x33C71, size: 0x8, addend: 0x0, symName: '_$sSTsSQ7ElementRpzrlE8containsySbABFSaySSG_Tg5', symObjAddr: 0x0, symBinAddr: 0x3FD4, symSize: 0xC4 } + - { offset: 0x33E2D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib22IONFLTRInputsValidatorCfD', symObjAddr: 0xC4, symBinAddr: 0x4098, symSize: 0x10 } + - { offset: 0x33EC3, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib22IONFLTRInputsValidatorC08validateB6Inputs9serverURL04fileI0y10Foundation0I0V_AItKFTf4nnd_n', symObjAddr: 0xF4, symBinAddr: 0x40C8, symSize: 0x274 } + - { offset: 0x34054, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCACycfC', symObjAddr: 0x0, symBinAddr: 0x4404, symSize: 0x20 } + - { offset: 0x34227, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCMa', symObjAddr: 0xB0, symBinAddr: 0x44B4, symSize: 0x20 } + - { offset: 0x34359, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCfETo', symObjAddr: 0xB88, symBinAddr: 0x4F8C, symSize: 0x48 } + - { offset: 0x3438F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCACycfC', symObjAddr: 0x0, symBinAddr: 0x4404, symSize: 0x20 } + - { offset: 0x343CA, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCACycfc', symObjAddr: 0x20, symBinAddr: 0x4424, symSize: 0x90 } + - { offset: 0x34441, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCACycfcTo', symObjAddr: 0xD0, symBinAddr: 0x44D4, symSize: 0x9C } + - { offset: 0x34675, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerC12downloadFile13fromServerURL02tofI015withHttpOptionsAA16IONFLTRPublisherC10Foundation0I0V_AlA011IONFLTRHttpM0VtKF', symObjAddr: 0x16C, symBinAddr: 0x4570, symSize: 0x388 } + - { offset: 0x34893, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerC10uploadFile04fromF3URL08toServerH017withUploadOptions07andHttpM0AA16IONFLTRPublisherC10Foundation0H0V_AmA013IONFLTRUploadM0VAA011IONFLTRHttpM0VtKF', symObjAddr: 0x4F4, symBinAddr: 0x48F8, symSize: 0x370 } + - { offset: 0x34A2F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerC16prepareForUpload33_B8C7B2808035353E1FDF0D19D08736E0LL7fileURL06serverQ013uploadOptions04httpT010Foundation10URLRequestV_AJ0Q0VtAN_AnA013IONFLTRUploadT0VAA011IONFLTRHttpT0VtKF', symObjAddr: 0x864, symBinAddr: 0x4C68, symSize: 0x2F4 } + - { offset: 0x34AC0, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCfD', symObjAddr: 0xB58, symBinAddr: 0x4F5C, symSize: 0x30 } + - { offset: 0x34C20, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateCfE', symObjAddr: 0x78, symBinAddr: 0x50B0, symSize: 0x14 } + - { offset: 0x34C4D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateCfETo', symObjAddr: 0xBC, symBinAddr: 0x50F4, symSize: 0x14 } + - { offset: 0x34C7C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateCMa', symObjAddr: 0xD0, symBinAddr: 0x5108, symSize: 0x20 } + - { offset: 0x34D64, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task15didSendBodyData14totalBytesSent0mn10ExpectedToJ0ySo12NSURLSessionC_So0R4TaskCs5Int64VA2NtFTo', symObjAddr: 0xF0, symBinAddr: 0x5128, symSize: 0xA8 } + - { offset: 0x34F0B, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0M4TaskCs0L0_pSgtFTo', symObjAddr: 0x61C, symBinAddr: 0x5654, symSize: 0x8C } + - { offset: 0x34FE4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task26willPerformHTTPRedirection10newRequest17completionHandlerySo12NSURLSessionC_So0P4TaskCSo17NSHTTPURLResponseC10Foundation10URLRequestVyAQSgctFTo', symObjAddr: 0x6A8, symBinAddr: 0x56E0, symSize: 0x1F0 } + - { offset: 0x35094, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_8dataTask10didReceiveySo12NSURLSessionC_So0l4DataI0C10Foundation0M0VtFTo', symObjAddr: 0x898, symBinAddr: 0x58D0, symSize: 0xE4 } + - { offset: 0x350EB, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataVSgWOe', symObjAddr: 0x97C, symBinAddr: 0x59B4, symSize: 0x14 } + - { offset: 0x350FF, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataV15_RepresentationOWOe', symObjAddr: 0x990, symBinAddr: 0x59C8, symSize: 0x44 } + - { offset: 0x35113, size: 0x8, addend: 0x0, symName: '_$s10Foundation10URLRequestVSgWOc', symObjAddr: 0xA14, symBinAddr: 0x5A0C, symSize: 0x48 } + - { offset: 0x35133, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0M4TaskCs0L0_pSgtFTf4dnnn_n', symObjAddr: 0xA5C, symBinAddr: 0x5A54, symSize: 0x320 } + - { offset: 0x352F0, size: 0x8, addend: 0x0, symName: '_$ss11AnyHashableVWOc', symObjAddr: 0xDC0, symBinAddr: 0x5D74, symSize: 0x3C } + - { offset: 0x35304, size: 0x8, addend: 0x0, symName: '_$sypWOc', symObjAddr: 0xDFC, symBinAddr: 0x5DB0, symSize: 0x3C } + - { offset: 0x35318, size: 0x8, addend: 0x0, symName: ___swift_destroy_boxed_opaque_existential_0, symObjAddr: 0xE38, symBinAddr: 0x5DEC, symSize: 0x20 } + - { offset: 0x3532C, size: 0x8, addend: 0x0, symName: '_$ss11AnyHashableVWOh', symObjAddr: 0xE94, symBinAddr: 0x5E48, symSize: 0x34 } + - { offset: 0x35340, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataVSgWOy', symObjAddr: 0xEC8, symBinAddr: 0x5E7C, symSize: 0x14 } + - { offset: 0x35354, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataV15_RepresentationOWOy', symObjAddr: 0xEDC, symBinAddr: 0x5E90, symSize: 0x44 } + - { offset: 0x3538B, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC12receivedData33_C11A9EAC720B924A4FD97FC69DD27918LL10Foundation0G0Vvg', symObjAddr: 0x0, symBinAddr: 0x5038, symSize: 0x78 } + - { offset: 0x353B6, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateCfD', symObjAddr: 0x8C, symBinAddr: 0x50C4, symSize: 0x30 } + - { offset: 0x35452, size: 0x8, addend: 0x0, symName: '_$sSTsE6reduce4into_qd__qd__n_yqd__z_7ElementQztKXEtKlFSDys11AnyHashableVypG_SDyS2SGTg50138$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0M4TaskCs0L0_pSgtFySDyS2SGz_s11dE21V3key_yp5valuettXEfU_Tf1ncn_n', symObjAddr: 0x198, symBinAddr: 0x51D0, symSize: 0x484 } + - { offset: 0x35996, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCfE', symObjAddr: 0x484, symBinAddr: 0x5ED4, symSize: 0x3C } + - { offset: 0x35A2B, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCfETo', symObjAddr: 0x4F4, symBinAddr: 0x5F44, symSize: 0x3C } + - { offset: 0x35A5A, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCMU', symObjAddr: 0x530, symBinAddr: 0x5F80, symSize: 0x8 } + - { offset: 0x35A6E, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCMa', symObjAddr: 0x538, symBinAddr: 0x5F88, symSize: 0x3C } + - { offset: 0x35A82, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCMr', symObjAddr: 0x574, symBinAddr: 0x5FC4, symSize: 0x78 } + - { offset: 0x35AF0, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_12downloadTask12didWriteData17totalBytesWritten0mn10ExpectedToK0ySo12NSURLSessionC_So0r8DownloadI0Cs5Int64VA2NtFTo', symObjAddr: 0x5EC, symBinAddr: 0x603C, symSize: 0xA8 } + - { offset: 0x35BBF, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_12downloadTask22didFinishDownloadingToySo12NSURLSessionC_So0n8DownloadI0C10Foundation3URLVtFTo', symObjAddr: 0x694, symBinAddr: 0x60E4, symSize: 0xD0 } + - { offset: 0x35C33, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0M4TaskCs0L0_pSgtFTo', symObjAddr: 0x764, symBinAddr: 0x61B4, symSize: 0x8C } + - { offset: 0x35CC6, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_4task26willPerformHTTPRedirection10newRequest17completionHandlerySo12NSURLSessionC_So0P4TaskCSo17NSHTTPURLResponseC10Foundation10URLRequestVyAQSgctFTo', symObjAddr: 0x7F0, symBinAddr: 0x6240, symSize: 0x1F0 } + - { offset: 0x35D3E, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyFSS_SSTg5', symObjAddr: 0xA68, symBinAddr: 0x6430, symSize: 0x1CC } + - { offset: 0x35E04, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtFSS_SSTg5', symObjAddr: 0xC34, symBinAddr: 0x65FC, symSize: 0x340 } + - { offset: 0x35F22, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_12downloadTask22didFinishDownloadingToySo12NSURLSessionC_So0n8DownloadI0C10Foundation3URLVtFTf4dnnn_n', symObjAddr: 0x1070, symBinAddr: 0x6A38, symSize: 0x3E8 } + - { offset: 0x3613A, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSS_SSTgm5Tf4g_n', symObjAddr: 0xF74, symBinAddr: 0x693C, symSize: 0xFC } + - { offset: 0x362AE, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCfD', symObjAddr: 0x4C0, symBinAddr: 0x5F10, symSize: 0x34 } + - { offset: 0x3652A, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib26mapErrorToIONFLTRExceptionyAA0G0Os0E0_pF', symObjAddr: 0x0, symBinAddr: 0x6E20, symSize: 0x4AC } + - { offset: 0x3654C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib26mapErrorToIONFLTRExceptionyAA0G0Os0E0_pF', symObjAddr: 0x0, symBinAddr: 0x6E20, symSize: 0x4AC } + - { offset: 0x365ED, size: 0x8, addend: 0x0, symName: '_$sSo7NSErrorCMa', symObjAddr: 0x4EC, symBinAddr: 0x72CC, symSize: 0x3C } + - { offset: 0x366E4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherC7receive10subscriberyx_t7Combine10SubscriberRzs5Error_p7FailureRtzAA21IONFLTRTransferResultO5InputRtzlF', symObjAddr: 0x0, symBinAddr: 0x7348, symSize: 0x70 } + - { offset: 0x36763, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherC7Combine9PublisherAA7FailureAdEP_s5ErrorPWT', symObjAddr: 0xB0, symBinAddr: 0x73F8, symSize: 0xC } + - { offset: 0x36777, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherCMa', symObjAddr: 0xDC, symBinAddr: 0x7424, symSize: 0x20 } + - { offset: 0x36798, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherC7receive10subscriberyx_t7Combine10SubscriberRzs5Error_p7FailureRtzAA21IONFLTRTransferResultO5InputRtzlF', symObjAddr: 0x0, symBinAddr: 0x7348, symSize: 0x70 } + - { offset: 0x367F1, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherCfd', symObjAddr: 0x70, symBinAddr: 0x73B8, symSize: 0x1C } + - { offset: 0x36827, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherCfD', symObjAddr: 0x8C, symBinAddr: 0x73D4, symSize: 0x24 } + - { offset: 0x36868, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherC7Combine9PublisherAadEP7receive10subscriberyqd___tAD10SubscriberRd__7FailureQyd__AJRtz5InputQyd__6OutputRtzlFTW', symObjAddr: 0xBC, symBinAddr: 0x7404, symSize: 0x20 } + - { offset: 0x36930, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsV6method6params7headers7timeout16disableRedirects21shouldEncodeUrlParamsACSS_SDySSSaySSGGSDyS2SGSiS2btcfC', symObjAddr: 0x0, symBinAddr: 0x745C, symSize: 0x18 } + - { offset: 0x36983, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwxx', symObjAddr: 0x48, symBinAddr: 0x7474, symSize: 0x30 } + - { offset: 0x36997, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwcp', symObjAddr: 0x78, symBinAddr: 0x74A4, symSize: 0x5C } + - { offset: 0x369AB, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwca', symObjAddr: 0xD4, symBinAddr: 0x7500, symSize: 0x94 } + - { offset: 0x369BF, size: 0x8, addend: 0x0, symName: ___swift_memcpy42_8, symObjAddr: 0x168, symBinAddr: 0x7594, symSize: 0x14 } + - { offset: 0x369D3, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwta', symObjAddr: 0x17C, symBinAddr: 0x75A8, symSize: 0x6C } + - { offset: 0x369E7, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwet', symObjAddr: 0x1E8, symBinAddr: 0x7614, symSize: 0x48 } + - { offset: 0x369FB, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwst', symObjAddr: 0x230, symBinAddr: 0x765C, symSize: 0x4C } + - { offset: 0x36A0F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVMa', symObjAddr: 0x27C, symBinAddr: 0x76A8, symSize: 0x10 } + - { offset: 0x36A98, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsV6method6params7headers7timeout16disableRedirects21shouldEncodeUrlParamsACSS_SDySSSaySSGGSDyS2SGSiS2btcfC', symObjAddr: 0x0, symBinAddr: 0x745C, symSize: 0x18 } + - { offset: 0x36BA2, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x76B8, symSize: 0x4 } + - { offset: 0x36F6C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOWOy', symObjAddr: 0x7A4, symBinAddr: 0x7D84, symSize: 0x30 } + - { offset: 0x36F80, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwxx', symObjAddr: 0x7D4, symBinAddr: 0x7DB4, symSize: 0x18 } + - { offset: 0x36F94, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOWOe', symObjAddr: 0x7EC, symBinAddr: 0x7DCC, symSize: 0x30 } + - { offset: 0x36FA8, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwcp', symObjAddr: 0x81C, symBinAddr: 0x7DFC, symSize: 0x74 } + - { offset: 0x36FBC, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwca', symObjAddr: 0x890, symBinAddr: 0x7E70, symSize: 0x88 } + - { offset: 0x36FD0, size: 0x8, addend: 0x0, symName: ___swift_memcpy41_8, symObjAddr: 0x918, symBinAddr: 0x7EF8, symSize: 0x14 } + - { offset: 0x36FE4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwta', symObjAddr: 0x92C, symBinAddr: 0x7F0C, symSize: 0x50 } + - { offset: 0x36FF8, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwet', symObjAddr: 0x97C, symBinAddr: 0x7F5C, symSize: 0x48 } + - { offset: 0x3700C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwst', symObjAddr: 0x9C4, symBinAddr: 0x7FA4, symSize: 0x50 } + - { offset: 0x37020, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwug', symObjAddr: 0xA14, symBinAddr: 0x7FF4, symSize: 0x8 } + - { offset: 0x37034, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwui', symObjAddr: 0xA20, symBinAddr: 0x7FFC, symSize: 0xC } + - { offset: 0x37048, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOMa', symObjAddr: 0xA2C, symBinAddr: 0x8008, symSize: 0x10 } + - { offset: 0x3705C, size: 0x8, addend: 0x0, symName: ___swift_memcpy17_8, symObjAddr: 0xA3C, symBinAddr: 0x8018, symSize: 0x14 } + - { offset: 0x37070, size: 0x8, addend: 0x0, symName: ___swift_noop_void_return, symObjAddr: 0xA50, symBinAddr: 0x802C, symSize: 0x4 } + - { offset: 0x37084, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusVwet', symObjAddr: 0xA54, symBinAddr: 0x8030, symSize: 0x54 } + - { offset: 0x37098, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusVwst', symObjAddr: 0xAA8, symBinAddr: 0x8084, symSize: 0x44 } + - { offset: 0x370AC, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusVMa', symObjAddr: 0xAEC, symBinAddr: 0x80C8, symSize: 0x10 } + - { offset: 0x370C0, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwxx', symObjAddr: 0xAFC, symBinAddr: 0x80D8, symSize: 0x28 } + - { offset: 0x370D4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwcp', symObjAddr: 0xB24, symBinAddr: 0x8100, symSize: 0x44 } + - { offset: 0x370E8, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwca', symObjAddr: 0xB68, symBinAddr: 0x8144, symSize: 0x74 } + - { offset: 0x370FC, size: 0x8, addend: 0x0, symName: ___swift_memcpy40_8, symObjAddr: 0xBDC, symBinAddr: 0x81B8, symSize: 0x14 } + - { offset: 0x37110, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwta', symObjAddr: 0xBF0, symBinAddr: 0x81CC, symSize: 0x4C } + - { offset: 0x37124, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwet', symObjAddr: 0xC3C, symBinAddr: 0x8218, symSize: 0x48 } + - { offset: 0x37138, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwst', symObjAddr: 0xC84, symBinAddr: 0x8260, symSize: 0x48 } + - { offset: 0x3714C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVMa', symObjAddr: 0xCCC, symBinAddr: 0x82A8, symSize: 0x10 } + - { offset: 0x37191, size: 0x8, addend: 0x0, symName: '_$sSDsSQR_rlE2eeoiySbSDyxq_G_ABtFZSS_SSTgm5', symObjAddr: 0x1E0, symBinAddr: 0x77F4, symSize: 0x278 } + - { offset: 0x37274, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x76B8, symSize: 0x4 } + - { offset: 0x37294, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV2eeoiySbAC_ACtFZ', symObjAddr: 0x4, symBinAddr: 0x76BC, symSize: 0x34 } + - { offset: 0x372B8, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV2eeoiySbAC_ACtFZ', symObjAddr: 0x38, symBinAddr: 0x76F0, symSize: 0x4 } + - { offset: 0x372D9, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivg', symObjAddr: 0x40, symBinAddr: 0x76F4, symSize: 0x8 } + - { offset: 0x372F3, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivs', symObjAddr: 0x48, symBinAddr: 0x76FC, symSize: 0x8 } + - { offset: 0x37325, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivM', symObjAddr: 0x50, symBinAddr: 0x7704, symSize: 0x10 } + - { offset: 0x37339, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivg', symObjAddr: 0x64, symBinAddr: 0x7714, symSize: 0x8 } + - { offset: 0x3734D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivs', symObjAddr: 0x6C, symBinAddr: 0x771C, symSize: 0x8 } + - { offset: 0x3737F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivM', symObjAddr: 0x74, symBinAddr: 0x7724, symSize: 0x10 } + - { offset: 0x373A3, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvg', symObjAddr: 0x88, symBinAddr: 0x7734, symSize: 0x8 } + - { offset: 0x373B7, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvs', symObjAddr: 0x90, symBinAddr: 0x773C, symSize: 0x8 } + - { offset: 0x373E7, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvM', symObjAddr: 0x98, symBinAddr: 0x7744, symSize: 0x10 } + - { offset: 0x37428, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvg', symObjAddr: 0x128, symBinAddr: 0x7754, symSize: 0x2C } + - { offset: 0x3743C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvs', symObjAddr: 0x154, symBinAddr: 0x7780, symSize: 0x34 } + - { offset: 0x37471, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvg', symObjAddr: 0x19C, symBinAddr: 0x77B4, symSize: 0x8 } + - { offset: 0x37485, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvs', symObjAddr: 0x1A4, symBinAddr: 0x77BC, symSize: 0x28 } + - { offset: 0x374BA, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvM', symObjAddr: 0x1CC, symBinAddr: 0x77E4, symSize: 0x10 } + - { offset: 0x374F2, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x45C, symBinAddr: 0x7A6C, symSize: 0x80 } + - { offset: 0x37530, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x4DC, symBinAddr: 0x7AEC, symSize: 0x298 } + - { offset: 0x3767F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib17IONFLTRFileHelperCMa', symObjAddr: 0x10, symBinAddr: 0x82BC, symSize: 0x20 } + - { offset: 0x376B0, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib17IONFLTRFileHelperC23createParentDirectories3fory10Foundation3URLV_tKFTf4nd_n', symObjAddr: 0x30, symBinAddr: 0x82DC, symSize: 0x230 } + - { offset: 0x37C96, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperCMa', symObjAddr: 0x1558, symBinAddr: 0x9A54, symSize: 0x20 } + - { offset: 0x37CB5, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlFSS_Tg5', symObjAddr: 0x15B8, symBinAddr: 0x9A74, symSize: 0x64 } + - { offset: 0x37CED, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlFSS_Tg5', symObjAddr: 0x161C, symBinAddr: 0x9AD8, symSize: 0xE0 } + - { offset: 0x37DB8, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF10Foundation12URLQueryItemV_Tg5', symObjAddr: 0x16FC, symBinAddr: 0x9BB8, symSize: 0x174 } + - { offset: 0x37ED2, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF10Foundation12URLQueryItemV_Tg5', symObjAddr: 0x1870, symBinAddr: 0x9D2C, symSize: 0x1C } + - { offset: 0x37EEA, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtFSS_Tg5', symObjAddr: 0x188C, symBinAddr: 0x9D48, symSize: 0x24 } + - { offset: 0x37F02, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF10Foundation12URLQueryItemV_Tg5', symObjAddr: 0x18B0, symBinAddr: 0x9D6C, symSize: 0x174 } + - { offset: 0x3810D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC19createMultipartBody13uploadOptions7fileURL0kE08boundary10Foundation4DataVAA013IONFLTRUploadJ0V_AI0L0VAA011IONFLTRFileE0CSStKFySS_SStXEfU_TA', symObjAddr: 0x2770, symBinAddr: 0xAB90, symSize: 0x2C } + - { offset: 0x38121, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC13buildHttpBody4from10Foundation4DataVSgAA18IONFLTRHttpOptionsV_tFSaySSGSS_ALtXEfU_TA', symObjAddr: 0x281C, symBinAddr: 0xABBC, symSize: 0x8 } + - { offset: 0x38135, size: 0x8, addend: 0x0, symName: '_$sSaySSGSayxGSKsWl', symObjAddr: 0x2824, symBinAddr: 0xABC4, symSize: 0x4C } + - { offset: 0x38149, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameAbstract, symObjAddr: 0x2870, symBinAddr: 0xAC10, symSize: 0x44 } + - { offset: 0x381B8, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVWOr', symObjAddr: 0x2B10, symBinAddr: 0xAEB0, symSize: 0x44 } + - { offset: 0x381CC, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVWOs', symObjAddr: 0x2B54, symBinAddr: 0xAEF4, symSize: 0x44 } + - { offset: 0x382E9, size: 0x8, addend: 0x0, symName: '_$sSTsE7flatMapySay7ElementQyd__Gqd__ABQzKXEKSTRd__lFSDySSSaySSGG_Say10Foundation12URLQueryItemVGTg5027$sSSSaySSGSay10Foundation12eF193VGIgggo_SS3key_AA5valuetAEs5Error_pIegnrzo_TR087$s18IONFileTransferLib23IONFLTRURLRequestHelperC15buildQueryItems4fromSay10Foundation12bC45VGAA18IONFLTRHttpOptionsV_tFAISS_SaySSGtXEfU_Tf3nnpf_nTf1cn_n', symObjAddr: 0xE24, symBinAddr: 0x9330, symSize: 0x40C } + - { offset: 0x387A0, size: 0x8, addend: 0x0, symName: '_$sSTsE7flatMapySay7ElementQyd__Gqd__ABQzKXEKSTRd__lFSDySSSaySSGG_AFTg555$sSSSaySSGAAIgggo_SS3key_AA5valuetAAs5Error_pIegnrzo_TRSSA2FIgggo_Tf1cn_nTf4ng_n', symObjAddr: 0x1B30, symBinAddr: 0x9FEC, symSize: 0x2F8 } + - { offset: 0x38A68, size: 0x8, addend: 0x0, symName: '_$sSTsE7forEachyyy7ElementQzKXEKFSDyS2SG_Tg544$sS2SIggg_SS3key_SS5valuets5Error_pIegnzo_TRS2SIggg_Tf1cn_nTf4ng_n', symObjAddr: 0x1E28, symBinAddr: 0xA2E4, symSize: 0x208 } + - { offset: 0x38B0B, size: 0x8, addend: 0x0, symName: '_$sSlsE3mapySayqd__Gqd__7ElementQzqd_0_YKXEqd_0_YKs5ErrorRd_0_r0_lFSaySSG_SSs5NeverOTg5139$s18IONFileTransferLib23IONFLTRURLRequestHelperC13buildHttpBody4from10Foundation4DataVSgAA18IONFLTRHttpOptionsV_tFSaySSGSS_ALtXEfU_S2SXEfU_0fG3Lib0iJ0CSSAJ0rS0VTf1cn_nTf4ndgg_n', symObjAddr: 0x28B4, symBinAddr: 0xAC54, symSize: 0x25C } + - { offset: 0x38E14, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC12setupRequest9serverURL11httpOptions10Foundation10URLRequestVAG0I0V_AA011IONFLTRHttpK0VtKF', symObjAddr: 0x0, symBinAddr: 0x850C, symSize: 0x6C0 } + - { offset: 0x390B7, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC25configureRequestForUpload7request11httpOptions06uploadL07fileURL0nE010Foundation10URLRequestV_AJ0O0VtAL_AA011IONFLTRHttpL0VAA013IONFLTRUploadL0VAnA011IONFLTRFileE0CtKF', symObjAddr: 0x6C0, symBinAddr: 0x8BCC, symSize: 0x764 } + - { offset: 0x39380, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC13buildHttpBody4from10Foundation4DataVSgAA18IONFLTRHttpOptionsV_tFSaySSGSS_ALtXEfU_', symObjAddr: 0x1230, symBinAddr: 0x973C, symSize: 0x98 } + - { offset: 0x393EF, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC19createMultipartBody13uploadOptions7fileURL0kE08boundary10Foundation4DataVAA013IONFLTRUploadJ0V_AI0L0VAA011IONFLTRFileE0CSStKFySS_SStXEfU_', symObjAddr: 0x12C8, symBinAddr: 0x97D4, symSize: 0x280 } + - { offset: 0x3975F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC19createMultipartBody13uploadOptions7fileURL0kE08boundary10Foundation4DataVAA013IONFLTRUploadJ0V_AI0L0VAA011IONFLTRFileE0CSStKFTf4nndnd_n', symObjAddr: 0x2030, symBinAddr: 0xA4EC, symSize: 0x6A4 } + - { offset: 0x39E25, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateC16handleCompletion4task5errorySo16NSURLSessionTaskC_s5Error_pSgtF', symObjAddr: 0x0, symBinAddr: 0xAF38, symSize: 0x224 } + - { offset: 0x39F48, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateCfETo', symObjAddr: 0x6D8, symBinAddr: 0xB610, symSize: 0x10 } + - { offset: 0x39F77, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateCMa', symObjAddr: 0x6E8, symBinAddr: 0xB620, symSize: 0x20 } + - { offset: 0x39F8B, size: 0x8, addend: 0x0, symName: '_$ss11AnyHashableV3key_yp5valuetWOh', symObjAddr: 0x7E4, symBinAddr: 0xB640, symSize: 0x40 } + - { offset: 0x3A017, size: 0x8, addend: 0x0, symName: '_$sSTsE6reduce4into_qd__qd__n_yqd__z_7ElementQztKXEtKlFSDys11AnyHashableVypG_SDyS2SGTg50122$s18IONFileTransferLib19IONFLTRBaseDelegateC16handleCompletion4task5errorySo16NSURLSessionTaskC_s5Error_pSgtFySDyS2SGz_s11dE21V3key_yp5valuettXEfU_Tf1ncn_n', symObjAddr: 0x224, symBinAddr: 0xB15C, symSize: 0x458 } + - { offset: 0x3A240, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateC16handleCompletion4task5errorySo16NSURLSessionTaskC_s5Error_pSgtF', symObjAddr: 0x0, symBinAddr: 0xAF38, symSize: 0x224 } + - { offset: 0x3A39D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateCACycfcTo', symObjAddr: 0x67C, symBinAddr: 0xB5B4, symSize: 0x2C } + - { offset: 0x3A3FC, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateCfD', symObjAddr: 0x6A8, symBinAddr: 0xB5E0, symSize: 0x30 } + - { offset: 0x3A4B5, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsV11chunkedMode8mimeType7fileKey10formParamsACSb_SSSgSSSDyS2SGSgtcfC', symObjAddr: 0x0, symBinAddr: 0xB680, symSize: 0x14 } + - { offset: 0x3A4FE, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwxx', symObjAddr: 0x44, symBinAddr: 0xB694, symSize: 0x30 } + - { offset: 0x3A512, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwcp', symObjAddr: 0x74, symBinAddr: 0xB6C4, symSize: 0x5C } + - { offset: 0x3A526, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwca', symObjAddr: 0xD0, symBinAddr: 0xB720, symSize: 0x8C } + - { offset: 0x3A53A, size: 0x8, addend: 0x0, symName: ___swift_memcpy48_8, symObjAddr: 0x15C, symBinAddr: 0xB7AC, symSize: 0x14 } + - { offset: 0x3A54E, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwta', symObjAddr: 0x170, symBinAddr: 0xB7C0, symSize: 0x5C } + - { offset: 0x3A562, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwet', symObjAddr: 0x1CC, symBinAddr: 0xB81C, symSize: 0x48 } + - { offset: 0x3A576, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwst', symObjAddr: 0x214, symBinAddr: 0xB864, symSize: 0x4C } + - { offset: 0x3A58A, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVMa', symObjAddr: 0x260, symBinAddr: 0xB8B0, symSize: 0x10 } + - { offset: 0x3A5F5, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsV11chunkedMode8mimeType7fileKey10formParamsACSb_SSSgSSSDyS2SGSgtcfC', symObjAddr: 0x0, symBinAddr: 0xB680, symSize: 0x14 } +... diff --git a/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/Relocations/x86_64/IONFileTransferLib.yml b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/Relocations/x86_64/IONFileTransferLib.yml new file mode 100644 index 0000000..1e66588 --- /dev/null +++ b/packages/capacitor-plugin/ios/Sources/FileTransferPlugin/IONFileTransferLib.xcframework/ios-arm64_x86_64-simulator/dSYMs/IONFileTransferLib.framework.dSYM/Contents/Resources/Relocations/x86_64/IONFileTransferLib.yml @@ -0,0 +1,190 @@ +--- +triple: 'x86_64-apple-darwin' +binary-path: '/Users/andre.destro/Library/Developer/Xcode/DerivedData/IONFileTransferLib-bhjyknwpzwdmovcwkbkiigjytkcn/Build/Intermediates.noindex/ArchiveIntermediates/IONFileTransferLib/InstallationBuildProductsLocation/Library/Frameworks/IONFileTransferLib.framework/IONFileTransferLib' +relocations: + - { offset: 0x34B44, size: 0x8, addend: 0x0, symName: _IONFileTransferLibVersionString, symObjAddr: 0x0, symBinAddr: 0xB7F0, symSize: 0x0 } + - { offset: 0x34B78, size: 0x8, addend: 0x0, symName: _IONFileTransferLibVersionNumber, symObjAddr: 0x40, symBinAddr: 0xB830, symSize: 0x0 } + - { offset: 0x34BB4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvg', symObjAddr: 0x0, symBinAddr: 0x1880, symSize: 0x1B0 } + - { offset: 0x34C3B, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionO2eeoiySbAC_ACtFZ', symObjAddr: 0x200, symBinAddr: 0x1A80, symSize: 0x10 } + - { offset: 0x34C68, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x220, symBinAddr: 0x1A90, symSize: 0x270 } + - { offset: 0x34D05, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwCP', symObjAddr: 0x490, symBinAddr: 0x1D00, symSize: 0x30 } + - { offset: 0x34D19, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOWOy', symObjAddr: 0x4C0, symBinAddr: 0x1D30, symSize: 0x80 } + - { offset: 0x34D2D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwxx', symObjAddr: 0x540, symBinAddr: 0x1DB0, symSize: 0x20 } + - { offset: 0x34D41, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOWOe', symObjAddr: 0x560, symBinAddr: 0x1DD0, symSize: 0x80 } + - { offset: 0x34D55, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwcp', symObjAddr: 0x5E0, symBinAddr: 0x1E50, symSize: 0x60 } + - { offset: 0x34D69, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwca', symObjAddr: 0x640, symBinAddr: 0x1EB0, symSize: 0x80 } + - { offset: 0x34D7D, size: 0x8, addend: 0x0, symName: ___swift_memcpy33_8, symObjAddr: 0x6C0, symBinAddr: 0x1F30, symSize: 0x20 } + - { offset: 0x34D91, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwta', symObjAddr: 0x6E0, symBinAddr: 0x1F50, symSize: 0x50 } + - { offset: 0x34DA5, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwet', symObjAddr: 0x730, symBinAddr: 0x1FA0, symSize: 0x50 } + - { offset: 0x34DB9, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwst', symObjAddr: 0x780, symBinAddr: 0x1FF0, symSize: 0x50 } + - { offset: 0x34DCD, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwug', symObjAddr: 0x7D0, symBinAddr: 0x2040, symSize: 0x10 } + - { offset: 0x34DE1, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwup', symObjAddr: 0x7E0, symBinAddr: 0x2050, symSize: 0x10 } + - { offset: 0x34DF5, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOwui', symObjAddr: 0x7F0, symBinAddr: 0x2060, symSize: 0x10 } + - { offset: 0x34E09, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOMa', symObjAddr: 0x800, symBinAddr: 0x2070, symSize: 0xA } + - { offset: 0x34EB0, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs5ErrorAAsADP7_domainSSvgTW', symObjAddr: 0x1B0, symBinAddr: 0x1A30, symSize: 0x10 } + - { offset: 0x34ECC, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs5ErrorAAsADP5_codeSivgTW', symObjAddr: 0x1C0, symBinAddr: 0x1A40, symSize: 0x10 } + - { offset: 0x34EE8, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs5ErrorAAsADP9_userInfoyXlSgvgTW', symObjAddr: 0x1D0, symBinAddr: 0x1A50, symSize: 0x10 } + - { offset: 0x34F04, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs5ErrorAAsADP19_getEmbeddedNSErroryXlSgyFTW', symObjAddr: 0x1E0, symBinAddr: 0x1A60, symSize: 0x10 } + - { offset: 0x34F8A, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionO11descriptionSSvg', symObjAddr: 0x0, symBinAddr: 0x1880, symSize: 0x1B0 } + - { offset: 0x3508D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOs23CustomStringConvertibleAAsADP11descriptionSSvgTW', symObjAddr: 0x1F0, symBinAddr: 0x1A70, symSize: 0x10 } + - { offset: 0x35191, size: 0x8, addend: 0x0, symName: '_$sSTsSQ7ElementRpzrlE8containsySbABFSaySSG_Tg5', symObjAddr: 0x0, symBinAddr: 0x2080, symSize: 0xB0 } + - { offset: 0x352F9, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib22IONFLTRInputsValidatorCMa', symObjAddr: 0xD0, symBinAddr: 0x2150, symSize: 0x20 } + - { offset: 0x35335, size: 0x8, addend: 0x0, symName: '_$sS2SSysWl', symObjAddr: 0x380, symBinAddr: 0x2400, symSize: 0x30 } + - { offset: 0x35349, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRExceptionOACs5ErrorAAWl', symObjAddr: 0x3B0, symBinAddr: 0x2430, symSize: 0x30 } + - { offset: 0x3535D, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledName, symObjAddr: 0x3E0, symBinAddr: 0x2460, symSize: 0x36 } + - { offset: 0x353A2, size: 0x8, addend: 0x0, symName: '_$sSTsSQ7ElementRpzrlE8containsySbABFSaySSG_Tg5', symObjAddr: 0x0, symBinAddr: 0x2080, symSize: 0xB0 } + - { offset: 0x35572, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib22IONFLTRInputsValidatorCfD', symObjAddr: 0xB0, symBinAddr: 0x2130, symSize: 0x20 } + - { offset: 0x35608, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib22IONFLTRInputsValidatorC08validateB6Inputs9serverURL04fileI0y10Foundation0I0V_AItKFTf4nnd_n', symObjAddr: 0xF0, symBinAddr: 0x2170, symSize: 0x290 } + - { offset: 0x3579A, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCACycfC', symObjAddr: 0x0, symBinAddr: 0x24A0, symSize: 0x20 } + - { offset: 0x3596D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCMa', symObjAddr: 0xC0, symBinAddr: 0x2560, symSize: 0x20 } + - { offset: 0x35A9F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCfETo', symObjAddr: 0xBC0, symBinAddr: 0x3060, symSize: 0x40 } + - { offset: 0x35AD5, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCACycfC', symObjAddr: 0x0, symBinAddr: 0x24A0, symSize: 0x20 } + - { offset: 0x35B10, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCACycfc', symObjAddr: 0x20, symBinAddr: 0x24C0, symSize: 0xA0 } + - { offset: 0x35B87, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCACycfcTo', symObjAddr: 0xE0, symBinAddr: 0x2580, symSize: 0xA0 } + - { offset: 0x35DBB, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerC12downloadFile13fromServerURL02tofI015withHttpOptionsAA16IONFLTRPublisherC10Foundation0I0V_AlA011IONFLTRHttpM0VtKF', symObjAddr: 0x180, symBinAddr: 0x2620, symSize: 0x390 } + - { offset: 0x35FE1, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerC10uploadFile04fromF3URL08toServerH017withUploadOptions07andHttpM0AA16IONFLTRPublisherC10Foundation0H0V_AmA013IONFLTRUploadM0VAA011IONFLTRHttpM0VtKF', symObjAddr: 0x510, symBinAddr: 0x29B0, symSize: 0x370 } + - { offset: 0x36185, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerC16prepareForUpload33_B8C7B2808035353E1FDF0D19D08736E0LL7fileURL06serverQ013uploadOptions04httpT010Foundation10URLRequestV_AJ0Q0VtAN_AnA013IONFLTRUploadT0VAA011IONFLTRHttpT0VtKF', symObjAddr: 0x880, symBinAddr: 0x2D20, symSize: 0x310 } + - { offset: 0x36216, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib14IONFLTRManagerCfD', symObjAddr: 0xB90, symBinAddr: 0x3030, symSize: 0x30 } + - { offset: 0x36376, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateCfE', symObjAddr: 0x80, symBinAddr: 0x3180, symSize: 0x20 } + - { offset: 0x363A3, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateCfETo', symObjAddr: 0xD0, symBinAddr: 0x31D0, symSize: 0x20 } + - { offset: 0x363D2, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateCMa', symObjAddr: 0xF0, symBinAddr: 0x31F0, symSize: 0x20 } + - { offset: 0x364BA, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task15didSendBodyData14totalBytesSent0mn10ExpectedToJ0ySo12NSURLSessionC_So0R4TaskCs5Int64VA2NtFTo', symObjAddr: 0x110, symBinAddr: 0x3210, symSize: 0xB0 } + - { offset: 0x3664D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0M4TaskCs0L0_pSgtFTo', symObjAddr: 0x6B0, symBinAddr: 0x37B0, symSize: 0x80 } + - { offset: 0x36726, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task26willPerformHTTPRedirection10newRequest17completionHandlerySo12NSURLSessionC_So0P4TaskCSo17NSHTTPURLResponseC10Foundation10URLRequestVyAQSgctFTo', symObjAddr: 0x730, symBinAddr: 0x3830, symSize: 0x1B0 } + - { offset: 0x367D6, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_8dataTask10didReceiveySo12NSURLSessionC_So0l4DataI0C10Foundation0M0VtFTo', symObjAddr: 0x8E0, symBinAddr: 0x39E0, symSize: 0xD0 } + - { offset: 0x3682D, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataVSgWOe', symObjAddr: 0x9B0, symBinAddr: 0x3AB0, symSize: 0x20 } + - { offset: 0x36841, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataV15_RepresentationOWOe', symObjAddr: 0x9D0, symBinAddr: 0x3AD0, symSize: 0x50 } + - { offset: 0x36855, size: 0x8, addend: 0x0, symName: '_$s10Foundation10URLRequestVSgWOc', symObjAddr: 0xA60, symBinAddr: 0x3B20, symSize: 0x40 } + - { offset: 0x36875, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0M4TaskCs0L0_pSgtFTf4dnnn_n', symObjAddr: 0xAA0, symBinAddr: 0x3B60, symSize: 0x300 } + - { offset: 0x36A34, size: 0x8, addend: 0x0, symName: '_$ss11AnyHashableVWOc', symObjAddr: 0xDD0, symBinAddr: 0x3E60, symSize: 0x30 } + - { offset: 0x36A48, size: 0x8, addend: 0x0, symName: '_$sypWOc', symObjAddr: 0xE00, symBinAddr: 0x3E90, symSize: 0x30 } + - { offset: 0x36A5C, size: 0x8, addend: 0x0, symName: ___swift_destroy_boxed_opaque_existential_0, symObjAddr: 0xE30, symBinAddr: 0x3EC0, symSize: 0x30 } + - { offset: 0x36A70, size: 0x8, addend: 0x0, symName: '_$ss11AnyHashableVWOh', symObjAddr: 0xE90, symBinAddr: 0x3F20, symSize: 0x30 } + - { offset: 0x36A84, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataVSgWOy', symObjAddr: 0xEC0, symBinAddr: 0x3F50, symSize: 0x20 } + - { offset: 0x36A98, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataV15_RepresentationOWOy', symObjAddr: 0xEE0, symBinAddr: 0x3F70, symSize: 0x42 } + - { offset: 0x36ACF, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateC12receivedData33_C11A9EAC720B924A4FD97FC69DD27918LL10Foundation0G0Vvg', symObjAddr: 0x0, symBinAddr: 0x3100, symSize: 0x80 } + - { offset: 0x36AF8, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRUploadDelegateCfD', symObjAddr: 0xA0, symBinAddr: 0x31A0, symSize: 0x30 } + - { offset: 0x36B88, size: 0x8, addend: 0x0, symName: '_$sSTsE6reduce4into_qd__qd__n_yqd__z_7ElementQztKXEtKlFSDys11AnyHashableVypG_SDyS2SGTg50138$s18IONFileTransferLib21IONFLTRUploadDelegateC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0M4TaskCs0L0_pSgtFySDyS2SGz_s11dE21V3key_yp5valuettXEfU_Tf1ncn_n', symObjAddr: 0x1C0, symBinAddr: 0x32C0, symSize: 0x4F0 } + - { offset: 0x370A4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCfE', symObjAddr: 0x4F0, symBinAddr: 0x3FC0, symSize: 0x30 } + - { offset: 0x37139, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCfETo', symObjAddr: 0x550, symBinAddr: 0x4020, symSize: 0x30 } + - { offset: 0x37168, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCMU', symObjAddr: 0x580, symBinAddr: 0x4050, symSize: 0x10 } + - { offset: 0x3717C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCMa', symObjAddr: 0x590, symBinAddr: 0x4060, symSize: 0x30 } + - { offset: 0x37190, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCMr', symObjAddr: 0x5C0, symBinAddr: 0x4090, symSize: 0x70 } + - { offset: 0x371FE, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_12downloadTask12didWriteData17totalBytesWritten0mn10ExpectedToK0ySo12NSURLSessionC_So0r8DownloadI0Cs5Int64VA2NtFTo', symObjAddr: 0x630, symBinAddr: 0x4100, symSize: 0xB0 } + - { offset: 0x372CD, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_12downloadTask22didFinishDownloadingToySo12NSURLSessionC_So0n8DownloadI0C10Foundation3URLVtFTo', symObjAddr: 0x6E0, symBinAddr: 0x41B0, symSize: 0xB0 } + - { offset: 0x37341, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0M4TaskCs0L0_pSgtFTo', symObjAddr: 0x790, symBinAddr: 0x4260, symSize: 0x80 } + - { offset: 0x373D4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_4task26willPerformHTTPRedirection10newRequest17completionHandlerySo12NSURLSessionC_So0P4TaskCSo17NSHTTPURLResponseC10Foundation10URLRequestVyAQSgctFTo', symObjAddr: 0x810, symBinAddr: 0x42E0, symSize: 0x1B0 } + - { offset: 0x3744C, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyFSS_SSTg5', symObjAddr: 0xA40, symBinAddr: 0x4490, symSize: 0x220 } + - { offset: 0x37526, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtFSS_SSTg5', symObjAddr: 0xC60, symBinAddr: 0x46B0, symSize: 0x3C0 } + - { offset: 0x37658, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateC10urlSession_12downloadTask22didFinishDownloadingToySo12NSURLSessionC_So0n8DownloadI0C10Foundation3URLVtFTf4dnnn_n', symObjAddr: 0x1110, symBinAddr: 0x4B60, symSize: 0x400 } + - { offset: 0x37876, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSS_SSTgm5Tf4g_n', symObjAddr: 0x1020, symBinAddr: 0x4A70, symSize: 0xF0 } + - { offset: 0x379EA, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRDownloadDelegateCfD', symObjAddr: 0x520, symBinAddr: 0x3FF0, symSize: 0x30 } + - { offset: 0x37C66, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib26mapErrorToIONFLTRExceptionyAA0G0Os0E0_pF', symObjAddr: 0x0, symBinAddr: 0x4F60, symSize: 0x520 } + - { offset: 0x37C88, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib26mapErrorToIONFLTRExceptionyAA0G0Os0E0_pF', symObjAddr: 0x0, symBinAddr: 0x4F60, symSize: 0x520 } + - { offset: 0x37D29, size: 0x8, addend: 0x0, symName: '_$sSo7NSErrorCMa', symObjAddr: 0x560, symBinAddr: 0x5480, symSize: 0x30 } + - { offset: 0x37E20, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherC7receive10subscriberyx_t7Combine10SubscriberRzs5Error_p7FailureRtzAA21IONFLTRTransferResultO5InputRtzlF', symObjAddr: 0x0, symBinAddr: 0x54E0, symSize: 0x60 } + - { offset: 0x37E9F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherC7Combine9PublisherAA7FailureAdEP_s5ErrorPWT', symObjAddr: 0xA0, symBinAddr: 0x5580, symSize: 0x10 } + - { offset: 0x37EB3, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherCMa', symObjAddr: 0xD0, symBinAddr: 0x55B0, symSize: 0x20 } + - { offset: 0x37ED4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherC7receive10subscriberyx_t7Combine10SubscriberRzs5Error_p7FailureRtzAA21IONFLTRTransferResultO5InputRtzlF', symObjAddr: 0x0, symBinAddr: 0x54E0, symSize: 0x60 } + - { offset: 0x37F2D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherCfd', symObjAddr: 0x60, symBinAddr: 0x5540, symSize: 0x20 } + - { offset: 0x37F63, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherCfD', symObjAddr: 0x80, symBinAddr: 0x5560, symSize: 0x20 } + - { offset: 0x37FA4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib16IONFLTRPublisherC7Combine9PublisherAadEP7receive10subscriberyqd___tAD10SubscriberRd__7FailureQyd__AJRtz5InputQyd__6OutputRtzlFTW', symObjAddr: 0xB0, symBinAddr: 0x5590, symSize: 0x20 } + - { offset: 0x3806C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsV6method6params7headers7timeout16disableRedirects21shouldEncodeUrlParamsACSS_SDySSSaySSGGSDyS2SGSiS2btcfC', symObjAddr: 0x0, symBinAddr: 0x5600, symSize: 0x30 } + - { offset: 0x380BF, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwxx', symObjAddr: 0x60, symBinAddr: 0x5630, symSize: 0x30 } + - { offset: 0x380D3, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwcp', symObjAddr: 0x90, symBinAddr: 0x5660, symSize: 0x70 } + - { offset: 0x380E7, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwca', symObjAddr: 0x100, symBinAddr: 0x56D0, symSize: 0x90 } + - { offset: 0x380FB, size: 0x8, addend: 0x0, symName: ___swift_memcpy42_8, symObjAddr: 0x190, symBinAddr: 0x5760, symSize: 0x20 } + - { offset: 0x3810F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwta', symObjAddr: 0x1B0, symBinAddr: 0x5780, symSize: 0x60 } + - { offset: 0x38123, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwet', symObjAddr: 0x210, symBinAddr: 0x57E0, symSize: 0x40 } + - { offset: 0x38137, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVwst', symObjAddr: 0x250, symBinAddr: 0x5820, symSize: 0x50 } + - { offset: 0x3814B, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVMa', symObjAddr: 0x2A0, symBinAddr: 0x5870, symSize: 0xA } + - { offset: 0x381D4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsV6method6params7headers7timeout16disableRedirects21shouldEncodeUrlParamsACSS_SDySSSaySSGGSDyS2SGSiS2btcfC', symObjAddr: 0x0, symBinAddr: 0x5600, symSize: 0x30 } + - { offset: 0x382E6, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x5880, symSize: 0x10 } + - { offset: 0x386B0, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOWOy', symObjAddr: 0x960, symBinAddr: 0x6060, symSize: 0x30 } + - { offset: 0x386C4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwxx', symObjAddr: 0x990, symBinAddr: 0x6090, symSize: 0x30 } + - { offset: 0x386D8, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOWOe', symObjAddr: 0x9C0, symBinAddr: 0x60C0, symSize: 0x30 } + - { offset: 0x386EC, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwcp', symObjAddr: 0x9F0, symBinAddr: 0x60F0, symSize: 0x80 } + - { offset: 0x38700, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwca', symObjAddr: 0xA70, symBinAddr: 0x6170, symSize: 0x90 } + - { offset: 0x38714, size: 0x8, addend: 0x0, symName: ___swift_memcpy41_8, symObjAddr: 0xB00, symBinAddr: 0x6200, symSize: 0x20 } + - { offset: 0x38728, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwta', symObjAddr: 0xB20, symBinAddr: 0x6220, symSize: 0x60 } + - { offset: 0x3873C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwet', symObjAddr: 0xB80, symBinAddr: 0x6280, symSize: 0x50 } + - { offset: 0x38750, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwst', symObjAddr: 0xBD0, symBinAddr: 0x62D0, symSize: 0x50 } + - { offset: 0x38764, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwug', symObjAddr: 0xC20, symBinAddr: 0x6320, symSize: 0x10 } + - { offset: 0x38778, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOwui', symObjAddr: 0xC40, symBinAddr: 0x6330, symSize: 0x10 } + - { offset: 0x3878C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultOMa', symObjAddr: 0xC50, symBinAddr: 0x6340, symSize: 0x10 } + - { offset: 0x387A0, size: 0x8, addend: 0x0, symName: ___swift_memcpy17_8, symObjAddr: 0xC60, symBinAddr: 0x6350, symSize: 0x20 } + - { offset: 0x387B4, size: 0x8, addend: 0x0, symName: ___swift_noop_void_return, symObjAddr: 0xC80, symBinAddr: 0x6370, symSize: 0x10 } + - { offset: 0x387C8, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusVwet', symObjAddr: 0xC90, symBinAddr: 0x6380, symSize: 0x40 } + - { offset: 0x387DC, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusVwst', symObjAddr: 0xCD0, symBinAddr: 0x63C0, symSize: 0x50 } + - { offset: 0x387F0, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusVMa', symObjAddr: 0xD20, symBinAddr: 0x6410, symSize: 0x10 } + - { offset: 0x38804, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwxx', symObjAddr: 0xD30, symBinAddr: 0x6420, symSize: 0x30 } + - { offset: 0x38818, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwcp', symObjAddr: 0xD60, symBinAddr: 0x6450, symSize: 0x40 } + - { offset: 0x3882C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwca', symObjAddr: 0xDA0, symBinAddr: 0x6490, symSize: 0x70 } + - { offset: 0x38840, size: 0x8, addend: 0x0, symName: ___swift_memcpy40_8, symObjAddr: 0xE10, symBinAddr: 0x6500, symSize: 0x20 } + - { offset: 0x38854, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwta', symObjAddr: 0xE30, symBinAddr: 0x6520, symSize: 0x40 } + - { offset: 0x38868, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwet', symObjAddr: 0xE70, symBinAddr: 0x6560, symSize: 0x40 } + - { offset: 0x3887C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVwst', symObjAddr: 0xEB0, symBinAddr: 0x65A0, symSize: 0x40 } + - { offset: 0x38890, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteVMa', symObjAddr: 0xEF0, symBinAddr: 0x65E0, symSize: 0x10 } + - { offset: 0x388D5, size: 0x8, addend: 0x0, symName: '_$sSDsSQR_rlE2eeoiySbSDyxq_G_ABtFZSS_SSTgm5', symObjAddr: 0x2F0, symBinAddr: 0x5A30, symSize: 0x2D0 } + - { offset: 0x389B4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZ', symObjAddr: 0x0, symBinAddr: 0x5880, symSize: 0x10 } + - { offset: 0x389D4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV2eeoiySbAC_ACtFZ', symObjAddr: 0x10, symBinAddr: 0x5890, symSize: 0x30 } + - { offset: 0x389F8, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV2eeoiySbAC_ACtFZ', symObjAddr: 0x40, symBinAddr: 0x58C0, symSize: 0x10 } + - { offset: 0x38A19, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivg', symObjAddr: 0x60, symBinAddr: 0x58D0, symSize: 0x10 } + - { offset: 0x38A33, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivs', symObjAddr: 0x70, symBinAddr: 0x58E0, symSize: 0x10 } + - { offset: 0x38A65, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV5bytesSivM', symObjAddr: 0x80, symBinAddr: 0x58F0, symSize: 0x10 } + - { offset: 0x38A79, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivg', symObjAddr: 0xA0, symBinAddr: 0x5900, symSize: 0x10 } + - { offset: 0x38A8D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivs', symObjAddr: 0xB0, symBinAddr: 0x5910, symSize: 0x10 } + - { offset: 0x38ABF, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV13contentLengthSivM', symObjAddr: 0xC0, symBinAddr: 0x5920, symSize: 0x20 } + - { offset: 0x38AE3, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvg', symObjAddr: 0xF0, symBinAddr: 0x5940, symSize: 0x10 } + - { offset: 0x38AF7, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvs', symObjAddr: 0x100, symBinAddr: 0x5950, symSize: 0x10 } + - { offset: 0x38B2B, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRProgressStatusV16lengthComputableSbvM', symObjAddr: 0x110, symBinAddr: 0x5960, symSize: 0x20 } + - { offset: 0x38B6C, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvg', symObjAddr: 0x200, symBinAddr: 0x5980, symSize: 0x30 } + - { offset: 0x38B80, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV12responseBodySSSgvs', symObjAddr: 0x230, symBinAddr: 0x59B0, symSize: 0x30 } + - { offset: 0x38BB4, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvg', symObjAddr: 0x290, symBinAddr: 0x59E0, symSize: 0x10 } + - { offset: 0x38BC8, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvs', symObjAddr: 0x2A0, symBinAddr: 0x59F0, symSize: 0x20 } + - { offset: 0x38BFC, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV7headersSDyS2SGvM', symObjAddr: 0x2C0, symBinAddr: 0x5A10, symSize: 0x20 } + - { offset: 0x38C34, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRTransferCompleteV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x5D0, symBinAddr: 0x5D00, symSize: 0x70 } + - { offset: 0x38C72, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib21IONFLTRTransferResultO2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x640, symBinAddr: 0x5D70, symSize: 0x2F0 } + - { offset: 0x38DC1, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib17IONFLTRFileHelperCMa', symObjAddr: 0x20, symBinAddr: 0x6600, symSize: 0x20 } + - { offset: 0x38DF2, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib17IONFLTRFileHelperC23createParentDirectories3fory10Foundation3URLV_tKFTf4nd_n', symObjAddr: 0x40, symBinAddr: 0x6620, symSize: 0x220 } + - { offset: 0x393D7, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperCMa', symObjAddr: 0x16A0, symBinAddr: 0x7EC0, symSize: 0x20 } + - { offset: 0x393F6, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlFSS_Tg5', symObjAddr: 0x1700, symBinAddr: 0x7EE0, symSize: 0x60 } + - { offset: 0x3942E, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlFSS_Tg5', symObjAddr: 0x1760, symBinAddr: 0x7F40, symSize: 0xE0 } + - { offset: 0x394FF, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF10Foundation12URLQueryItemV_Tg5', symObjAddr: 0x1840, symBinAddr: 0x8020, symSize: 0x1A0 } + - { offset: 0x39643, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF10Foundation12URLQueryItemV_Tg5', symObjAddr: 0x19E0, symBinAddr: 0x81C0, symSize: 0x20 } + - { offset: 0x3965B, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtFSS_Tg5', symObjAddr: 0x1A00, symBinAddr: 0x81E0, symSize: 0x20 } + - { offset: 0x39673, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF10Foundation12URLQueryItemV_Tg5', symObjAddr: 0x1A20, symBinAddr: 0x8200, symSize: 0x1A0 } + - { offset: 0x39894, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC19createMultipartBody13uploadOptions7fileURL0kE08boundary10Foundation4DataVAA013IONFLTRUploadJ0V_AI0L0VAA011IONFLTRFileE0CSStKFySS_SStXEfU_TA', symObjAddr: 0x2AC0, symBinAddr: 0x9200, symSize: 0x30 } + - { offset: 0x398A8, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC13buildHttpBody4from10Foundation4DataVSgAA18IONFLTRHttpOptionsV_tFSaySSGSS_ALtXEfU_TA', symObjAddr: 0x2B50, symBinAddr: 0x9230, symSize: 0x20 } + - { offset: 0x398BC, size: 0x8, addend: 0x0, symName: '_$sSaySSGSayxGSKsWl', symObjAddr: 0x2B70, symBinAddr: 0x9250, symSize: 0x40 } + - { offset: 0x398D0, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameAbstract, symObjAddr: 0x2BB0, symBinAddr: 0x9290, symSize: 0x40 } + - { offset: 0x3993F, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVWOr', symObjAddr: 0x2EC0, symBinAddr: 0x95A0, symSize: 0x40 } + - { offset: 0x39953, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib18IONFLTRHttpOptionsVWOs', symObjAddr: 0x2F00, symBinAddr: 0x95E0, symSize: 0x3C } + - { offset: 0x39A70, size: 0x8, addend: 0x0, symName: '_$sSTsE7flatMapySay7ElementQyd__Gqd__ABQzKXEKSTRd__lFSDySSSaySSGG_Say10Foundation12URLQueryItemVGTg5027$sSSSaySSGSay10Foundation12eF193VGIgggo_SS3key_AA5valuetAEs5Error_pIegnrzo_TR087$s18IONFileTransferLib23IONFLTRURLRequestHelperC15buildQueryItems4fromSay10Foundation12bC45VGAA18IONFLTRHttpOptionsV_tFAISS_SaySSGtXEfU_Tf3nnpf_nTf1cn_n', symObjAddr: 0xEC0, symBinAddr: 0x7700, symSize: 0x490 } + - { offset: 0x39F0D, size: 0x8, addend: 0x0, symName: '_$sSTsE7flatMapySay7ElementQyd__Gqd__ABQzKXEKSTRd__lFSDySSSaySSGG_AFTg555$sSSSaySSGAAIgggo_SS3key_AA5valuetAAs5Error_pIegnrzo_TRSSA2FIgggo_Tf1cn_nTf4ng_n', symObjAddr: 0x1CE0, symBinAddr: 0x84C0, symSize: 0x350 } + - { offset: 0x3A1C6, size: 0x8, addend: 0x0, symName: '_$sSTsE7forEachyyy7ElementQzKXEKFSDyS2SG_Tg544$sS2SIggg_SS3key_SS5valuets5Error_pIegnzo_TRS2SIggg_Tf1cn_nTf4ng_n', symObjAddr: 0x2030, symBinAddr: 0x8810, symSize: 0x250 } + - { offset: 0x3A27D, size: 0x8, addend: 0x0, symName: '_$sSlsE3mapySayqd__Gqd__7ElementQzqd_0_YKXEqd_0_YKs5ErrorRd_0_r0_lFSaySSG_SSs5NeverOTg5139$s18IONFileTransferLib23IONFLTRURLRequestHelperC13buildHttpBody4from10Foundation4DataVSgAA18IONFLTRHttpOptionsV_tFSaySSGSS_ALtXEfU_S2SXEfU_0fG3Lib0iJ0CSSAJ0rS0VTf1cn_nTf4ndgg_n', symObjAddr: 0x2BF0, symBinAddr: 0x92D0, symSize: 0x2D0 } + - { offset: 0x3A572, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC12setupRequest9serverURL11httpOptions10Foundation10URLRequestVAG0I0V_AA011IONFLTRHttpK0VtKF', symObjAddr: 0x0, symBinAddr: 0x6840, symSize: 0x710 } + - { offset: 0x3A7FF, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC25configureRequestForUpload7request11httpOptions06uploadL07fileURL0nE010Foundation10URLRequestV_AJ0O0VtAL_AA011IONFLTRHttpL0VAA013IONFLTRUploadL0VAnA011IONFLTRFileE0CtKF', symObjAddr: 0x710, symBinAddr: 0x6F50, symSize: 0x7B0 } + - { offset: 0x3AAC6, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC13buildHttpBody4from10Foundation4DataVSgAA18IONFLTRHttpOptionsV_tFSaySSGSS_ALtXEfU_', symObjAddr: 0x1350, symBinAddr: 0x7B90, symSize: 0x80 } + - { offset: 0x3AB35, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC19createMultipartBody13uploadOptions7fileURL0kE08boundary10Foundation4DataVAA013IONFLTRUploadJ0V_AI0L0VAA011IONFLTRFileE0CSStKFySS_SStXEfU_', symObjAddr: 0x13D0, symBinAddr: 0x7C10, symSize: 0x2B0 } + - { offset: 0x3AEA5, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib23IONFLTRURLRequestHelperC19createMultipartBody13uploadOptions7fileURL0kE08boundary10Foundation4DataVAA013IONFLTRUploadJ0V_AI0L0VAA011IONFLTRFileE0CSStKFTf4nndnd_n', symObjAddr: 0x2280, symBinAddr: 0x8A60, symSize: 0x7A0 } + - { offset: 0x3B56B, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateC16handleCompletion4task5errorySo16NSURLSessionTaskC_s5Error_pSgtF', symObjAddr: 0x0, symBinAddr: 0x9620, symSize: 0x210 } + - { offset: 0x3B67A, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateCfETo', symObjAddr: 0x760, symBinAddr: 0x9D80, symSize: 0x20 } + - { offset: 0x3B6A9, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateCMa', symObjAddr: 0x780, symBinAddr: 0x9DA0, symSize: 0x20 } + - { offset: 0x3B6BD, size: 0x8, addend: 0x0, symName: '_$ss11AnyHashableV3key_yp5valuetWOh', symObjAddr: 0x860, symBinAddr: 0x9DC0, symSize: 0x30 } + - { offset: 0x3B73D, size: 0x8, addend: 0x0, symName: '_$sSTsE6reduce4into_qd__qd__n_yqd__z_7ElementQztKXEtKlFSDys11AnyHashableVypG_SDyS2SGTg50122$s18IONFileTransferLib19IONFLTRBaseDelegateC16handleCompletion4task5errorySo16NSURLSessionTaskC_s5Error_pSgtFySDyS2SGz_s11dE21V3key_yp5valuettXEfU_Tf1ncn_n', symObjAddr: 0x210, symBinAddr: 0x9830, symSize: 0x4F0 } + - { offset: 0x3B93E, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateC16handleCompletion4task5errorySo16NSURLSessionTaskC_s5Error_pSgtF', symObjAddr: 0x0, symBinAddr: 0x9620, symSize: 0x210 } + - { offset: 0x3BA9D, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateCACycfcTo', symObjAddr: 0x700, symBinAddr: 0x9D20, symSize: 0x30 } + - { offset: 0x3BAFC, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib19IONFLTRBaseDelegateCfD', symObjAddr: 0x730, symBinAddr: 0x9D50, symSize: 0x30 } + - { offset: 0x3BBB5, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsV11chunkedMode8mimeType7fileKey10formParamsACSb_SSSgSSSDyS2SGSgtcfC', symObjAddr: 0x0, symBinAddr: 0x9DF0, symSize: 0x30 } + - { offset: 0x3BBFE, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwxx', symObjAddr: 0x60, symBinAddr: 0x9E20, symSize: 0x30 } + - { offset: 0x3BC12, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwcp', symObjAddr: 0x90, symBinAddr: 0x9E50, symSize: 0x60 } + - { offset: 0x3BC26, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwca', symObjAddr: 0xF0, symBinAddr: 0x9EB0, symSize: 0x80 } + - { offset: 0x3BC3A, size: 0x8, addend: 0x0, symName: ___swift_memcpy48_8, symObjAddr: 0x170, symBinAddr: 0x9F30, symSize: 0x20 } + - { offset: 0x3BC4E, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwta', symObjAddr: 0x190, symBinAddr: 0x9F50, symSize: 0x60 } + - { offset: 0x3BC62, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwet', symObjAddr: 0x1F0, symBinAddr: 0x9FB0, symSize: 0x40 } + - { offset: 0x3BC76, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVwst', symObjAddr: 0x230, symBinAddr: 0x9FF0, symSize: 0x50 } + - { offset: 0x3BC8A, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsVMa', symObjAddr: 0x280, symBinAddr: 0xA040, symSize: 0xA } + - { offset: 0x3BCF5, size: 0x8, addend: 0x0, symName: '_$s18IONFileTransferLib20IONFLTRUploadOptionsV11chunkedMode8mimeType7fileKey10formParamsACSb_SSSgSSSDyS2SGSgtcfC', symObjAddr: 0x0, symBinAddr: 0x9DF0, symSize: 0x30 } +... diff --git a/packages/capacitor-plugin/ios/Tests/FileTransferPluginTests/FileTransferPluginTests.swift b/packages/capacitor-plugin/ios/Tests/FileTransferPluginTests/FileTransferPluginTests.swift new file mode 100644 index 0000000..7ca50ca --- /dev/null +++ b/packages/capacitor-plugin/ios/Tests/FileTransferPluginTests/FileTransferPluginTests.swift @@ -0,0 +1,15 @@ +import XCTest +@testable import FileTransferPlugin + +class FileTransferTests: XCTestCase { + func testEcho() { + // This is an example of a functional test case for a plugin. + // Use XCTAssert and related functions to verify your tests produce the correct results. + + let implementation = FileTransfer() + let value = "Hello, World!" + let result = implementation.echo(value) + + XCTAssertEqual(value, result) + } +} diff --git a/packages/capacitor-plugin/package-lock.json b/packages/capacitor-plugin/package-lock.json new file mode 100644 index 0000000..f151245 --- /dev/null +++ b/packages/capacitor-plugin/package-lock.json @@ -0,0 +1,10589 @@ +{ + "name": "@capacitor/file-transfer", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@capacitor/file-transfer", + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "@capacitor/synapse": "^1.0.2" + }, + "devDependencies": { + "@capacitor/android": "^7.0.0", + "@capacitor/core": "^7.0.0", + "@capacitor/docgen": "^0.3.0", + "@capacitor/ios": "^7.0.0", + "@eslint/js": "^8.56.0", + "@rollup/wasm-node": "~4.19.0", + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/git": "^10.0.1", + "@semantic-release/github": "^10.1.2", + "@semantic-release/npm": "^12.0.1", + "@typescript-eslint/eslint-plugin": "^8.29.0", + "@typescript-eslint/parser": "^8.29.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", + "mustache": "^4.2.0", + "prettier": "^3.4.2", + "prettier-plugin-java": "^2.6.6", + "rimraf": "^6.0.1", + "semantic-release": "^24.0.0", + "swiftlint": "^2.0.0", + "typescript": "^5.8.2", + "vite": "^5.2.11", + "vite-plugin-dts": "^4.4.0" + }, + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", + "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", + "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@capacitor/android": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-7.2.0.tgz", + "integrity": "sha512-zdhEy3jZPG5Toe/pGzKtDgIiBGywjaoEuQWnGVjBYPlSAEUtAhpZ2At7V0SCb26yluAuzrAUV0Ue+LQeEtHwFQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@capacitor/core": "^7.2.0" + } + }, + "node_modules/@capacitor/core": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-7.2.0.tgz", + "integrity": "sha512-2zCnA6RJeZ9ec4470o8QMZEQTWpekw9FNoqm5TLc10jeCrhvHVI8MPgxdZVc3mOdFlyieYu4AS1fNxSqbS57Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@capacitor/docgen": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@capacitor/docgen/-/docgen-0.3.0.tgz", + "integrity": "sha512-WPggobo5Ql70F+2xOIUwNSApJXaL9F/9+Al6B+sNuSAmcg484OAksyUPKgiynF4BVlxeY5a0sDkgdVkmmA3ElQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "^14.18.0", + "colorette": "^2.0.20", + "github-slugger": "^1.5.0", + "minimist": "^1.2.8", + "typescript": "~4.2.4" + }, + "bin": { + "docgen": "bin/docgen" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@capacitor/docgen/node_modules/@types/node": { + "version": "14.18.63", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", + "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@capacitor/docgen/node_modules/typescript": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", + "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@capacitor/ios": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-7.2.0.tgz", + "integrity": "sha512-MQgRZcXZpbpjN83bjkGrzQd7s3XeHBZplmWf38/msF/siMGJKLrXNmNzmmPIWA5Xpi/aH6UoJFk1wXuU2U+zMg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@capacitor/core": "^7.2.0" + } + }, + "node_modules/@capacitor/synapse": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@capacitor/synapse/-/synapse-1.0.2.tgz", + "integrity": "sha512-ynq39s4D2rhk+aVLWKfKfMCz9SHPKijL9tq8aFL5dG7ik7/+PvBHmg9cPHbqdvFEUSMmaGzL6cIjzkOruW7vGA==", + "license": "ISC" + }, + "node_modules/@chevrotain/cst-dts-gen": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz", + "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/gast": "11.0.3", + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/gast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", + "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/regexp-to-ast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", + "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@chevrotain/types": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz", + "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@chevrotain/utils": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz", + "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", + "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@ionic/utils-array": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.6.tgz", + "integrity": "sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-fs": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.7.tgz", + "integrity": "sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/fs-extra": "^8.0.0", + "debug": "^4.0.0", + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-fs/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ionic/utils-object": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.6.tgz", + "integrity": "sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-process": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.12.tgz", + "integrity": "sha512-Jqkgyq7zBs/v/J3YvKtQQiIcxfJyplPgECMWgdO0E1fKrrH8EF0QGHNJ9mJCn6PYe2UtHNS8JJf5G21e09DfYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ionic/utils-object": "2.1.6", + "@ionic/utils-terminal": "2.3.5", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "tree-kill": "^1.2.2", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.7.tgz", + "integrity": "sha512-eSELBE7NWNFIHTbTC2jiMvh1ABKGIpGdUIvARsNPMNQhxJB3wpwdiVnoBoTYp+5a6UUIww4Kpg7v6S7iTctH1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-subprocess": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-3.0.1.tgz", + "integrity": "sha512-cT4te3AQQPeIM9WCwIg8ohroJ8TjsYaMb2G4ZEgv9YzeDqHZ4JpeIKqG2SoaA3GmVQ3sOfhPM6Ox9sxphV/d1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ionic/utils-array": "2.1.6", + "@ionic/utils-fs": "3.1.7", + "@ionic/utils-process": "2.1.12", + "@ionic/utils-stream": "3.1.7", + "@ionic/utils-terminal": "2.3.5", + "cross-spawn": "^7.0.3", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-terminal": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.5.tgz", + "integrity": "sha512-3cKScz9Jx2/Pr9ijj1OzGlBDfcmx7OMVBt4+P1uRR0SSW4cm1/y3Mo4OY3lfkuaYifMNBW8Wz6lQHbs1bihr7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/slice-ansi": "^4.0.0", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "slice-ansi": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "tslib": "^2.0.1", + "untildify": "^4.0.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-terminal/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ionic/utils-terminal/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/utils-terminal/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@microsoft/api-extractor": { + "version": "7.52.2", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.52.2.tgz", + "integrity": "sha512-RX37V5uhBBPUvrrcmIxuQ8TPsohvr6zxo7SsLPOzBYcH9nbjbvtdXrts4cxHCXGOin9JR5ar37qfxtCOuEBTHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/api-extractor-model": "7.30.5", + "@microsoft/tsdoc": "~0.15.1", + "@microsoft/tsdoc-config": "~0.17.1", + "@rushstack/node-core-library": "5.13.0", + "@rushstack/rig-package": "0.5.3", + "@rushstack/terminal": "0.15.2", + "@rushstack/ts-command-line": "4.23.7", + "lodash": "~4.17.15", + "minimatch": "~3.0.3", + "resolve": "~1.22.1", + "semver": "~7.5.4", + "source-map": "~0.6.1", + "typescript": "5.8.2" + }, + "bin": { + "api-extractor": "bin/api-extractor" + } + }, + "node_modules/@microsoft/api-extractor-model": { + "version": "7.30.5", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.30.5.tgz", + "integrity": "sha512-0ic4rcbcDZHz833RaTZWTGu+NpNgrxVNjVaor0ZDUymfDFzjA/Uuk8hYziIUIOEOSTfmIQqyzVwlzxZxPe7tOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "~0.15.1", + "@microsoft/tsdoc-config": "~0.17.1", + "@rushstack/node-core-library": "5.13.0" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz", + "integrity": "sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.1.tgz", + "integrity": "sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "0.15.1", + "ajv": "~8.12.0", + "jju": "~1.4.0", + "resolve": "~1.22.2" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@octokit/auth-token": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.2.tgz", + "integrity": "sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.4.tgz", + "integrity": "sha512-lAS9k7d6I0MPN+gb9bKDt7X8SdxknYqAMh44S5L+lNqIN2NuV8nvv3g8rPp7MuRxcOpxpUIATWprO0C34a8Qmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/auth-token": "^5.0.0", + "@octokit/graphql": "^8.1.2", + "@octokit/request": "^9.2.1", + "@octokit/request-error": "^6.1.7", + "@octokit/types": "^13.6.2", + "before-after-hook": "^3.0.2", + "universal-user-agent": "^7.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/endpoint": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.3.tgz", + "integrity": "sha512-nBRBMpKPhQUxCsQQeW+rCJ/OPSMcj3g0nfHn01zGYZXuNDvvXudF/TYY6APj5THlurerpFN4a/dQAIAaM6BYhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.6.2", + "universal-user-agent": "^7.0.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.2.1.tgz", + "integrity": "sha512-n57hXtOoHrhwTWdvhVkdJHdhTv0JstjDbDRhJfwIRNfFqmSo1DaK/mD2syoNUoLCyqSjBpGAKOG0BuwF392slw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/request": "^9.2.2", + "@octokit/types": "^13.8.0", + "universal-user-agent": "^7.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.6.0.tgz", + "integrity": "sha512-n5KPteiF7pWKgBIBJSk8qzoZWcUkza2O6A0za97pMGVrGfPdltxrfmfF5GucHYvHGZD8BdaZmmHGz5cX/3gdpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.10.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=6" + } + }, + "node_modules/@octokit/plugin-retry": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.2.0.tgz", + "integrity": "sha512-psMbEYb/Fh+V+ZaFo8J16QiFz4sVTv3GntCSU+hYqzHiMdc3P+hhHLVv+dJt0PGIPAGoIA5u+J2DCJdK6lEPsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/request-error": "^6.1.7", + "@octokit/types": "^13.6.2", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=6" + } + }, + "node_modules/@octokit/plugin-throttling": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.6.0.tgz", + "integrity": "sha512-zn7m1N3vpJDaVzLqjCRdJ0cRzNiekHEWPi8Ww9xyPNrDt5PStHvVE0eR8wy4RSU8Eg7YO8MHyvn6sv25EGVhhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.7.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "^6.1.3" + } + }, + "node_modules/@octokit/request": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.2.tgz", + "integrity": "sha512-dZl0ZHx6gOQGcffgm1/Sf6JfEpmh34v3Af2Uci02vzUYz6qEN6zepoRtmybWXIGXFIK8K9ylE3b+duCWqhArtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/endpoint": "^10.1.3", + "@octokit/request-error": "^6.1.7", + "@octokit/types": "^13.6.2", + "fast-content-type-parse": "^2.0.0", + "universal-user-agent": "^7.0.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/request-error": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.7.tgz", + "integrity": "sha512-69NIppAwaauwZv6aOzb+VVLwt+0havz9GT5YplkeJv7fG7a40qpLt/yZKyiDxAhgz0EtgNdNcb96Z0u+Zyuy2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.6.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.0.tgz", + "integrity": "sha512-vsJDAkYR6qCPu+ioGScGiMYR7LvZYIXh/dlQeviqoTWNCVfKTLYD/LkNWH4Mxsv2a5vpIRc77FN5DnmK1eBggQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true, + "license": "ISC" + }, + "node_modules/@pnpm/npm-conf": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/wasm-node": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.19.2.tgz", + "integrity": "sha512-bJMdn3ISkclfH7ueDODHDws5ageZLuK/CCPvcqgldgk1L6+fWQWH7O2TzUeHq9Mfy9pOkiHHn3mIk0WzlUPLnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/@rushstack/node-core-library": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.13.0.tgz", + "integrity": "sha512-IGVhy+JgUacAdCGXKUrRhwHMTzqhWwZUI+qEPcdzsb80heOw0QPbhhoVsoiMF7Klp8eYsp7hzpScMXmOa3Uhfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "~8.13.0", + "ajv-draft-04": "~1.0.0", + "ajv-formats": "~3.0.1", + "fs-extra": "~11.3.0", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.5.4" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library/node_modules/ajv": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rushstack/node-core-library/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/rig-package": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.3.tgz", + "integrity": "sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "~1.22.1", + "strip-json-comments": "~3.1.1" + } + }, + "node_modules/@rushstack/terminal": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.15.2.tgz", + "integrity": "sha512-7Hmc0ysK5077R/IkLS9hYu0QuNafm+TbZbtYVzCMbeOdMjaRboLKrhryjwZSRJGJzu+TV1ON7qZHeqf58XfLpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rushstack/node-core-library": "5.13.0", + "supports-color": "~8.1.1" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/terminal/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@rushstack/ts-command-line": { + "version": "4.23.7", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.23.7.tgz", + "integrity": "sha512-Gr9cB7DGe6uz5vq2wdr89WbVDKz0UeuFEn5H2CfWDe7JvjFFaiV15gi6mqDBTbHhHCWS7w8mF1h3BnIfUndqdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rushstack/terminal": "0.15.2", + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "string-argv": "~0.3.1" + } + }, + "node_modules/@rushstack/ts-command-line/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@semantic-release/changelog": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.3.tgz", + "integrity": "sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "fs-extra": "^11.0.0", + "lodash": "^4.17.4" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0" + } + }, + "node_modules/@semantic-release/commit-analyzer": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-13.0.1.tgz", + "integrity": "sha512-wdnBPHKkr9HhNhXOhZD5a2LNl91+hs8CC2vsAVYxtZH3y0dV3wKn+uZSN61rdJQZ8EGxzWB3inWocBHV9+u/CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-changelog-angular": "^8.0.0", + "conventional-changelog-writer": "^8.0.0", + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.0.0", + "debug": "^4.0.0", + "import-from-esm": "^2.0.0", + "lodash-es": "^4.17.21", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@semantic-release/error": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", + "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@semantic-release/git": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", + "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "execa": "^5.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.0", + "p-reduce": "^2.0.0" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0" + } + }, + "node_modules/@semantic-release/github": { + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.3.5.tgz", + "integrity": "sha512-svvRglGmvqvxjmDgkXhrjf0lC88oZowFhOfifTldbgX9Dzj0inEtMLaC+3/MkDEmxmaQjWmF5Q/0CMIvPNSVdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/core": "^6.0.0", + "@octokit/plugin-paginate-rest": "^11.0.0", + "@octokit/plugin-retry": "^7.0.0", + "@octokit/plugin-throttling": "^9.0.0", + "@semantic-release/error": "^4.0.0", + "aggregate-error": "^5.0.0", + "debug": "^4.3.4", + "dir-glob": "^3.0.1", + "globby": "^14.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "issue-parser": "^7.0.0", + "lodash-es": "^4.17.21", + "mime": "^4.0.0", + "p-filter": "^4.0.0", + "url-join": "^5.0.0" + }, + "engines": { + "node": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@semantic-release/github/node_modules/@semantic-release/error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", + "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@semantic-release/github/node_modules/aggregate-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^5.2.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/github/node_modules/clean-stack": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", + "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/github/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/github/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.1.tgz", + "integrity": "sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@semantic-release/error": "^4.0.0", + "aggregate-error": "^5.0.0", + "execa": "^9.0.0", + "fs-extra": "^11.0.0", + "lodash-es": "^4.17.21", + "nerf-dart": "^1.0.0", + "normalize-url": "^8.0.0", + "npm": "^10.5.0", + "rc": "^1.2.8", + "read-pkg": "^9.0.0", + "registry-auth-token": "^5.0.0", + "semver": "^7.1.2", + "tempy": "^3.0.0" + }, + "engines": { + "node": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/@semantic-release/error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", + "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@semantic-release/npm/node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/aggregate-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^5.2.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/clean-stack": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", + "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/execa": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.2.tgz", + "integrity": "sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.3", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@semantic-release/npm/node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/human-signals": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@semantic-release/npm/node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/release-notes-generator": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.3.tgz", + "integrity": "sha512-XxAZRPWGwO5JwJtS83bRdoIhCiYIx8Vhr+u231pQAsdFIAbm19rSVJLdnBN+Avvk7CKvNQE/nJ4y7uqKH6WTiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-changelog-angular": "^8.0.0", + "conventional-changelog-writer": "^8.0.0", + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.0.0", + "debug": "^4.0.0", + "get-stream": "^7.0.0", + "import-from-esm": "^2.0.0", + "into-stream": "^7.0.0", + "lodash-es": "^4.17.21", + "read-package-up": "^11.0.0" + }, + "engines": { + "node": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", + "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@types/argparse": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", + "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/fs-extra": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", + "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "22.13.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.17.tgz", + "integrity": "sha512-nAJuQXoyPj04uLgu+obZcSmsfOenUg6DxPKogeUy6yNCFwWaj5sBF8/G/pNo8EtBJjAfSVgfIlugR/BCOleO+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.0.tgz", + "integrity": "sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.29.0", + "@typescript-eslint/type-utils": "8.29.0", + "@typescript-eslint/utils": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.0.tgz", + "integrity": "sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.29.0", + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/typescript-estree": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.0.tgz", + "integrity": "sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.0.tgz", + "integrity": "sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.29.0", + "@typescript-eslint/utils": "8.29.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.0.tgz", + "integrity": "sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.0.tgz", + "integrity": "sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.0.tgz", + "integrity": "sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.29.0", + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/typescript-estree": "8.29.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.0.tgz", + "integrity": "sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.29.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@volar/language-core": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.12.tgz", + "integrity": "sha512-RLrFdXEaQBWfSnYGVxvR2WrO6Bub0unkdHYIdC31HzIEqATIuuhRRzYu76iGPZ6OtA4Au1SnW0ZwIqPP217YhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.12" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.12.tgz", + "integrity": "sha512-bUFIKvn2U0AWojOaqf63ER0N/iHIBYZPpNGogfLPQ68F5Eet6FnLlyho7BS0y2HJ1jFhSif7AcuTx1TqsCzRzw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.12.tgz", + "integrity": "sha512-HJB73OTJDgPc80K30wxi3if4fSsZZAOScbj2fcicMuOPoOkcf9NNAINb33o+DzhBdF9xTKC1gnPmIRDous5S0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.12", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/language-core": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.0.tgz", + "integrity": "sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "~2.4.11", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^0.4.9", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/alien-signals": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.4.14.tgz", + "integrity": "sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/argv-formatter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", + "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true, + "license": "MIT" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/before-after-hook": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz", + "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/bottleneck": { + "version": "2.19.5", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/chevrotain": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", + "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/cst-dts-gen": "11.0.3", + "@chevrotain/gast": "11.0.3", + "@chevrotain/regexp-to-ast": "11.0.3", + "@chevrotain/types": "11.0.3", + "@chevrotain/utils": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/chevrotain-allstar": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz", + "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash-es": "^4.17.21" + }, + "peerDependencies": { + "chevrotain": "^11.0.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dev": true, + "license": "ISC", + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cli-highlight/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-highlight/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/cli-highlight/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-highlight/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/compare-versions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.1.tgz", + "integrity": "sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==", + "dev": true, + "license": "MIT" + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/conventional-changelog-angular": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz", + "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.1.tgz", + "integrity": "sha512-hlqcy3xHred2gyYg/zXSMXraY2mjAYYo0msUCpK+BGyaVJMFCKWVXPIHiaacGO2GGp13kvHWXFhYmxT4QQqW3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-commits-filter": "^5.0.0", + "handlebars": "^4.7.7", + "meow": "^13.0.0", + "semver": "^7.5.2" + }, + "bin": { + "conventional-changelog-writer": "dist/cli/index.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-commits-filter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz", + "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-commits-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.1.0.tgz", + "integrity": "sha512-5nxDo7TwKB5InYBl4ZC//1g9GRwB/F3TXOGR9hgUjMGfvSP4Vu5NkpNro2+1+TIEy1vwxApl5ircECr2ri5JIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "meow": "^13.0.0" + }, + "bin": { + "conventional-commits-parser": "dist/cli/index.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/convert-hrtime": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", + "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/emojilib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-ci": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.1.0.tgz", + "integrity": "sha512-Z8dnwSDbV1XYM9SBF2J0GcNVvmfmfh3a49qddGIROhBoVro6MZVTji15z/sJbQ2ko2ei8n988EU1wzoLU/tF+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^8.0.0", + "java-properties": "^1.0.2" + }, + "engines": { + "node": "^18.17 || >=20.6.1" + } + }, + "node_modules/env-ci/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/env-ci/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/env-ci/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/env-ci/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/env-ci/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/env-ci/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/env-ci/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/env-ci/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/env-ci/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/env-ci/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.6.tgz", + "integrity": "sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exsolve": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.4.tgz", + "integrity": "sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-content-type-parse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz", + "integrity": "sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up-simple": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz", + "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-versions": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-6.0.0.tgz", + "integrity": "sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver-regex": "^4.0.5", + "super-regex": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/flat-cache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flat-cache/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-extra": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function-timeout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-1.0.2.tgz", + "integrity": "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-log-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.1.tgz", + "integrity": "sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "argv-formatter": "~1.0.0", + "spawn-error-forwarder": "~1.0.0", + "split2": "~1.0.0", + "stream-combiner2": "~1.1.1", + "through2": "~2.0.0", + "traverse": "0.6.8" + } + }, + "node_modules/github-slugger": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", + "dev": true, + "license": "ISC" + }, + "node_modules/glob": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", + "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.3.tgz", + "integrity": "sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/globby/node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/hook-std": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-3.0.0.tgz", + "integrity": "sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-from-esm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-from-esm/-/import-from-esm-2.0.0.tgz", + "integrity": "sha512-YVt14UZCgsX1vZQ3gKjkWVdBdHQ6eu3MPU1TBgL1H5orXe2+jWD006WCPPtOuwlQm10NuzOW5WawiF1Q9veW8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "import-meta-resolve": "^4.0.0" + }, + "engines": { + "node": ">=18.20" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/index-to-position": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.0.0.tgz", + "integrity": "sha512-sCO7uaLVhRJ25vz1o8s9IFM3nVS4DkuQnyjMwiQPKvQuBYBDmb8H7zx8ki7nVh4HJQOdVWebyvLE0qt+clruxA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/into-stream": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-7.0.0.tgz", + "integrity": "sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/issue-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-7.0.1.tgz", + "integrity": "sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.capitalize": "^4.2.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.uniqby": "^4.7.0" + }, + "engines": { + "node": "^18.17 || >=20.6.1" + } + }, + "node_modules/jackspeak": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz", + "integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/java-parser": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/java-parser/-/java-parser-2.3.3.tgz", + "integrity": "sha512-9YY8OGlNGfq5TDDq2SBjtIEHMVLeV8vSSZrXDaQBhQ84hi1zc3/+5l3DF3wW8JGqQT2kNVha05dziSamvN8M/g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "chevrotain": "11.0.3", + "chevrotain-allstar": "0.3.1", + "lodash": "4.17.21" + } + }, + "node_modules/java-properties": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", + "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/local-pkg": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz", + "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.0.1", + "quansync": "^0.2.8" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.capitalize": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", + "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniqby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", + "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/marked": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", + "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/marked-terminal": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.3.0.tgz", + "integrity": "sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "ansi-regex": "^6.1.0", + "chalk": "^5.4.1", + "cli-highlight": "^2.1.11", + "cli-table3": "^0.6.5", + "node-emoji": "^2.2.0", + "supports-hyperlinks": "^3.1.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "marked": ">=1 <16" + } + }, + "node_modules/marked-terminal/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.6.tgz", + "integrity": "sha512-4rGt7rvQHBbaSOF9POGkk1ocRP16Md1x36Xma8sz8h8/vfCUI2OtEIeCqe4Ofes853x4xDoPiFLIT47J5fI/7A==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa" + ], + "license": "MIT", + "bin": { + "mime": "bin/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mlly": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", + "ufo": "^1.5.4" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true, + "license": "MIT", + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nerf-dart": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", + "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-emoji": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", + "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.9.2.tgz", + "integrity": "sha512-iriPEPIkoMYUy3F6f3wwSZAU93E0Eg6cHwIR6jzzOXWSy+SD/rOODEs74cVONHKSx2obXtuUoyidVEhISrisgQ==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/config", + "@npmcli/fs", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/promise-spawn", + "@npmcli/redact", + "@npmcli/run-script", + "@sigstore/tuf", + "abbrev", + "archy", + "cacache", + "chalk", + "ci-info", + "cli-columns", + "fastest-levenshtein", + "fs-minipass", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmhook", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minimatch", + "minipass", + "minipass-pipeline", + "ms", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "p-map", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "semver", + "spdx-expression-parse", + "ssri", + "supports-color", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which", + "write-file-atomic" + ], + "dev": true, + "license": "Artistic-2.0", + "workspaces": [ + "docs", + "smoke-tests", + "mock-globals", + "mock-registry", + "workspaces/*" + ], + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/arborist": "^8.0.0", + "@npmcli/config": "^9.0.0", + "@npmcli/fs": "^4.0.0", + "@npmcli/map-workspaces": "^4.0.2", + "@npmcli/package-json": "^6.1.0", + "@npmcli/promise-spawn": "^8.0.2", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", + "@sigstore/tuf": "^3.0.0", + "abbrev": "^3.0.0", + "archy": "~1.0.0", + "cacache": "^19.0.1", + "chalk": "^5.3.0", + "ci-info": "^4.1.0", + "cli-columns": "^4.0.0", + "fastest-levenshtein": "^1.0.16", + "fs-minipass": "^3.0.3", + "glob": "^10.4.5", + "graceful-fs": "^4.2.11", + "hosted-git-info": "^8.0.2", + "ini": "^5.0.0", + "init-package-json": "^7.0.2", + "is-cidr": "^5.1.0", + "json-parse-even-better-errors": "^4.0.0", + "libnpmaccess": "^9.0.0", + "libnpmdiff": "^7.0.0", + "libnpmexec": "^9.0.0", + "libnpmfund": "^6.0.0", + "libnpmhook": "^11.0.0", + "libnpmorg": "^7.0.0", + "libnpmpack": "^8.0.0", + "libnpmpublish": "^10.0.1", + "libnpmsearch": "^8.0.0", + "libnpmteam": "^7.0.0", + "libnpmversion": "^7.0.0", + "make-fetch-happen": "^14.0.3", + "minimatch": "^9.0.5", + "minipass": "^7.1.1", + "minipass-pipeline": "^1.2.4", + "ms": "^2.1.2", + "node-gyp": "^11.0.0", + "nopt": "^8.0.0", + "normalize-package-data": "^7.0.0", + "npm-audit-report": "^6.0.0", + "npm-install-checks": "^7.1.1", + "npm-package-arg": "^12.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-profile": "^11.0.1", + "npm-registry-fetch": "^18.0.2", + "npm-user-validate": "^3.0.0", + "p-map": "^4.0.0", + "pacote": "^19.0.1", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "qrcode-terminal": "^0.12.0", + "read": "^4.0.0", + "semver": "^7.6.3", + "spdx-expression-parse": "^4.0.0", + "ssri": "^12.0.0", + "supports-color": "^9.4.0", + "tar": "^6.2.1", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "treeverse": "^3.0.0", + "validate-npm-package-name": "^6.0.0", + "which": "^5.0.0", + "write-file-atomic": "^6.0.0" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui": { + "version": "8.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^4.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/metavuln-calculator": "^8.0.0", + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.1", + "@npmcli/query": "^4.0.0", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", + "bin-links": "^5.0.0", + "cacache": "^19.0.1", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "json-stringify-nice": "^1.1.4", + "lru-cache": "^10.2.2", + "minimatch": "^9.0.4", + "nopt": "^8.0.0", + "npm-install-checks": "^7.1.0", + "npm-package-arg": "^12.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.1", + "pacote": "^19.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "proggy": "^3.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^3.0.1", + "read-package-json-fast": "^4.0.0", + "semver": "^7.3.7", + "ssri": "^12.0.0", + "treeverse": "^3.0.0", + "walk-up-path": "^3.0.1" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "9.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/package-json": "^6.0.1", + "ci-info": "^4.0.0", + "ini": "^5.0.0", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^10.0.0", + "proc-log": "^5.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "8.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^19.0.0", + "json-parse-even-better-errors": "^4.0.0", + "pacote": "^20.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator/node_modules/pacote": { + "version": "20.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^9.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^3.0.0", + "ssri": "^12.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "6.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "normalize-package-data": "^7.0.0", + "proc-log": "^5.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "8.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/query": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.1.2" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "9.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "node-gyp": "^11.0.0", + "proc-log": "^5.0.0", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/agent-base": { + "version": "7.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^7.0.0", + "npm-normalize-package-bin": "^4.0.0", + "proc-log": "^5.0.0", + "read-cmd-shim": "^5.0.0", + "write-file-atomic": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "19.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^4.0.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/chownr": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/minizlib": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/mkdirp": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/p-map": { + "version": "7.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/tar": { + "version": "7.4.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/yallist": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/chalk": { + "version": "5.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ci-info": { + "version": "4.1.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^5.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "7.0.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cssesc": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "4.3.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/diff": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/eastasianwidth": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/exponential-backoff": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.16", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/npm/node_modules/foreground-child": { + "version": "3.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "10.4.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "8.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "7.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "7.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ini": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "7.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/package-json": "^6.0.0", + "npm-package-arg": "^12.0.0", + "promzard": "^2.0.0", + "read": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/ip-address": { + "version": "9.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^4.1.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jackspeak": { + "version": "3.4.3", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/npm/node_modules/jsbn": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "5.5.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "9.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^12.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmdiff": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^8.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "binary-extensions": "^2.3.0", + "diff": "^5.1.0", + "minimatch": "^9.0.4", + "npm-package-arg": "^12.0.0", + "pacote": "^19.0.0", + "tar": "^6.2.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmexec": { + "version": "9.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^8.0.0", + "@npmcli/run-script": "^9.0.1", + "ci-info": "^4.0.0", + "npm-package-arg": "^12.0.0", + "pacote": "^19.0.0", + "proc-log": "^5.0.0", + "read": "^4.0.0", + "read-package-json-fast": "^4.0.0", + "semver": "^7.3.7", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmfund": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^8.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmhook": { + "version": "11.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmpack": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^8.0.0", + "@npmcli/run-script": "^9.0.1", + "npm-package-arg": "^12.0.0", + "pacote": "^19.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "10.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ci-info": "^4.0.0", + "normalize-package-data": "^7.0.0", + "npm-package-arg": "^12.0.0", + "npm-registry-fetch": "^18.0.1", + "proc-log": "^5.0.0", + "semver": "^7.3.7", + "sigstore": "^3.0.0", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmversion": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.1", + "@npmcli/run-script": "^9.0.1", + "json-parse-even-better-errors": "^4.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "10.4.3", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "14.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/make-fetch-happen/node_modules/negotiator": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/minipass": { + "version": "7.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-fetch": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/minipass-fetch/node_modules/minizlib": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "11.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^14.0.3", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "tar": "^7.4.3", + "which": "^5.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/chownr": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/minizlib": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/mkdirp": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/tar": { + "version": "7.4.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/yallist": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/nopt/node_modules/abbrev": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^8.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "7.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "12.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "9.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^7.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "10.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "11.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "18.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/redact": "^3.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^14.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch/node_modules/minizlib": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/package-json-from-dist": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/npm/node_modules/pacote": { + "version": "19.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^9.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^3.0.0", + "ssri": "^12.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^4.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/path-scurry": { + "version": "1.11.1", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/proc-log": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/proggy": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-call-limit": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "^2.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/rimraf": { + "version": "5.0.10", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.6.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/sigstore": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^3.0.0", + "@sigstore/tuf": "^3.0.0", + "@sigstore/verify": "^2.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/bundle": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/core": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/sign": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^14.0.1", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/verify": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.8.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "8.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.20", + "dev": true, + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/sprintf-js": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/ssri": { + "version": "12.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "9.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "6.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "3.0.1", + "debug": "^4.3.6", + "make-fetch-happen": "^14.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/@tufjs/models": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/walk-up-path": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/which": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/npm/node_modules/wrap-ansi": { + "version": "8.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-each-series": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-3.0.0.tgz", + "integrity": "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-filter": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz", + "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-map": "^7.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", + "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.2.0.tgz", + "integrity": "sha512-eONBZy4hm2AgxjNFd8a4nyDJnzUAH0g34xSQAwWEVGCjdZ4ZL7dKZBfq267GWP/JaS9zW62Xs2FeAdDvpHHJGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.0.0", + "type-fest": "^4.37.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json/node_modules/type-fest": { + "version": "4.39.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.39.0.tgz", + "integrity": "sha512-w2IGJU1tIgcrepg9ZJ82d8UmItNQtOFJG0HCUE3SzMokKkTsruVDALl2fAdiEzJlfduoU+VyXJWIIUZ+6jV+nw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true, + "license": "MIT" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", + "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", + "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-types": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz", + "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.1", + "exsolve": "^1.0.1", + "pathe": "^2.0.3" + } + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/prettier-plugin-java": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/prettier-plugin-java/-/prettier-plugin-java-2.6.7.tgz", + "integrity": "sha512-AVm+X7fhAZpYKiUCdUIGZ8HJbkGkTUgYQIKVuCQEplcqpGw2ewVnNGcPb1Kc3+MYMfiEqzhd8ZYhMGVHw6tZdQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "java-parser": "2.3.3", + "lodash": "4.17.21" + }, + "peerDependencies": { + "prettier": "^3.0.0" + } + }, + "node_modules/pretty-ms": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.2.0.tgz", + "integrity": "sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/quansync": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz", + "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-package-up": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", + "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-package-up/node_modules/type-fest": { + "version": "4.39.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.39.0.tgz", + "integrity": "sha512-w2IGJU1tIgcrepg9ZJ82d8UmItNQtOFJG0HCUE3SzMokKkTsruVDALl2fAdiEzJlfduoU+VyXJWIIUZ+6jV+nw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "4.39.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.39.0.tgz", + "integrity": "sha512-w2IGJU1tIgcrepg9ZJ82d8UmItNQtOFJG0HCUE3SzMokKkTsruVDALl2fAdiEzJlfduoU+VyXJWIIUZ+6jV+nw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/registry-auth-token": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", + "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "name": "@rollup/wasm-node", + "version": "4.39.0", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.39.0.tgz", + "integrity": "sha512-hSzvI7Rd7mCw1OI/pkkmwPAlzSTJ2uspxti8yZR0ZRSoHLJuuWCTxGnbdCC3U9bSxtLQwvE0DyXSrj3BtoIl5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.7" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup/node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semantic-release": { + "version": "24.2.3", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.2.3.tgz", + "integrity": "sha512-KRhQG9cUazPavJiJEFIJ3XAMjgfd0fcK3B+T26qOl8L0UG5aZUjeRfREO0KM5InGtYwxqiiytkJrbcYoLDEv0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@semantic-release/commit-analyzer": "^13.0.0-beta.1", + "@semantic-release/error": "^4.0.0", + "@semantic-release/github": "^11.0.0", + "@semantic-release/npm": "^12.0.0", + "@semantic-release/release-notes-generator": "^14.0.0-beta.1", + "aggregate-error": "^5.0.0", + "cosmiconfig": "^9.0.0", + "debug": "^4.0.0", + "env-ci": "^11.0.0", + "execa": "^9.0.0", + "figures": "^6.0.0", + "find-versions": "^6.0.0", + "get-stream": "^6.0.0", + "git-log-parser": "^1.2.0", + "hook-std": "^3.0.0", + "hosted-git-info": "^8.0.0", + "import-from-esm": "^2.0.0", + "lodash-es": "^4.17.21", + "marked": "^12.0.0", + "marked-terminal": "^7.0.0", + "micromatch": "^4.0.2", + "p-each-series": "^3.0.0", + "p-reduce": "^3.0.0", + "read-package-up": "^11.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.3.2", + "semver-diff": "^4.0.0", + "signale": "^1.2.1", + "yargs": "^17.5.1" + }, + "bin": { + "semantic-release": "bin/semantic-release.js" + }, + "engines": { + "node": ">=20.8.1" + } + }, + "node_modules/semantic-release/node_modules/@semantic-release/error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", + "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/semantic-release/node_modules/@semantic-release/github": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-11.0.1.tgz", + "integrity": "sha512-Z9cr0LgU/zgucbT9cksH0/pX9zmVda9hkDPcgIE0uvjMQ8w/mElDivGjx1w1pEQ+MuQJ5CBq3VCF16S6G4VH3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/core": "^6.0.0", + "@octokit/plugin-paginate-rest": "^11.0.0", + "@octokit/plugin-retry": "^7.0.0", + "@octokit/plugin-throttling": "^9.0.0", + "@semantic-release/error": "^4.0.0", + "aggregate-error": "^5.0.0", + "debug": "^4.3.4", + "dir-glob": "^3.0.1", + "globby": "^14.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "issue-parser": "^7.0.0", + "lodash-es": "^4.17.21", + "mime": "^4.0.0", + "p-filter": "^4.0.0", + "url-join": "^5.0.0" + }, + "engines": { + "node": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=24.1.0" + } + }, + "node_modules/semantic-release/node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/aggregate-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^5.2.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/clean-stack": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", + "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/execa": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.2.tgz", + "integrity": "sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.3", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/semantic-release/node_modules/execa/node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/hosted-git-info": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.2.tgz", + "integrity": "sha512-sYKnA7eGln5ov8T8gnYlkSOxFJvywzEx9BueN6xo/GKO8PGiI6uK6xx+DIGe45T3bdVjLAQDQW1aicT8z8JwQg==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/semantic-release/node_modules/human-signals": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/semantic-release/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/p-reduce": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", + "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/semantic-release/node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", + "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semver-regex": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz", + "integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/signale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", + "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.3.2", + "figures": "^2.0.0", + "pkg-conf": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/signale/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/signale/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/signale/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/signale/node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/skin-tone": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawn-error-forwarder": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", + "integrity": "sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", + "integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==", + "dev": true, + "license": "ISC", + "dependencies": { + "through2": "~2.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/super-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-1.0.0.tgz", + "integrity": "sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-timeout": "^1.0.1", + "time-span": "^5.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swiftlint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/swiftlint/-/swiftlint-2.0.0.tgz", + "integrity": "sha512-MMVuyZ4/6WcIJlk0z6GM0pZjRuwnyUJqRPbJBFW3oACN/qjAvRbolCWEu+zE2MycF/cEgqfUpI+oLECNfjfOJA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@ionic/utils-fs": "^3.1.7", + "@ionic/utils-subprocess": "^3.0.1", + "cosmiconfig": "^9.0.0" + }, + "bin": { + "node-swiftlint": "bin.js" + } + }, + "node_modules/synckit": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.1.tgz", + "integrity": "sha512-fWZqNBZNNFp/7mTUy1fSsydhKsAKJ+u90Nk7kOK5Gcq9vObaqLBLjWFDBkyVU9Vvc6Y71VbOevMuGhqv02bT+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.0", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/temp-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", + "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/tempy": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz", + "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^3.0.0", + "temp-dir": "^3.0.0", + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/time-span": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", + "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "convert-hrtime": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/traverse": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", + "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/unicode-emoji-modifier-base": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", + "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unique-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universal-user-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz", + "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-join": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", + "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vite": { + "version": "5.4.16", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.16.tgz", + "integrity": "sha512-Y5gnfp4NemVfgOTDQAunSD4346fal44L9mszGGY/e+qxsRT5y1sMlS/8tiQ8AFAp+MFgYNSINdfEchJiPm41vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-dts": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.5.3.tgz", + "integrity": "sha512-P64VnD00dR+e8S26ESoFELqc17+w7pKkwlBpgXteOljFyT0zDwD8hH4zXp49M/kciy//7ZbVXIwQCekBJjfWzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/api-extractor": "^7.50.1", + "@rollup/pluginutils": "^5.1.4", + "@volar/typescript": "^2.4.11", + "@vue/language-core": "2.2.0", + "compare-versions": "^6.1.1", + "debug": "^4.4.0", + "kolorist": "^1.8.0", + "local-pkg": "^1.0.0", + "magic-string": "^0.30.17" + }, + "peerDependencies": { + "typescript": "*", + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/packages/capacitor-plugin/package.json b/packages/capacitor-plugin/package.json new file mode 100644 index 0000000..e7d8203 --- /dev/null +++ b/packages/capacitor-plugin/package.json @@ -0,0 +1,102 @@ +{ + "name": "@capacitor/file-transfer", + "version": "0.0.1", + "description": "The FileTransfer API provides mechanisms for downloading and uploading files.", + "main": "./dist/plugin.cjs", + "module": "./dist/plugin.mjs", + "types": "./dist/index.d.ts", + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/plugin.mjs", + "require": "./dist/plugin.cjs" + } + }, + "unpkg": "dist/plugin.js", + "files": [ + "android/src/main/", + "android/build.gradle", + "dist/", + "ios/Sources", + "ios/Tests", + "Package.swift", + "CapacitorFileTransfer.podspec" + ], + "author": "Ionic", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/ionic-team/capacitor-file-transfer.git" + }, + "bugs": { + "url": "https://github.com/ionic-team/capacitor-file-transfer/issues" + }, + "keywords": [ + "capacitor", + "plugin", + "native" + ], + "scripts": { + "verify": "npm run verify:ios && npm run verify:android && npm run verify:web", + "verify:ios": "xcodebuild -scheme CapacitorFileTransfer -destination generic/platform=iOS", + "verify:android": "cd android && ./gradlew clean build test && cd ..", + "verify:web": "npm run build", + "lint": "npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint", + "fmt": "npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format", + "eslint": "eslint", + "prettier": "prettier \"src/**/*.{css,html,ts,js,java}\"", + "swiftlint": "node-swiftlint", + "docgen": "docgen --api FileTransferPlugin --output-readme README.md --output-json dist/docs.json", + "build": "npm run clean && npm run docgen && vite build", + "clean": "rimraf ./dist", + "watch": "tsc --watch", + "prepublishOnly": "npm run build", + "semantic-release": "semantic-release" + }, + "dependencies": { + "@capacitor/synapse": "^1.0.2" + }, + "devDependencies": { + "@capacitor/android": "^7.0.0", + "@capacitor/core": "^7.0.0", + "@capacitor/docgen": "^0.3.0", + "@capacitor/ios": "^7.0.0", + "@eslint/js": "^8.56.0", + "@rollup/wasm-node": "~4.19.0", + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/git": "^10.0.1", + "@semantic-release/github": "^10.1.2", + "@semantic-release/npm": "^12.0.1", + "@typescript-eslint/eslint-plugin": "^8.29.0", + "@typescript-eslint/parser": "^8.29.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", + "mustache": "^4.2.0", + "prettier": "^3.4.2", + "prettier-plugin-java": "^2.6.6", + "rimraf": "^6.0.1", + "semantic-release": "^24.0.0", + "swiftlint": "^2.0.0", + "typescript": "^5.8.2", + "vite": "^5.2.11", + "vite-plugin-dts": "^4.4.0" + }, + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + }, + "overrides": { + "vite": { + "rollup": "npm:@rollup/wasm-node" + } + }, + "capacitor": { + "ios": { + "src": "ios" + }, + "android": { + "src": "android" + } + } +} diff --git a/packages/capacitor-plugin/release.config.cjs b/packages/capacitor-plugin/release.config.cjs new file mode 100644 index 0000000..086b8e9 --- /dev/null +++ b/packages/capacitor-plugin/release.config.cjs @@ -0,0 +1,33 @@ +module.exports = { + branches: [ + { name: 'main', channel: 'latest' }, + { name: 'next', channel: 'next', prerelease: true }, + { name: 'dev', channel: 'dev', prerelease: true }, + ], + repositoryUrl: 'https://github.com/ionic-team/capacitor-file-transfer.git', + plugins: [ + '@semantic-release/commit-analyzer', + '@semantic-release/release-notes-generator', + '@semantic-release/changelog', + '@semantic-release/npm', + [ + '@semantic-release/github', + { + successComment: false, + failComment: false, + releasedLabels: false, + addReleases: 'bottom', + releaseNotes: { + changelogFile: 'CHANGELOG.md', + }, + }, + ], + [ + '@semantic-release/git', + { + assets: ['CHANGELOG.md', 'package.json'], + message: 'chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}', + }, + ], + ], +}; diff --git a/packages/capacitor-plugin/src/definitions.ts b/packages/capacitor-plugin/src/definitions.ts new file mode 100644 index 0000000..813ece0 --- /dev/null +++ b/packages/capacitor-plugin/src/definitions.ts @@ -0,0 +1,185 @@ +import { HttpOptions, PluginListenerHandle } from "@capacitor/core"; + +export interface DownloadFileOptions extends HttpOptions { + /** + * The full file path the downloaded file should be moved to. + * @since 1.0.0 + */ + path: string; + /** + * If true, progress event will be dispatched on every chunk received. + * See addListener() for more information. + * Chunks are throttled to every 100ms on Android/iOS to avoid slowdowns. + * @since 1.0.0 + */ + progress?: boolean; +} + +export interface DownloadFileResult { + /** + * The path the file was downloaded to. + * @since 1.0.0 + */ + path?: string; + /** + * The blob data of the downloaded file. + * This is only available on web. + * @since 1.0.0 + */ + blob?: Blob; +} + +export interface UploadFileOptions extends HttpOptions { + /** + * Full file path of the file to upload. + * @since 1.0.0 + */ + path: string; + /** + * Blob data to upload. Will use this instead of path if provided. + * This is only available on web. + * @since 1.0.0 + */ + blob?: Blob; + /** + * Whether to upload data in a chunked streaming mode. + * Not supported on web. + * @since 1.0.0 + */ + chunkedMode?: boolean; + /** + * Mime type of the data to upload. + * Only used if "Content-Type" header was not provided. + * @since 1.0.0 + */ + mimeType?: string; + /** + * Type of form element. The default is set to "file". + * Only used if "Content-Type" header was not provided. + * @since 1.0.0 + */ + fileKey?: string; + /** + * If true, progress event will be dispatched on every chunk received. + * See addListener() for more information. + * Chunks are throttled to every 100ms on Android/iOS to avoid slowdowns. + * @since 1.0.0 + */ + progress?: boolean; +} + +export interface UploadFileResult { + /** + * Total number of bytes uploaded + * @since 1.0.0 + */ + bytesSent: number; + /** + * HTTP response code for the upload + * @since 1.0.0 + */ + responseCode: string; + /** + * HTTP response body from the upload (when available) + * @since 1.0.0 + */ + response?: string; + /** + * HTTP headers from the upload response (when available) + * @since 1.0.0 + */ + headers?: { [key: string]: string }; +} + +export interface ProgressStatus { + /** + * The type of transfer operation (download or upload). + * @since 1.0.0 + */ + type: "download" | "upload"; + /** + * The url of the file associated with the transfer (download or upload). + * @since 1.0.0 + */ + url: string; + /** + * The number of bytes transferred so far. + * @since 1.0.0 + */ + bytes: number; + /** + * The total number of bytes associated with the file transfer. + * @since 1.0.0 + */ + contentLength: number; + /** + * Whether or not the contentLength value is relevant. + * In some situations, the total number of bytes may not be possible to determine. + * @since 1.0.0 + */ + lengthComputable: boolean; +} + +export interface FileTransferError { + /** + * Code identifying the error: OS-PLUG-FLTR-XXXX + * @since 1.0.0 + */ + code: string; + /** + * Message informing of what went wrong + * @since 1.0.0 + */ + message: string; + /** + * The source for the file transfer operation (a url for download, a file path for upload) + * @since 1.0.0 + */ + source?: string; + /** + * The target of the file transfer operation (a file path for download, a url for upload) + * @since 1.0.0 + */ + target?: string; + /** + * HTTP status code of the server response (if available) + * @since 1.0.0 + */ + httpStatus?: number; + /** + * HTTP error response body from the server (if available) + * @since 1.0.0 + */ + body?: string; + /** + * Exception message thrown on native side (if available) + * @since 1.0.0 + */ + exception?: string; +} + +export interface FileTransferPlugin { + /** + * Perform an HTTP request to a server and download the file to the specified destination. + * @since 1.0.0 + */ + downloadFile(options: DownloadFileOptions): Promise; + /** + * Perform an HTTP request to upload a file to a server + * @since 1.0.0 + */ + uploadFile(options: UploadFileOptions): Promise; + /** + * Add a listener to file transfer (download or upload) progress events. + * @since 1.0.0 + */ + addListener( + eventName: "progress", + listenerFunc: (progress: ProgressStatus) => void, + ): Promise; + /** + * Remove all listeners for this plugin. + * @since 1.0.0 + */ + removeAllListeners(): Promise; +} diff --git a/packages/capacitor-plugin/src/index.ts b/packages/capacitor-plugin/src/index.ts new file mode 100644 index 0000000..2ec34a7 --- /dev/null +++ b/packages/capacitor-plugin/src/index.ts @@ -0,0 +1,13 @@ +import { registerPlugin } from "@capacitor/core"; +import { exposeSynapse } from "@capacitor/synapse"; + +import type { FileTransferPlugin } from "./definitions"; + +const FileTransfer = registerPlugin("FileTransfer", { + web: () => import("./web").then((m) => new m.FileTransferWeb()), +}); + +exposeSynapse(); + +export * from "./definitions"; +export { FileTransfer }; diff --git a/packages/capacitor-plugin/src/web.ts b/packages/capacitor-plugin/src/web.ts new file mode 100644 index 0000000..1962d2f --- /dev/null +++ b/packages/capacitor-plugin/src/web.ts @@ -0,0 +1,540 @@ +import { WebPlugin } from "@capacitor/core"; +import type { + FileTransferPlugin, + DownloadFileOptions, + DownloadFileResult, + UploadFileOptions, + UploadFileResult, + ProgressStatus, + FileTransferError, +} from "./definitions"; + +// Type definitions for the Capacitor Filesystem API +interface FilesystemPlugin { + readFile(options: { path: string }): Promise<{ data: string }>; + writeFile(options: { + path: string; + data: string; + recursive?: boolean; + }): Promise; + mkdir(options: { path: string; recursive?: boolean }): Promise; +} + +// Extend Window interface to include Capacitor +declare global { + interface Window { + Capacitor?: { + Plugins?: { + Filesystem?: FilesystemPlugin; + }; + }; + } +} + +export class FileTransferWeb extends WebPlugin implements FileTransferPlugin { + private lastProgressUpdate = 0; + private readonly PROGRESS_UPDATE_INTERVAL = 100; // 100ms between progress updates + + async downloadFile( + options: DownloadFileOptions, + ): Promise { + try { + const url = this.buildUrl(options.url, options.params); + const headers = new Headers(options.headers); + + const requestOptions: RequestInit = { + method: options.method || "GET", + headers, + redirect: options.disableRedirects ? "manual" : "follow", + }; + + const controller = new AbortController(); + const timeout = options.connectTimeout || 60000; + const timeoutId = setTimeout(() => controller.abort(), timeout); + + let blob: Blob; + let totalBytes = 0; + + try { + const response = await fetch(url, { + ...requestOptions, + signal: controller.signal, + }); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + // Handle progress reporting during download if needed + if (options.progress && response.body) { + const reader = response.body.getReader(); + const contentLength = parseInt( + response.headers.get("content-length") || "0", + 10, + ); + const contentType = response.headers.get("content-type") || ""; + + let receivedLength = 0; + const chunks: Uint8Array[] = []; + + // Read the data stream + while (true) { + const { done, value } = await reader.read(); + + if (done) { + break; + } + + if (value) { + chunks.push(value); + receivedLength += value.length; + + this.notifyProgress( + options.url, + receivedLength, + contentLength, + contentLength > 0, + "download", + ); + } + } + + // Concatenate chunks into a single blob + const chunksAll = new Uint8Array(receivedLength); + let position = 0; + for (const chunk of chunks) { + chunksAll.set(chunk, position); + position += chunk.length; + } + + blob = new Blob([chunksAll], { type: contentType }); + totalBytes = receivedLength; + + // Send final progress update + if (options.progress) { + this.notifyProgress( + options.url, + totalBytes, + totalBytes, // Set content length equal to bytes for 100% + true, + "download", + true, // Force update + ); + } + } else { + // If progress not needed, just get the blob directly + blob = await response.blob(); + totalBytes = blob.size; + } + } finally { + clearTimeout(timeoutId); + } + + // If Filesystem plugin is available, try to write the file + const filesystemResult = await this.tryWriteToFilesystem( + blob, + options.path, + ); + if (filesystemResult) { + return { + path: options.path, + blob, + }; + } + + // Otherwise, trigger browser download + const blobUrl = URL.createObjectURL(blob); + + // Create a temporary anchor element + const a = document.createElement("a"); + a.href = blobUrl; + a.download = this.extractFilename(options.path, options.url); + + // Trigger the download + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + URL.revokeObjectURL(blobUrl); + + return { + blob, + path: options.path, + }; + } catch (error) { + throw this.handleError(error, options.url, options.path); + } + } + + async uploadFile(options: UploadFileOptions): Promise { + try { + let blob: Blob; + + if (options.blob) { + blob = options.blob; + } else { + // Try to read from path using Filesystem if available + const fileData = await this.tryReadFromFilesystem(options.path); + if (fileData) { + blob = fileData; + } else { + throw new Error( + "File upload from path is not supported in web without @capacitor/filesystem plugin. Please provide a blob instead.", + ); + } + } + + return new Promise((resolve, reject) => { + const xhr = new XMLHttpRequest(); + const url = this.buildUrl(options.url, options.params); + + // Set up progress tracking if enabled + if (options.progress) { + xhr.upload.onprogress = (event) => { + this.notifyProgress( + options.url, + event.loaded, + event.total, + event.lengthComputable, + "upload", + ); + }; + } + + xhr.onload = () => { + if (xhr.status >= 200 && xhr.status < 300) { + // Send final progress update to ensure 100% is shown + if (options.progress) { + this.notifyProgress( + options.url, + blob.size, // Total bytes + blob.size, // Same for content length to show 100% + true, + "upload", + true, // Force update + ); + } + + const headers: { [key: string]: string } = {}; + xhr + .getAllResponseHeaders() + .split("\r\n") + .forEach((header) => { + const [key, value] = header.split(": "); + if (key && value) { + headers[key] = value; + } + }); + + resolve({ + bytesSent: blob.size, + responseCode: xhr.status.toString(), + response: xhr.responseText, + headers, + }); + } else { + reject(new Error(`HTTP error! status: ${xhr.status}`)); + } + }; + + xhr.onerror = () => { + reject(new Error("Network error occurred")); + }; + + xhr.open(options.method || "POST", url, true); + + // Set headers + if (options.headers) { + Object.entries(options.headers).forEach(([key, value]) => { + xhr.setRequestHeader(key, value); + }); + } + + // Create FormData and append file + const formData = new FormData(); + const fileKey = options.fileKey || "file"; + formData.append(fileKey, blob, options.path); + + // Add any additional parameters + if (options.params) { + Object.entries(options.params).forEach(([key, value]) => { + if (Array.isArray(value)) { + value.forEach((v) => formData.append(key, v)); + } else { + formData.append(key, value); + } + }); + } + + // Send the request + xhr.send(formData); + }); + } catch (error) { + throw this.handleError(error, options.path, options.url); + } + } + + private buildUrl( + baseUrl: string, + params?: { [key: string]: string | string[] }, + ): string { + if (!params || Object.keys(params).length === 0) { + return baseUrl; + } + + const url = new URL(baseUrl); + Object.entries(params).forEach(([key, value]) => { + if (Array.isArray(value)) { + value.forEach((v) => url.searchParams.append(key, v)); + } else { + url.searchParams.append(key, value); + } + }); + + return url.toString(); + } + + private notifyProgress( + url: string, + bytes: number, + contentLength: number, + lengthComputable: boolean, + type: "download" | "upload", + forceUpdate: boolean = false, + ) { + const currentTime = Date.now(); + if ( + forceUpdate || + currentTime - this.lastProgressUpdate >= this.PROGRESS_UPDATE_INTERVAL + ) { + const progressData: ProgressStatus = { + type, + url, + bytes, + contentLength, + lengthComputable, + }; + + this.notifyListeners("progress", progressData); + this.lastProgressUpdate = currentTime; + } + } + + private handleError( + error: any, + source: string, + target: string, + ): FileTransferError { + if (error instanceof TypeError && error.message === "Failed to fetch") { + return { + code: "OS-PLUG-FLTR-0008", + message: "Failed to connect to server", + source, + target, + }; + } + + if (error instanceof Error) { + return { + code: "OS-PLUG-FLTR-0011", + message: error.message, + source, + target, + }; + } + + return { + code: "OS-PLUG-FLTR-0011", + message: "An unknown error occurred", + source, + target, + }; + } + + private extractFilename(path: string, url: string): string { + // Remove any query parameters or hash fragments + const cleanPath = path.split("?")[0].split("#")[0]; + + // Get the last part of the path + const parts = cleanPath.split(/[/\\]/); + let filename = parts[parts.length - 1]; + + // If the filename doesn't have an extension, try to get it from the URL + if (!filename.includes(".")) { + const urlParts = url.split("."); + if (urlParts.length > 1) { + const extension = urlParts[urlParts.length - 1].split("?")[0]; + const filenameWithoutExtension = urlParts[urlParts.length - 2] + .split("/") + .pop(); + + filename = `${filenameWithoutExtension}.${extension}`; + } + } + + // If no filename found or it's empty, use a default + if (!filename) { + filename = "download"; + } + + return filename; + } + + /** + * Checks if the Capacitor Filesystem plugin is available + */ + private isFilesystemAvailable(): boolean { + try { + return !!(globalThis as any)?.Capacitor?.Plugins?.Filesystem; + } catch (e) { + return false; + } + } + + /** + * Attempts to read a file using the Filesystem plugin if available + * @param path Path to the file + * @returns Blob with file contents or null if Filesystem plugin is not available + */ + private async tryReadFromFilesystem(path: string): Promise { + if (!this.isFilesystemAvailable()) { + return null; + } + + try { + // Read the file data as base64 + const filesystem = window.Capacitor?.Plugins?.Filesystem; + if (!filesystem) { + return null; + } + + const result = await filesystem.readFile({ + path: path, + }); + + // Convert base64 to Blob + const base64Data = result.data; + if (!base64Data) { + throw new Error("No data returned from Filesystem plugin"); + } + + // Determine MIME type from file extension or use a default + const mimeType = + this.getMimeTypeFromPath(path) || "application/octet-stream"; + + // Convert base64 to Blob + const byteCharacters = atob(base64Data); + const byteArrays = []; + for (let offset = 0; offset < byteCharacters.length; offset += 512) { + const slice = byteCharacters.slice(offset, offset + 512); + const byteNumbers = new Array(slice.length); + for (let i = 0; i < slice.length; i++) { + byteNumbers[i] = slice.charCodeAt(i); + } + const byteArray = new Uint8Array(byteNumbers); + byteArrays.push(byteArray); + } + return new Blob(byteArrays, { type: mimeType }); + } catch (error) { + console.error("Error reading file from Filesystem:", error); + return null; + } + } + + /** + * Attempts to write a blob to a file using the Filesystem plugin if available + * @param blob Blob data to write + * @param path Path to write the file to + * @returns true if the file was written successfully, false if Filesystem plugin is not available + */ + private async tryWriteToFilesystem( + blob: Blob, + path: string, + ): Promise { + if (!this.isFilesystemAvailable()) { + return false; + } + + try { + const filesystem = window.Capacitor?.Plugins?.Filesystem; + if (!filesystem) { + return false; + } + + const base64Data = await this.blobToBase64(blob); + if (!base64Data) { + throw new Error("Failed to convert blob to base64"); + } + + // Create any parent directories needed + const pathParts = path.split("/"); + if (pathParts.length > 1) { + const directory = pathParts.slice(0, -1).join("/"); + await filesystem.mkdir({ + path: directory, + recursive: true, + }); + } + + // Write the file + await filesystem.writeFile({ + path: path, + data: base64Data.split(",")[1], // Remove the data:application/octet-stream;base64, part + recursive: true, + }); + + return true; + } catch (error) { + console.error("Error writing file to Filesystem:", error); + return false; + } + } + + /** + * Converts a Blob to a base64 string + * @param blob The blob to convert + * @returns Promise that resolves to the base64 string + */ + private blobToBase64(blob: Blob): Promise { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = () => resolve(reader.result as string); + reader.onerror = () => + reject(new Error("Failed to convert blob to base64")); + reader.readAsDataURL(blob); + }); + } + + /** + * Gets MIME type from file path based on extension + * @param path File path + * @returns MIME type string or null if unable to determine + */ + private getMimeTypeFromPath(path: string): string | null { + const extension = path.split(".").pop()?.toLowerCase(); + if (!extension) return null; + + const mimeTypes: Record = { + jpg: "image/jpeg", + jpeg: "image/jpeg", + png: "image/png", + gif: "image/gif", + pdf: "application/pdf", + txt: "text/plain", + html: "text/html", + htm: "text/html", + json: "application/json", + doc: "application/msword", + docx: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + xls: "application/vnd.ms-excel", + xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + zip: "application/zip", + mp3: "audio/mpeg", + mp4: "video/mp4", + wav: "audio/wav", + xml: "application/xml", + csv: "text/csv", + }; + + return mimeTypes[extension] || null; + } +} diff --git a/packages/capacitor-plugin/tsconfig.json b/packages/capacitor-plugin/tsconfig.json new file mode 100644 index 0000000..3cb3e91 --- /dev/null +++ b/packages/capacitor-plugin/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "allowUnreachableCode": false, + "noFallthroughCasesInSwitch": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "pretty": true, + "strict": true, + "esModuleInterop": true, + "lib": ["dom", "es2020"], + "module": "esnext", + "moduleResolution": "node", + "target": "es2017" + }, + "files": [ + "src/index.ts" + ], + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/packages/capacitor-plugin/vite.config.ts b/packages/capacitor-plugin/vite.config.ts new file mode 100644 index 0000000..9e12e43 --- /dev/null +++ b/packages/capacitor-plugin/vite.config.ts @@ -0,0 +1,24 @@ +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; + +export default defineConfig({ + plugins: [dts()], + build: { + outDir: 'dist', + target: 'es2020', + lib: { + entry: './src/index.ts', + name: 'CapacitorFileTransfer', + fileName: (format) => `plugin.${format === 'es' ? 'mjs' : format === 'cjs' ? 'cjs' : 'js'}`, + formats: ['es', 'cjs', 'umd'], + }, + rollupOptions: { + external: ['@capacitor/core'], + output: { + globals: { + '@capacitor/core': 'capacitorExports', + }, + }, + }, + }, +}); diff --git a/packages/example-app/.gitignore b/packages/example-app/.gitignore new file mode 100644 index 0000000..1818ee6 --- /dev/null +++ b/packages/example-app/.gitignore @@ -0,0 +1,7 @@ +.idea/ +node_modules/ +.vscode/ +*.map +.DS_Store +.sourcemaps +dist/ diff --git a/packages/example-app/README.md b/packages/example-app/README.md new file mode 100644 index 0000000..486ed63 --- /dev/null +++ b/packages/example-app/README.md @@ -0,0 +1,12 @@ +## Created with Capacitor Create App + +This app was created using [`@capacitor/create-app`](https://github.com/ionic-team/create-capacitor-app), +and comes with a very minimal shell for building an app. + +### Running this example + +To run the provided example, you can use `npm start` command. + +```bash +npm start +``` diff --git a/packages/example-app/android/.gitignore b/packages/example-app/android/.gitignore new file mode 100644 index 0000000..48354a3 --- /dev/null +++ b/packages/example-app/android/.gitignore @@ -0,0 +1,101 @@ +# Using Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore + +# Built application files +*.apk +*.aar +*.ap_ +*.aab + +# Files for the ART/Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ +out/ +# Uncomment the following line in case you need and you don't have the release build type files in your app +# release/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# IntelliJ +*.iml +.idea/workspace.xml +.idea/tasks.xml +.idea/gradle.xml +.idea/assetWizardSettings.xml +.idea/dictionaries +.idea/libraries +# Android Studio 3 in .gitignore file. +.idea/caches +.idea/modules.xml +# Comment next line if keeping position of elements in Navigation Editor is relevant for you +.idea/navEditor.xml + +# Keystore files +# Uncomment the following lines if you do not want to check your keystore files in. +#*.jks +#*.keystore + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild +.cxx/ + +# Google Services (e.g. APIs or Firebase) +# google-services.json + +# Freeline +freeline.py +freeline/ +freeline_project_description.json + +# fastlane +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots +fastlane/test_output +fastlane/readme.md + +# Version control +vcs.xml + +# lint +lint/intermediates/ +lint/generated/ +lint/outputs/ +lint/tmp/ +# lint/reports/ + +# Android Profiling +*.hprof + +# Cordova plugins for Capacitor +capacitor-cordova-android-plugins + +# Copied web assets +app/src/main/assets/public + +# Generated Config files +app/src/main/assets/capacitor.config.json +app/src/main/assets/capacitor.plugins.json +app/src/main/res/xml/config.xml diff --git a/packages/example-app/android/app/.gitignore b/packages/example-app/android/app/.gitignore new file mode 100644 index 0000000..043df80 --- /dev/null +++ b/packages/example-app/android/app/.gitignore @@ -0,0 +1,2 @@ +/build/* +!/build/.npmkeep diff --git a/packages/example-app/android/app/build.gradle b/packages/example-app/android/app/build.gradle new file mode 100644 index 0000000..4d1354d --- /dev/null +++ b/packages/example-app/android/app/build.gradle @@ -0,0 +1,54 @@ +apply plugin: 'com.android.application' + +android { + namespace "com.example.plugin" + compileSdk rootProject.ext.compileSdkVersion + defaultConfig { + applicationId "com.example.plugin" + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + aaptOptions { + // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. + // Default: https://android.googlesource.com/platform/frameworks/base/+/282e181b58cf72b6ca770dc7ca5f91f135444502/tools/aapt/AaptAssets.cpp#61 + ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~' + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +repositories { + flatDir{ + dirs '../capacitor-cordova-android-plugins/src/main/libs', 'libs' + } +} + +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion" + implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion" + implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion" + implementation project(':capacitor-android') + testImplementation "junit:junit:$junitVersion" + androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion" + androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion" + implementation project(':capacitor-cordova-android-plugins') +} + +apply from: 'capacitor.build.gradle' + +try { + def servicesJSON = file('google-services.json') + if (servicesJSON.text) { + apply plugin: 'com.google.gms.google-services' + } +} catch(Exception e) { + logger.info("google-services.json not found, google-services plugin not applied. Push Notifications won't work") +} diff --git a/packages/example-app/android/app/capacitor.build.gradle b/packages/example-app/android/app/capacitor.build.gradle new file mode 100644 index 0000000..5a8b890 --- /dev/null +++ b/packages/example-app/android/app/capacitor.build.gradle @@ -0,0 +1,21 @@ +// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN + +android { + compileOptions { + sourceCompatibility JavaVersion.VERSION_21 + targetCompatibility JavaVersion.VERSION_21 + } +} + +apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" +dependencies { + implementation project(':capacitor-file-transfer') + implementation project(':capacitor-file-viewer') + implementation project(':capacitor-filesystem') + +} + + +if (hasProperty('postBuildExtras')) { + postBuildExtras() +} diff --git a/packages/example-app/android/app/proguard-rules.pro b/packages/example-app/android/app/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/packages/example-app/android/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/packages/example-app/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java b/packages/example-app/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java new file mode 100644 index 0000000..f2c2217 --- /dev/null +++ b/packages/example-app/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.getcapacitor.myapp; + +import static org.junit.Assert.*; + +import android.content.Context; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.platform.app.InstrumentationRegistry; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + + assertEquals("com.getcapacitor.app", appContext.getPackageName()); + } +} diff --git a/packages/example-app/android/app/src/main/AndroidManifest.xml b/packages/example-app/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..340e7df --- /dev/null +++ b/packages/example-app/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/example-app/android/app/src/main/java/com/example/plugin/MainActivity.java b/packages/example-app/android/app/src/main/java/com/example/plugin/MainActivity.java new file mode 100644 index 0000000..9aa7b47 --- /dev/null +++ b/packages/example-app/android/app/src/main/java/com/example/plugin/MainActivity.java @@ -0,0 +1,5 @@ +package com.example.plugin; + +import com.getcapacitor.BridgeActivity; + +public class MainActivity extends BridgeActivity {} diff --git a/packages/example-app/android/app/src/main/res/drawable-land-hdpi/splash.png b/packages/example-app/android/app/src/main/res/drawable-land-hdpi/splash.png new file mode 100644 index 0000000..e31573b Binary files /dev/null and b/packages/example-app/android/app/src/main/res/drawable-land-hdpi/splash.png differ diff --git a/packages/example-app/android/app/src/main/res/drawable-land-mdpi/splash.png b/packages/example-app/android/app/src/main/res/drawable-land-mdpi/splash.png new file mode 100644 index 0000000..f7a6492 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/drawable-land-mdpi/splash.png differ diff --git a/packages/example-app/android/app/src/main/res/drawable-land-xhdpi/splash.png b/packages/example-app/android/app/src/main/res/drawable-land-xhdpi/splash.png new file mode 100644 index 0000000..8077255 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/drawable-land-xhdpi/splash.png differ diff --git a/packages/example-app/android/app/src/main/res/drawable-land-xxhdpi/splash.png b/packages/example-app/android/app/src/main/res/drawable-land-xxhdpi/splash.png new file mode 100644 index 0000000..14c6c8f Binary files /dev/null and b/packages/example-app/android/app/src/main/res/drawable-land-xxhdpi/splash.png differ diff --git a/packages/example-app/android/app/src/main/res/drawable-land-xxxhdpi/splash.png b/packages/example-app/android/app/src/main/res/drawable-land-xxxhdpi/splash.png new file mode 100644 index 0000000..244ca25 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/drawable-land-xxxhdpi/splash.png differ diff --git a/packages/example-app/android/app/src/main/res/drawable-port-hdpi/splash.png b/packages/example-app/android/app/src/main/res/drawable-port-hdpi/splash.png new file mode 100644 index 0000000..74faaa5 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/drawable-port-hdpi/splash.png differ diff --git a/packages/example-app/android/app/src/main/res/drawable-port-mdpi/splash.png b/packages/example-app/android/app/src/main/res/drawable-port-mdpi/splash.png new file mode 100644 index 0000000..e944f4a Binary files /dev/null and b/packages/example-app/android/app/src/main/res/drawable-port-mdpi/splash.png differ diff --git a/packages/example-app/android/app/src/main/res/drawable-port-xhdpi/splash.png b/packages/example-app/android/app/src/main/res/drawable-port-xhdpi/splash.png new file mode 100644 index 0000000..564a82f Binary files /dev/null and b/packages/example-app/android/app/src/main/res/drawable-port-xhdpi/splash.png differ diff --git a/packages/example-app/android/app/src/main/res/drawable-port-xxhdpi/splash.png b/packages/example-app/android/app/src/main/res/drawable-port-xxhdpi/splash.png new file mode 100644 index 0000000..bfabe68 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/drawable-port-xxhdpi/splash.png differ diff --git a/packages/example-app/android/app/src/main/res/drawable-port-xxxhdpi/splash.png b/packages/example-app/android/app/src/main/res/drawable-port-xxxhdpi/splash.png new file mode 100644 index 0000000..6929071 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/drawable-port-xxxhdpi/splash.png differ diff --git a/packages/example-app/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/packages/example-app/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..c7bd21d --- /dev/null +++ b/packages/example-app/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/packages/example-app/android/app/src/main/res/drawable/ic_launcher_background.xml b/packages/example-app/android/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..d5fccc5 --- /dev/null +++ b/packages/example-app/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/example-app/android/app/src/main/res/drawable/splash.png b/packages/example-app/android/app/src/main/res/drawable/splash.png new file mode 100644 index 0000000..f7a6492 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/drawable/splash.png differ diff --git a/packages/example-app/android/app/src/main/res/layout/activity_main.xml b/packages/example-app/android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..b5ad138 --- /dev/null +++ b/packages/example-app/android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,12 @@ + + + + + diff --git a/packages/example-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/packages/example-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..036d09b --- /dev/null +++ b/packages/example-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/packages/example-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/packages/example-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..036d09b --- /dev/null +++ b/packages/example-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/packages/example-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/example-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..c023e50 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/packages/example-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/packages/example-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..2127973 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/packages/example-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/packages/example-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..b441f37 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/packages/example-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/example-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..72905b8 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/packages/example-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/packages/example-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..8ed0605 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/packages/example-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/packages/example-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..9502e47 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/packages/example-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/packages/example-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..4d1e077 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/packages/example-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/packages/example-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..df0f158 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/packages/example-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/packages/example-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..853db04 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/packages/example-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/example-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..6cdf97c Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/packages/example-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/packages/example-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..2960cbb Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/packages/example-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/packages/example-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..8e3093a Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/packages/example-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/example-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..46de6e2 Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/packages/example-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/packages/example-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..d2ea9ab Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/packages/example-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/packages/example-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..a40d73e Binary files /dev/null and b/packages/example-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/packages/example-app/android/app/src/main/res/values/ic_launcher_background.xml b/packages/example-app/android/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..c5d5899 --- /dev/null +++ b/packages/example-app/android/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/packages/example-app/android/app/src/main/res/values/strings.xml b/packages/example-app/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..59ba8ea --- /dev/null +++ b/packages/example-app/android/app/src/main/res/values/strings.xml @@ -0,0 +1,7 @@ + + + example-app + example-app + com.example.plugin + com.example.plugin + diff --git a/packages/example-app/android/app/src/main/res/values/styles.xml b/packages/example-app/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..be874e5 --- /dev/null +++ b/packages/example-app/android/app/src/main/res/values/styles.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/packages/example-app/android/app/src/main/res/xml/file_paths.xml b/packages/example-app/android/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..bd0c4d8 --- /dev/null +++ b/packages/example-app/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/packages/example-app/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java b/packages/example-app/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java new file mode 100644 index 0000000..0297327 --- /dev/null +++ b/packages/example-app/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java @@ -0,0 +1,18 @@ +package com.getcapacitor.myapp; + +import static org.junit.Assert.*; + +import org.junit.Test; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + + @Test + public void addition_isCorrect() throws Exception { + assertEquals(4, 2 + 2); + } +} diff --git a/packages/example-app/android/build.gradle b/packages/example-app/android/build.gradle new file mode 100644 index 0000000..f1b3b0e --- /dev/null +++ b/packages/example-app/android/build.gradle @@ -0,0 +1,29 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + + repositories { + google() + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:8.7.2' + classpath 'com.google.gms:google-services:4.4.2' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +apply from: "variables.gradle" + +allprojects { + repositories { + google() + mavenCentral() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/packages/example-app/android/capacitor.settings.gradle b/packages/example-app/android/capacitor.settings.gradle new file mode 100644 index 0000000..7637075 --- /dev/null +++ b/packages/example-app/android/capacitor.settings.gradle @@ -0,0 +1,12 @@ +// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN +include ':capacitor-android' +project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor') + +include ':capacitor-file-transfer' +project(':capacitor-file-transfer').projectDir = new File('../node_modules/@capacitor/file-transfer/android') + +include ':capacitor-file-viewer' +project(':capacitor-file-viewer').projectDir = new File('../node_modules/@capacitor/file-viewer/android') + +include ':capacitor-filesystem' +project(':capacitor-filesystem').projectDir = new File('../node_modules/@capacitor/filesystem/android') diff --git a/packages/example-app/android/gradle.properties b/packages/example-app/android/gradle.properties new file mode 100644 index 0000000..2e87c52 --- /dev/null +++ b/packages/example-app/android/gradle.properties @@ -0,0 +1,22 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true diff --git a/packages/example-app/android/gradle/wrapper/gradle-wrapper.jar b/packages/example-app/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..a4b76b9 Binary files /dev/null and b/packages/example-app/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/packages/example-app/android/gradle/wrapper/gradle-wrapper.properties b/packages/example-app/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c1d5e01 --- /dev/null +++ b/packages/example-app/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/packages/example-app/android/gradlew b/packages/example-app/android/gradlew new file mode 100755 index 0000000..f5feea6 --- /dev/null +++ b/packages/example-app/android/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# 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 +# +# https://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. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/packages/example-app/android/gradlew.bat b/packages/example-app/android/gradlew.bat new file mode 100644 index 0000000..9b42019 --- /dev/null +++ b/packages/example-app/android/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/packages/example-app/android/settings.gradle b/packages/example-app/android/settings.gradle new file mode 100644 index 0000000..3b4431d --- /dev/null +++ b/packages/example-app/android/settings.gradle @@ -0,0 +1,5 @@ +include ':app' +include ':capacitor-cordova-android-plugins' +project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/') + +apply from: 'capacitor.settings.gradle' \ No newline at end of file diff --git a/packages/example-app/android/variables.gradle b/packages/example-app/android/variables.gradle new file mode 100644 index 0000000..2c8e408 --- /dev/null +++ b/packages/example-app/android/variables.gradle @@ -0,0 +1,16 @@ +ext { + minSdkVersion = 23 + compileSdkVersion = 35 + targetSdkVersion = 35 + androidxActivityVersion = '1.9.2' + androidxAppCompatVersion = '1.7.0' + androidxCoordinatorLayoutVersion = '1.2.0' + androidxCoreVersion = '1.15.0' + androidxFragmentVersion = '1.8.4' + coreSplashScreenVersion = '1.0.1' + androidxWebkitVersion = '1.12.1' + junitVersion = '4.13.2' + androidxJunitVersion = '1.2.1' + androidxEspressoCoreVersion = '3.6.1' + cordovaAndroidVersion = '10.1.1' +} \ No newline at end of file diff --git a/packages/example-app/capacitor.config.json b/packages/example-app/capacitor.config.json new file mode 100644 index 0000000..ece0191 --- /dev/null +++ b/packages/example-app/capacitor.config.json @@ -0,0 +1,10 @@ +{ + "appId": "com.capacitorjs.exampleapp.plugins.filetransfer", + "appName": "CAP-FLTR Sample", + "webDir": "dist", + "plugins": { + "SplashScreen": { + "launchAutoHide": false + } + } +} \ No newline at end of file diff --git a/packages/example-app/ios/.gitignore b/packages/example-app/ios/.gitignore new file mode 100644 index 0000000..f470299 --- /dev/null +++ b/packages/example-app/ios/.gitignore @@ -0,0 +1,13 @@ +App/build +App/Pods +App/output +App/App/public +DerivedData +xcuserdata + +# Cordova plugins for Capacitor +capacitor-cordova-ios-plugins + +# Generated Config files +App/App/capacitor.config.json +App/App/config.xml diff --git a/packages/example-app/ios/App/App.xcodeproj/project.pbxproj b/packages/example-app/ios/App/App.xcodeproj/project.pbxproj new file mode 100644 index 0000000..97fa817 --- /dev/null +++ b/packages/example-app/ios/App/App.xcodeproj/project.pbxproj @@ -0,0 +1,408 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 48; + objects = { + +/* Begin PBXBuildFile section */ + 2FAD9763203C412B000D30F8 /* config.xml in Resources */ = {isa = PBXBuildFile; fileRef = 2FAD9762203C412B000D30F8 /* config.xml */; }; + 50379B232058CBB4000EE86E /* capacitor.config.json in Resources */ = {isa = PBXBuildFile; fileRef = 50379B222058CBB4000EE86E /* capacitor.config.json */; }; + 504EC3081FED79650016851F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504EC3071FED79650016851F /* AppDelegate.swift */; }; + 504EC30D1FED79650016851F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 504EC30B1FED79650016851F /* Main.storyboard */; }; + 504EC30F1FED79650016851F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 504EC30E1FED79650016851F /* Assets.xcassets */; }; + 504EC3121FED79650016851F /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 504EC3101FED79650016851F /* LaunchScreen.storyboard */; }; + 50B271D11FEDC1A000F3C39B /* public in Resources */ = {isa = PBXBuildFile; fileRef = 50B271D01FEDC1A000F3C39B /* public */; }; + A084ECDBA7D38E1E42DFC39D /* Pods_App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF277DCFFFF123FFC6DF26C7 /* Pods_App.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 2FAD9762203C412B000D30F8 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = config.xml; sourceTree = ""; }; + 50379B222058CBB4000EE86E /* capacitor.config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = capacitor.config.json; sourceTree = ""; }; + 504EC3041FED79650016851F /* App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 504EC3071FED79650016851F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 504EC30C1FED79650016851F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 504EC30E1FED79650016851F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 504EC3111FED79650016851F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 504EC3131FED79650016851F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 50B271D01FEDC1A000F3C39B /* public */ = {isa = PBXFileReference; lastKnownFileType = folder; path = public; sourceTree = ""; }; + AF277DCFFFF123FFC6DF26C7 /* Pods_App.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_App.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AF51FD2D460BCFE21FA515B2 /* Pods-App.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App.release.xcconfig"; path = "Pods/Target Support Files/Pods-App/Pods-App.release.xcconfig"; sourceTree = ""; }; + FC68EB0AF532CFC21C3344DD /* Pods-App.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App.debug.xcconfig"; path = "Pods/Target Support Files/Pods-App/Pods-App.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 504EC3011FED79650016851F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A084ECDBA7D38E1E42DFC39D /* Pods_App.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 27E2DDA53C4D2A4D1A88CE4A /* Frameworks */ = { + isa = PBXGroup; + children = ( + AF277DCFFFF123FFC6DF26C7 /* Pods_App.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 504EC2FB1FED79650016851F = { + isa = PBXGroup; + children = ( + 504EC3061FED79650016851F /* App */, + 504EC3051FED79650016851F /* Products */, + 7F8756D8B27F46E3366F6CEA /* Pods */, + 27E2DDA53C4D2A4D1A88CE4A /* Frameworks */, + ); + sourceTree = ""; + }; + 504EC3051FED79650016851F /* Products */ = { + isa = PBXGroup; + children = ( + 504EC3041FED79650016851F /* App.app */, + ); + name = Products; + sourceTree = ""; + }; + 504EC3061FED79650016851F /* App */ = { + isa = PBXGroup; + children = ( + 50379B222058CBB4000EE86E /* capacitor.config.json */, + 504EC3071FED79650016851F /* AppDelegate.swift */, + 504EC30B1FED79650016851F /* Main.storyboard */, + 504EC30E1FED79650016851F /* Assets.xcassets */, + 504EC3101FED79650016851F /* LaunchScreen.storyboard */, + 504EC3131FED79650016851F /* Info.plist */, + 2FAD9762203C412B000D30F8 /* config.xml */, + 50B271D01FEDC1A000F3C39B /* public */, + ); + path = App; + sourceTree = ""; + }; + 7F8756D8B27F46E3366F6CEA /* Pods */ = { + isa = PBXGroup; + children = ( + FC68EB0AF532CFC21C3344DD /* Pods-App.debug.xcconfig */, + AF51FD2D460BCFE21FA515B2 /* Pods-App.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 504EC3031FED79650016851F /* App */ = { + isa = PBXNativeTarget; + buildConfigurationList = 504EC3161FED79650016851F /* Build configuration list for PBXNativeTarget "App" */; + buildPhases = ( + 6634F4EFEBD30273BCE97C65 /* [CP] Check Pods Manifest.lock */, + 504EC3001FED79650016851F /* Sources */, + 504EC3011FED79650016851F /* Frameworks */, + 504EC3021FED79650016851F /* Resources */, + 9592DBEFFC6D2A0C8D5DEB22 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = App; + productName = App; + productReference = 504EC3041FED79650016851F /* App.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 504EC2FC1FED79650016851F /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 0920; + TargetAttributes = { + 504EC3031FED79650016851F = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 504EC2FF1FED79650016851F /* Build configuration list for PBXProject "App" */; + compatibilityVersion = "Xcode 8.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 504EC2FB1FED79650016851F; + packageReferences = ( + ); + productRefGroup = 504EC3051FED79650016851F /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 504EC3031FED79650016851F /* App */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 504EC3021FED79650016851F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 504EC3121FED79650016851F /* LaunchScreen.storyboard in Resources */, + 50B271D11FEDC1A000F3C39B /* public in Resources */, + 504EC30F1FED79650016851F /* Assets.xcassets in Resources */, + 50379B232058CBB4000EE86E /* capacitor.config.json in Resources */, + 504EC30D1FED79650016851F /* Main.storyboard in Resources */, + 2FAD9763203C412B000D30F8 /* config.xml in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 6634F4EFEBD30273BCE97C65 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-App-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 9592DBEFFC6D2A0C8D5DEB22 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-App/Pods-App-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 504EC3001FED79650016851F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 504EC3081FED79650016851F /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 504EC30B1FED79650016851F /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 504EC30C1FED79650016851F /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 504EC3101FED79650016851F /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 504EC3111FED79650016851F /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 504EC3141FED79650016851F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 504EC3151FED79650016851F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 504EC3171FED79650016851F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FC68EB0AF532CFC21C3344DD /* Pods-App.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = App/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MARKETING_VERSION = 1.0; + OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\""; + PRODUCT_BUNDLE_IDENTIFIER = com.example.plugin; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 504EC3181FED79650016851F /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AF51FD2D460BCFE21FA515B2 /* Pods-App.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = App/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.plugin; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 504EC2FF1FED79650016851F /* Build configuration list for PBXProject "App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 504EC3141FED79650016851F /* Debug */, + 504EC3151FED79650016851F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 504EC3161FED79650016851F /* Build configuration list for PBXNativeTarget "App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 504EC3171FED79650016851F /* Debug */, + 504EC3181FED79650016851F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 504EC2FC1FED79650016851F /* Project object */; +} diff --git a/packages/example-app/ios/App/App.xcworkspace/contents.xcworkspacedata b/packages/example-app/ios/App/App.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..b301e82 --- /dev/null +++ b/packages/example-app/ios/App/App.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/packages/example-app/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/example-app/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/packages/example-app/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/example-app/ios/App/App/AppDelegate.swift b/packages/example-app/ios/App/App/AppDelegate.swift new file mode 100644 index 0000000..c3cd83b --- /dev/null +++ b/packages/example-app/ios/App/App/AppDelegate.swift @@ -0,0 +1,49 @@ +import UIKit +import Capacitor + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + func applicationWillResignActive(_ application: UIApplication) { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. + } + + func applicationDidEnterBackground(_ application: UIApplication) { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. + } + + func applicationWillEnterForeground(_ application: UIApplication) { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. + } + + func applicationDidBecomeActive(_ application: UIApplication) { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + } + + func applicationWillTerminate(_ application: UIApplication) { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. + } + + func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { + // Called when the app was launched with a url. Feel free to add additional processing here, + // but if you want the App API to support tracking app url opens, make sure to keep this call + return ApplicationDelegateProxy.shared.application(app, open: url, options: options) + } + + func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { + // Called when the app was launched with an activity, including Universal Links. + // Feel free to add additional processing here, but if you want the App API to support + // tracking app url opens, make sure to keep this call + return ApplicationDelegateProxy.shared.application(application, continue: userActivity, restorationHandler: restorationHandler) + } + +} diff --git a/packages/example-app/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png b/packages/example-app/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png new file mode 100644 index 0000000..adf6ba0 Binary files /dev/null and b/packages/example-app/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png differ diff --git a/packages/example-app/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/example-app/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..9b7d382 --- /dev/null +++ b/packages/example-app/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "AppIcon-512@2x.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/packages/example-app/ios/App/App/Assets.xcassets/Contents.json b/packages/example-app/ios/App/App/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/packages/example-app/ios/App/App/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/packages/example-app/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json b/packages/example-app/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json new file mode 100644 index 0000000..d7d96a6 --- /dev/null +++ b/packages/example-app/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "splash-2732x2732-2.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "splash-2732x2732-1.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "splash-2732x2732.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/packages/example-app/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png b/packages/example-app/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png new file mode 100644 index 0000000..33ea6c9 Binary files /dev/null and b/packages/example-app/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png differ diff --git a/packages/example-app/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png b/packages/example-app/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png new file mode 100644 index 0000000..33ea6c9 Binary files /dev/null and b/packages/example-app/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png differ diff --git a/packages/example-app/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png b/packages/example-app/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png new file mode 100644 index 0000000..33ea6c9 Binary files /dev/null and b/packages/example-app/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png differ diff --git a/packages/example-app/ios/App/App/Base.lproj/LaunchScreen.storyboard b/packages/example-app/ios/App/App/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..e7ae5d7 --- /dev/null +++ b/packages/example-app/ios/App/App/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/example-app/ios/App/App/Base.lproj/Main.storyboard b/packages/example-app/ios/App/App/Base.lproj/Main.storyboard new file mode 100644 index 0000000..b44df7b --- /dev/null +++ b/packages/example-app/ios/App/App/Base.lproj/Main.storyboard @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/packages/example-app/ios/App/App/Info.plist b/packages/example-app/ios/App/App/Info.plist new file mode 100644 index 0000000..cf1affd --- /dev/null +++ b/packages/example-app/ios/App/App/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + example-app + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/packages/example-app/ios/App/Podfile b/packages/example-app/ios/App/Podfile new file mode 100644 index 0000000..c244526 --- /dev/null +++ b/packages/example-app/ios/App/Podfile @@ -0,0 +1,26 @@ +require_relative '../../node_modules/@capacitor/ios/scripts/pods_helpers' + +platform :ios, '14.0' +use_frameworks! + +# workaround to avoid Xcode caching of Pods that requires +# Product -> Clean Build Folder after new Cordova plugins installed +# Requires CocoaPods 1.6 or newer +install! 'cocoapods', :disable_input_output_paths => true + +def capacitor_pods + pod 'Capacitor', :path => '../../node_modules/@capacitor/ios' + pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios' + pod 'CapacitorFileTransfer', :path => '../../../capacitor-plugin' + pod 'CapacitorFileViewer', :path => '../../node_modules/@capacitor/file-viewer' + pod 'CapacitorFilesystem', :path => '../../node_modules/@capacitor/filesystem' +end + +target 'App' do + capacitor_pods + # Add your Pods here +end + +post_install do |installer| + assertDeploymentTarget(installer) +end diff --git a/packages/example-app/ios/App/Podfile.lock b/packages/example-app/ios/App/Podfile.lock new file mode 100644 index 0000000..d8024a2 --- /dev/null +++ b/packages/example-app/ios/App/Podfile.lock @@ -0,0 +1,47 @@ +PODS: + - Capacitor (7.0.0): + - CapacitorCordova + - CapacitorCordova (7.0.0) + - CapacitorFilesystem (7.0.1): + - Capacitor + - CapacitorFileTransfer (0.0.1): + - Capacitor + - CapacitorFileViewer (1.0.0): + - Capacitor + - IONFileViewerLib (~> 1.0) + - IONFileViewerLib (1.0.0) + +DEPENDENCIES: + - "Capacitor (from `../../node_modules/@capacitor/ios`)" + - "CapacitorCordova (from `../../node_modules/@capacitor/ios`)" + - "CapacitorFilesystem (from `../../node_modules/@capacitor/filesystem`)" + - CapacitorFileTransfer (from `../../../capacitor-plugin`) + - "CapacitorFileViewer (from `../../node_modules/@capacitor/file-viewer`)" + +SPEC REPOS: + trunk: + - IONFileViewerLib + +EXTERNAL SOURCES: + Capacitor: + :path: "../../node_modules/@capacitor/ios" + CapacitorCordova: + :path: "../../node_modules/@capacitor/ios" + CapacitorFilesystem: + :path: "../../node_modules/@capacitor/filesystem" + CapacitorFileTransfer: + :path: "../../../capacitor-plugin" + CapacitorFileViewer: + :path: "../../node_modules/@capacitor/file-viewer" + +SPEC CHECKSUMS: + Capacitor: 82d1f3b4480d66b5996814f74500dcbc0908558c + CapacitorCordova: 345f93b7edd121db98e4ec20ac94d6d7bcaf7e48 + CapacitorFilesystem: e6261c410436f54908c11f94336c5b58286b1db0 + CapacitorFileTransfer: 3dbb65e62ec691038f6d1c6b2d9292201df8d6b4 + CapacitorFileViewer: e8935a3c7b4e5522886d589c31505e318bf227aa + IONFileViewerLib: 54e9fae36a354623a10fc91928500037432a9122 + +PODFILE CHECKSUM: 76668ea156e59ff21841d22849461df8faf9b06b + +COCOAPODS: 1.16.2 diff --git a/packages/example-app/package-lock.json b/packages/example-app/package-lock.json new file mode 100644 index 0000000..9486458 --- /dev/null +++ b/packages/example-app/package-lock.json @@ -0,0 +1,1504 @@ +{ + "name": "capacitor-file-transfer-example-app", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "capacitor-file-transfer-example-app", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@capacitor/android": "^7.0.0", + "@capacitor/core": "^7.0.0", + "@capacitor/file-transfer": "file:../capacitor-plugin", + "@capacitor/file-viewer": "^1.0.0", + "@capacitor/filesystem": "^7.0.1", + "@capacitor/ios": "^7.0.0" + }, + "devDependencies": { + "@capacitor/cli": "latest", + "vite": "^5.4.2" + } + }, + "..": {}, + "../capacitor-plugin": { + "name": "@capacitor/file-transfer", + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "@capacitor/synapse": "^1.0.2" + }, + "devDependencies": { + "@capacitor/android": "^7.0.0", + "@capacitor/core": "^7.0.0", + "@capacitor/docgen": "^0.3.0", + "@capacitor/ios": "^7.0.0", + "@eslint/js": "^8.56.0", + "@rollup/wasm-node": "~4.19.0", + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/git": "^10.0.1", + "@semantic-release/github": "^10.1.2", + "@semantic-release/npm": "^12.0.1", + "@typescript-eslint/eslint-plugin": "^8.29.0", + "@typescript-eslint/parser": "^8.29.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", + "mustache": "^4.2.0", + "prettier": "^3.4.2", + "prettier-plugin-java": "^2.6.6", + "rimraf": "^6.0.1", + "semantic-release": "^24.0.0", + "swiftlint": "^2.0.0", + "typescript": "^5.8.2", + "vite": "^5.2.11", + "vite-plugin-dts": "^4.4.0" + }, + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/android": { + "version": "7.0.0", + "license": "MIT", + "peerDependencies": { + "@capacitor/core": "^7.0.0" + } + }, + "node_modules/@capacitor/cli": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-7.2.0.tgz", + "integrity": "sha512-RNW9vtYYYSDmOdguYBSW0VpRnG/d6lGydlc9DLrJ7qbSPxFrotTz9IjkM48O+SruUma61DyuSqJttdbay2xSxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ionic/cli-framework-output": "^2.2.8", + "@ionic/utils-subprocess": "^3.0.1", + "@ionic/utils-terminal": "^2.3.5", + "commander": "^12.1.0", + "debug": "^4.4.0", + "env-paths": "^2.2.0", + "fs-extra": "^11.2.0", + "kleur": "^4.1.5", + "native-run": "^2.0.1", + "open": "^8.4.0", + "plist": "^3.1.0", + "prompts": "^2.4.2", + "rimraf": "^6.0.1", + "semver": "^7.6.3", + "tar": "^6.1.11", + "tslib": "^2.8.1", + "xml2js": "^0.6.2" + }, + "bin": { + "cap": "bin/capacitor", + "capacitor": "bin/capacitor" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@capacitor/core": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@capacitor/file-transfer": { + "resolved": "../capacitor-plugin", + "link": true + }, + "node_modules/@capacitor/file-viewer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@capacitor/file-viewer/-/file-viewer-1.0.0.tgz", + "integrity": "sha512-g2wd14NqOkvMotUngWG2SeNW7FJvY4FcnREP2MeOdJCgGtOGfT4aGSJu43d22TR9hJukRXj5zCyiY4a4eEyB9w==", + "license": "MIT", + "dependencies": { + "@capacitor/synapse": "^1.0.2" + }, + "peerDependencies": { + "@capacitor/core": "^7.0.0" + } + }, + "node_modules/@capacitor/filesystem": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-7.0.1.tgz", + "integrity": "sha512-dxuKNLFoUejm7tBKkQPs1j7+BLpDh5JKPSVu7nT8jgCbA/KXt5FoCLiepfkjWkYfq60X0JNFzGnIquc5FPOLzQ==", + "license": "MIT", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/ios": { + "version": "7.0.0", + "license": "MIT", + "peerDependencies": { + "@capacitor/core": "^7.0.0" + } + }, + "node_modules/@capacitor/synapse": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@capacitor/synapse/-/synapse-1.0.2.tgz", + "integrity": "sha512-ynq39s4D2rhk+aVLWKfKfMCz9SHPKijL9tq8aFL5dG7ik7/+PvBHmg9cPHbqdvFEUSMmaGzL6cIjzkOruW7vGA==", + "license": "ISC" + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@ionic/cli-framework-output": { + "version": "2.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@ionic/utils-terminal": "2.3.5", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-array": { + "version": "2.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-fs": { + "version": "3.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/fs-extra": "^8.0.0", + "debug": "^4.0.0", + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-fs/node_modules/fs-extra": { + "version": "9.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ionic/utils-object": { + "version": "2.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-process": { + "version": "2.1.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@ionic/utils-object": "2.1.6", + "@ionic/utils-terminal": "2.3.5", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "tree-kill": "^1.2.2", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-stream": { + "version": "3.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-subprocess": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@ionic/utils-array": "2.1.6", + "@ionic/utils-fs": "3.1.7", + "@ionic/utils-process": "2.1.12", + "@ionic/utils-stream": "3.1.7", + "@ionic/utils-terminal": "2.3.5", + "cross-spawn": "^7.0.3", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-terminal": { + "version": "2.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/slice-ansi": "^4.0.0", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "slice-ansi": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "tslib": "^2.0.1", + "untildify": "^4.0.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.39.0", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/fs-extra": { + "version": "8.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "22.13.17", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/big-integer": { + "version": "1.6.52", + "dev": true, + "license": "Unlicense", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bplist-parser": { + "version": "0.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "12.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/elementtree": { + "version": "0.1.7", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "sax": "1.1.4" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/env-paths": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs-extra": { + "version": "11.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/glob": { + "version": "11.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "4.1.3", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "4.1.0", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lru-cache": { + "version": "11.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/minimatch": { + "version": "10.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/native-run": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@ionic/utils-fs": "^3.1.7", + "@ionic/utils-terminal": "^2.3.4", + "bplist-parser": "^0.3.2", + "debug": "^4.3.4", + "elementtree": "^0.1.7", + "ini": "^4.1.1", + "plist": "^3.1.0", + "split2": "^4.2.0", + "through2": "^4.0.2", + "tslib": "^2.6.2", + "yauzl": "^2.10.0" + }, + "bin": { + "native-run": "bin/native-run" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/open": { + "version": "8.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "2.0.0", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/plist": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/postcss": { + "version": "8.5.3", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/rimraf": { + "version": "6.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.39.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.7" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.39.0", + "@rollup/rollup-android-arm64": "4.39.0", + "@rollup/rollup-darwin-arm64": "4.39.0", + "@rollup/rollup-darwin-x64": "4.39.0", + "@rollup/rollup-freebsd-arm64": "4.39.0", + "@rollup/rollup-freebsd-x64": "4.39.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.39.0", + "@rollup/rollup-linux-arm-musleabihf": "4.39.0", + "@rollup/rollup-linux-arm64-gnu": "4.39.0", + "@rollup/rollup-linux-arm64-musl": "4.39.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.39.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.39.0", + "@rollup/rollup-linux-riscv64-gnu": "4.39.0", + "@rollup/rollup-linux-riscv64-musl": "4.39.0", + "@rollup/rollup-linux-s390x-gnu": "4.39.0", + "@rollup/rollup-linux-x64-gnu": "4.39.0", + "@rollup/rollup-linux-x64-musl": "4.39.0", + "@rollup/rollup-win32-arm64-msvc": "4.39.0", + "@rollup/rollup-win32-ia32-msvc": "4.39.0", + "@rollup/rollup-win32-x64-msvc": "4.39.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.1.4", + "dev": true, + "license": "ISC" + }, + "node_modules/semver": { + "version": "7.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/through2": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "license": "0BSD" + }, + "node_modules/undici-types": { + "version": "6.20.0", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "5.4.16", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/xml2js": { + "version": "0.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/packages/example-app/package.json b/packages/example-app/package.json new file mode 100644 index 0000000..a47b223 --- /dev/null +++ b/packages/example-app/package.json @@ -0,0 +1,29 @@ +{ + "name": "capacitor-file-transfer-example-app", + "version": "1.0.0", + "description": "Capacitor File Transfer Example App", + "type": "module", + "keywords": [ + "capacitor", + "mobile" + ], + "scripts": { + "start": "vite", + "build": "vite build && npx cap sync", + "preview": "vite preview" + }, + "dependencies": { + "@capacitor/android": "^7.0.0", + "@capacitor/core": "^7.0.0", + "@capacitor/file-transfer": "file:../capacitor-plugin", + "@capacitor/file-viewer": "^1.0.0", + "@capacitor/filesystem": "^7.0.1", + "@capacitor/ios": "^7.0.0" + }, + "devDependencies": { + "@capacitor/cli": "latest", + "vite": "^5.4.2" + }, + "author": "", + "license": "ISC" +} diff --git a/packages/example-app/src/assets/icon/favicon.ico b/packages/example-app/src/assets/icon/favicon.ico new file mode 100644 index 0000000..78c86dd Binary files /dev/null and b/packages/example-app/src/assets/icon/favicon.ico differ diff --git a/packages/example-app/src/assets/imgs/logo.png b/packages/example-app/src/assets/imgs/logo.png new file mode 100644 index 0000000..b7895e9 Binary files /dev/null and b/packages/example-app/src/assets/imgs/logo.png differ diff --git a/packages/example-app/src/css/styles.css b/packages/example-app/src/css/styles.css new file mode 100644 index 0000000..89b903a --- /dev/null +++ b/packages/example-app/src/css/styles.css @@ -0,0 +1,143 @@ +:root { + --primary-color: #3880ff; + --secondary-color: #3dc2ff; + --background-color: #f4f5f8; + --card-background: #ffffff; + --text-color: #2c3e50; + --border-color: #dcdde1; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + background-color: var(--background-color); + color: var(--text-color); + line-height: 1.6; +} + +.container { + max-width: 800px; + margin: 2rem auto; + padding: 0 1rem; +} + +h1 { + text-align: center; + margin-bottom: 2rem; + color: var(--primary-color); +} + +.card { + background: var(--card-background); + border-radius: 8px; + padding: 1.5rem; + margin-bottom: 1.5rem; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); +} + +h2 { + margin-bottom: 1rem; + color: var(--primary-color); +} + +.form-group { + margin-bottom: 1rem; +} + +label { + display: block; + margin-bottom: 0.5rem; + font-weight: 500; +} + +input[type="url"], +input[type="text"] { + width: 100%; + padding: 0.5rem; + border: 1px solid var(--border-color); + border-radius: 4px; + font-size: 1rem; +} + +.url-select { + width: 100%; + padding: 0.5rem; + border: 1px solid var(--border-color); + border-radius: 4px; + font-size: 1rem; + background-color: white; + cursor: pointer; +} + +.url-select:focus { + outline: none; + border-color: var(--primary-color); + box-shadow: 0 0 0 2px rgba(56, 128, 255, 0.2); +} + +input[type="checkbox"] { + margin-right: 0.5rem; +} + +button { + background-color: var(--primary-color); + color: white; + border: none; + padding: 0.75rem 1.5rem; + border-radius: 4px; + cursor: pointer; + font-size: 1rem; + width: 100%; + transition: background-color 0.2s; +} + +button:hover { + background-color: var(--secondary-color); +} + +.progress-container { + margin: 1rem 0; +} + +.progress-bar { + width: 100%; + height: 8px; + background-color: var(--border-color); + border-radius: 4px; + overflow: hidden; +} + +.progress { + width: 0%; + height: 100%; + background-color: var(--primary-color); + transition: width 0.3s ease; +} + +.progress-text { + text-align: center; + margin-top: 0.5rem; + font-size: 0.9rem; + color: var(--text-color); +} + +pre { + background-color: #f8f9fa; + padding: 1rem; + border-radius: 4px; + overflow-x: auto; + font-size: 0.9rem; + white-space: pre-wrap; + word-wrap: break-word; +} + +.error { + color: #dc3545; + margin-top: 0.5rem; + font-size: 0.9rem; +} \ No newline at end of file diff --git a/packages/example-app/src/index.html b/packages/example-app/src/index.html new file mode 100644 index 0000000..2f3a188 --- /dev/null +++ b/packages/example-app/src/index.html @@ -0,0 +1,17 @@ + + + + + + + + File Transfer Example + + + + + + + + + diff --git a/packages/example-app/src/js/file-transfer-app.js b/packages/example-app/src/js/file-transfer-app.js new file mode 100644 index 0000000..785f6e3 --- /dev/null +++ b/packages/example-app/src/js/file-transfer-app.js @@ -0,0 +1,453 @@ +import { FileTransfer } from '@capacitor/file-transfer'; +import { Filesystem, Directory } from '@capacitor/filesystem'; +import { Capacitor } from '@capacitor/core'; +import { FileViewer } from '@capacitor/file-viewer'; + +window.customElements.define( + 'file-transfer-app', + class extends HTMLElement { + constructor() { + super(); + + const root = this.attachShadow({ mode: 'open' }); + + root.innerHTML = ` + +
+

File Transfer Example

+ +
+

Download File

+
+ + + +
+
+ + +
+
+ + +
+
+ +
+
+
+
+
+
0%
+
+ + +
+ +
+

Upload File

+
+ + + +
+
+ + +
+
+ +
+
+
+
+
+
0%
+
+ +
+ +
+

Response

+

+          
+
+ `; + + this.progressListenerHandle = null; + } + + connectedCallback() { + this.initialize(); + } + + disconnectedCallback() { + if (this.progressListenerHandle) { + FileTransfer.removeAllListeners(); + } + } + + async initialize() { + try { + // Add progress listener + this.progressListenerHandle = await FileTransfer.addListener('progress', (progress) => { + const percent = progress.lengthComputable + ? Math.round((progress.bytes / progress.contentLength) * 100) + : 0; + + // Update UI based on the type field + if (progress.type === 'download') { + this.updateDownloadProgress(percent); + } else if (progress.type === 'upload') { + this.updateUploadProgress(percent); + } + }); + + // Set up event listeners + const downloadProgress = this.shadowRoot.querySelector('#downloadProgress'); + const uploadProgress = this.shadowRoot.querySelector('#uploadProgress'); + const downloadProgressContainer = this.shadowRoot.querySelector('#downloadProgressContainer'); + const uploadProgressContainer = this.shadowRoot.querySelector('#uploadProgressContainer'); + + downloadProgress.addEventListener('change', () => { + downloadProgressContainer.style.display = downloadProgress.checked ? 'block' : 'none'; + }); + + uploadProgress.addEventListener('change', () => { + uploadProgressContainer.style.display = uploadProgress.checked ? 'block' : 'none'; + }); + + this.shadowRoot.querySelector('#downloadBtn').addEventListener('click', () => this.handleDownload()); + this.shadowRoot.querySelector('#uploadBtn').addEventListener('click', () => this.handleUpload()); + this.shadowRoot.querySelector('#openFileBtn').addEventListener('click', () => this.handleOpenFile()); + + // Set default paths + const downloadPath = this.shadowRoot.querySelector('#downloadPath'); + downloadPath.value = 'test.pdf'; + + // Initialize directories + await this.initializeDirectories(); + + } catch (error) { + this.showError('Failed to initialize: ' + error.message); + } + } + + async initializeDirectories() { + // Make sure directories exist + try { + // Create a test directory in Documents to verify everything is working + if (Capacitor.getPlatform() !== 'web') { + await Filesystem.mkdir({ + path: 'file-transfer-test', + directory: Directory.Documents, + recursive: true + }); + + this.showResponse('Directory check', { + message: 'Filesystem access confirmed - directories ready' + }); + } + } catch (error) { + this.showError('Directory initialization error: ' + error.message); + } + } + + getDownloadUrl() { + const customUrl = this.shadowRoot.querySelector('#customDownloadUrl').value; + const selectUrl = this.shadowRoot.querySelector('#downloadUrl').value; + return customUrl || selectUrl; + } + + getUploadUrl() { + const customUrl = this.shadowRoot.querySelector('#customUploadUrl').value; + const selectUrl = this.shadowRoot.querySelector('#uploadUrl').value; + return customUrl || selectUrl; + } + + getSelectedDirectory() { + const directorySelect = this.shadowRoot.querySelector('#downloadDirectory'); + const selectedValue = directorySelect.value; + + if (selectedValue === 'DOCUMENTS') { + return Directory.Documents; + } else if (selectedValue === 'DATA') { + return Directory.Data; + } else if (selectedValue === 'CACHE') { + return Directory.Cache; + } else if (selectedValue === 'EXTERNAL') { + return Directory.External; + } + return Directory.Documents; + } + + async handleDownload() { + try { + const url = this.getDownloadUrl(); + const fileName = this.shadowRoot.querySelector('#downloadPath').value; + const selectedDirectory = this.getSelectedDirectory(); + + if (!url || !fileName) { + this.showError('Please provide both URL and filename'); + return; + } + + // Reset progress + this.updateDownloadProgress(0); + const downloadProgress = this.shadowRoot.querySelector('#downloadProgress'); + const downloadProgressContainer = this.shadowRoot.querySelector('#downloadProgressContainer'); + downloadProgressContainer.style.display = downloadProgress.checked ? 'block' : 'none'; + + let filePath; + + if (Capacitor.getPlatform() === 'web') { + // For web, we'll use a simple path + filePath = fileName; + } else { + const pathResult = await Filesystem.getUri({ + path: 'file-transfer-test/' + fileName, + directory: selectedDirectory + }); + filePath = pathResult.uri; + } + + // Download file + const result = await FileTransfer.downloadFile({ + url, + path: filePath, + progress: downloadProgress.checked, + }); + + this.showResponse('Download completed', result); + } catch (error) { + this.showError('Download failed: ' + error.message); + } + } + + async handleUpload() { + try { + const url = this.getUploadUrl(); + const file = this.shadowRoot.querySelector('#fileInput').files[0]; + + if (!url || !file) { + this.showError('Please provide both URL and file'); + return; + } + + // Reset progress + this.updateUploadProgress(0); + const uploadProgress = this.shadowRoot.querySelector('#uploadProgress'); + const uploadProgressContainer = this.shadowRoot.querySelector('#uploadProgressContainer'); + uploadProgressContainer.style.display = uploadProgress.checked ? 'block' : 'none'; + + let filePath; + + if (Capacitor.getPlatform() === 'web') { + filePath = file.name; + } else { + const base64 = await new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = () => { + const result = reader.result; + resolve(result.split(',')[1]); + }; + reader.onerror = reject; + reader.readAsDataURL(file); + }); + + const savedFile = await Filesystem.writeFile({ + path: file.name, + data: base64, + directory: Directory.Cache, + }); + + filePath = await savedFile.uri; + } + + // Upload file + const result = await FileTransfer.uploadFile({ + url, + path: filePath, + blob: Capacitor.getPlatform() === 'web' ? file : undefined, + progress: uploadProgress.checked, + }); + + this.showResponse('Upload completed', result); + } catch (error) { + this.showError('Upload failed: ' + error.message); + } + } + + async handleOpenFile() { + if (Capacitor.getPlatform() === 'web') { + this.showError('File viewer is not available on web platforms'); + return; + } + + try { + const fileName = this.shadowRoot.querySelector('#downloadPath').value; + const selectedDirectory = this.getSelectedDirectory(); + + if (!fileName) { + this.showError('Please specify a file name to open'); + return; + } + + let pathResult; + + try { + // Try to get the file path + pathResult = await Filesystem.getUri({ + path: 'file-transfer-test/' + fileName, + directory: selectedDirectory + }); + await FileViewer.openDocumentFromLocalPath({ + path: pathResult.uri + }); + } catch (error) { + this.showError('File not found. Please download it first.'); + return; + } + + this.showResponse('File opened', { path: pathResult.uri }); + } catch (error) { + this.showError('Failed to open file: ' + error.message); + } + } + + updateDownloadProgress(percent) { + const progressBar = this.shadowRoot.querySelector('#downloadProgressBar'); + const progressText = this.shadowRoot.querySelector('#downloadProgressText'); + progressBar.style.width = `${percent}%`; + progressText.textContent = `${percent}%`; + } + + updateUploadProgress(percent) { + const progressBar = this.shadowRoot.querySelector('#uploadProgressBar'); + const progressText = this.shadowRoot.querySelector('#uploadProgressText'); + progressBar.style.width = `${percent}%`; + progressText.textContent = `${percent}%`; + } + + showResponse(title, data) { + // Create a copy of the data to modify + const truncatedData = { ...data }; + + // Truncate response if it exists and is too long + if (truncatedData.response && truncatedData.response.length > 500) { + truncatedData.response = truncatedData.response.substring(0, 500) + '... (truncated)'; + } + + // Truncate headers if they exist + if (truncatedData.headers) { + const truncatedHeaders = {}; + Object.entries(truncatedData.headers).forEach(([key, value]) => { + truncatedHeaders[key] = value.length > 100 ? value.substring(0, 100) + '...' : value; + }); + truncatedData.headers = truncatedHeaders; + } + + this.shadowRoot.querySelector('#response').textContent = `${title}:\n${JSON.stringify(truncatedData, null, 2)}`; + } + + showError(message) { + this.shadowRoot.querySelector('#response').textContent = `Error: ${message}`; + } + } +); diff --git a/packages/example-app/src/manifest.json b/packages/example-app/src/manifest.json new file mode 100644 index 0000000..2ed5701 --- /dev/null +++ b/packages/example-app/src/manifest.json @@ -0,0 +1,13 @@ +{ + "name": "App", + "short_name": "App", + "start_url": "index.html", + "display": "standalone", + "icons": [{ + "src": "assets/imgs/logo.png", + "sizes": "512x512", + "type": "image/png" + }], + "background_color": "#31d53d", + "theme_color": "#31d53d" +} diff --git a/packages/example-app/vite.config.ts b/packages/example-app/vite.config.ts new file mode 100644 index 0000000..1b9f069 --- /dev/null +++ b/packages/example-app/vite.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vite'; + +export default defineConfig({ + root: './src', + build: { + outDir: '../dist', + minify: false, + emptyOutDir: true, + }, +});