From 145a3de35736677db9bb5eb3a021e70172ac8039 Mon Sep 17 00:00:00 2001 From: Gorniaky Date: Thu, 3 Sep 2026 12:52:30 -0300 Subject: [PATCH 1/6] refactor: update workflow files to use latest action versions and improve formatting --- .github/workflows/build_linux_macos.yml | 12 ++-- .github/workflows/build_windows.yml | 14 ++-- .github/workflows/codeql.yml | 86 ++++++++++++------------- .github/workflows/dart.yml | 6 +- .github/workflows/jekyll-gh-pages.yml | 10 +-- .github/workflows/update_docs.yml | 25 +++++-- analysis_options.yaml | 1 + modules/glob_zipper/pubspec.yaml | 2 +- modules/interact/pubspec.yaml | 2 +- modules/local_store/pubspec.yaml | 2 +- modules/nested_map/pubspec.yaml | 2 +- pubspec.yaml | 14 ++-- scripts/upgrade_pubspec_sdk.dart | 25 ++++--- 13 files changed, 106 insertions(+), 95 deletions(-) diff --git a/.github/workflows/build_linux_macos.yml b/.github/workflows/build_linux_macos.yml index 4a773a6..a243dbb 100644 --- a/.github/workflows/build_linux_macos.yml +++ b/.github/workflows/build_linux_macos.yml @@ -15,8 +15,8 @@ on: default: false permissions: - contents: write actions: read + contents: write concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -34,7 +34,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Setup Dart uses: dart-lang/setup-dart@v1 @@ -53,8 +53,8 @@ jobs: - name: Dart format run: | - dart format . dart fix --apply + dart format . - name: Run tests run: dart test @@ -83,7 +83,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Get artifacts continue-on-error: true @@ -109,8 +109,8 @@ jobs: - name: Dart format run: | - dart format . dart fix --apply + dart format . - name: Run tests run: dart test @@ -163,7 +163,7 @@ jobs: rm -f discloud/discloud - name: Upload to release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v3 with: prerelease: ${{ env.prerelease }} tag_name: ${{ env.version }} diff --git a/.github/workflows/build_windows.yml b/.github/workflows/build_windows.yml index c6b2ce3..074ae74 100644 --- a/.github/workflows/build_windows.yml +++ b/.github/workflows/build_windows.yml @@ -15,8 +15,8 @@ on: default: false permissions: - contents: write actions: read + contents: write concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -47,7 +47,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Get artifacts continue-on-error: true @@ -70,8 +70,8 @@ jobs: - name: Dart format run: | - dart format . dart fix --apply + dart format . - name: Run tests run: dart test @@ -93,7 +93,7 @@ jobs: runs-on: windows-latest steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Setup Dart uses: dart-lang/setup-dart@v1 @@ -120,7 +120,7 @@ jobs: run: iscc inno_setup.iss - name: Upload to release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v3 with: prerelease: ${{ env.prerelease }} tag_name: ${{ env.version }} @@ -132,8 +132,8 @@ jobs: runs-on: windows-latest steps: - - name: Install Inno Setup + - name: Install Winget Create run: winget install Microsoft.WingetCreate -h --accept-package-agreements --accept-source-agreements --nowarn --verbose -s winget - - name: Submit using wingetcreate + - name: Submit using Winget Create run: wingetcreate update Discloud.CLI -s -v ${{ env.version }} --release-notes-url ${{ env.release_base_url }}/tag/${{ env.version }} -u '${{ env.release_base_url }}/download/${{ env.version }}/${{ env.setupx64 }}|x64' '${{ env.release_base_url }}/download/${{ env.version }}/${{ env.setuparm64 }}|arm64' -t ${{ secrets.PERSONAL_GITHUB_TOKEN }} diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 0bfa215..ad47a1f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,11 +13,11 @@ name: "CodeQL Advanced" on: push: - branches: [ "main" ] + branches: ["main"] pull_request: - branches: [ "main" ] + branches: ["main"] schedule: - - cron: '31 5 * * 4' + - cron: "31 5 * * 4" jobs: analyze: @@ -43,8 +43,8 @@ jobs: fail-fast: false matrix: include: - - language: actions - build-mode: none + - language: actions + build-mode: none # CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'rust', 'swift' # Use `c-cpp` to analyze code written in C, C++ or both # Use 'java-kotlin' to analyze code written in Java, Kotlin or both @@ -54,46 +54,46 @@ jobs: # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages steps: - - name: Checkout repository - uses: actions/checkout@v6 + - name: Checkout repository + uses: actions/checkout@v7 - # Add any setup steps before running the `github/codeql-action/init` action. - # This includes steps like installing compilers or runtimes (`actions/setup-node` - # or others). This is typically only required for manual builds. - # - name: Setup runtime (example) - # uses: actions/setup-example@v1 + # Add any setup steps before running the `github/codeql-action/init` action. + # This includes steps like installing compilers or runtimes (`actions/setup-node` + # or others). This is typically only required for manual builds. + # - name: Setup runtime (example) + # uses: actions/setup-example@v1 - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v4 - with: - languages: ${{ matrix.language }} - build-mode: ${{ matrix.build-mode }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v4 + with: + languages: ${{ matrix.language }} + build-mode: ${{ matrix.build-mode }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. - # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs - # queries: security-extended,security-and-quality + # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality - # If the analyze step fails for one of the languages you are analyzing with - # "We were unable to automatically build your code", modify the matrix above - # to set the build mode to "manual" for that language. Then modify this step - # to build your code. - # â„šī¸ Command-line programs to run using the OS shell. - # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - - name: Run manual build steps - if: matrix.build-mode == 'manual' - shell: bash - run: | - echo 'If you are using a "manual" build mode for one or more of the' \ - 'languages you are analyzing, replace this with the commands to build' \ - 'your code, for example:' - echo ' make bootstrap' - echo ' make release' - exit 1 + # If the analyze step fails for one of the languages you are analyzing with + # "We were unable to automatically build your code", modify the matrix above + # to set the build mode to "manual" for that language. Then modify this step + # to build your code. + # â„šī¸ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + - name: Run manual build steps + if: matrix.build-mode == 'manual' + shell: bash + run: | + echo 'If you are using a "manual" build mode for one or more of the' \ + 'languages you are analyzing, replace this with the commands to build' \ + 'your code, for example:' + echo ' make bootstrap' + echo ' make release' + exit 1 - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v4 - with: - category: "/language:${{matrix.language}}" + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v4 + with: + category: "/language:${{matrix.language}}" diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml index 3d89ae5..0e353b2 100644 --- a/.github/workflows/dart.yml +++ b/.github/workflows/dart.yml @@ -10,16 +10,16 @@ permissions: on: push: - branches: [ "main" ] + branches: ["main"] pull_request: - branches: [ "main" ] + branches: ["main"] jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 # Note: This workflow uses the latest stable version of the Dart SDK. # You can specify other versions if desired, see documentation here: diff --git a/.github/workflows/jekyll-gh-pages.yml b/.github/workflows/jekyll-gh-pages.yml index 7ee9920..49e6c1b 100644 --- a/.github/workflows/jekyll-gh-pages.yml +++ b/.github/workflows/jekyll-gh-pages.yml @@ -6,7 +6,7 @@ on: push: branches: ["main"] paths: - - 'docs/**' + - "docs/**" # Allows you to run this workflow manually from the Actions tab workflow_dispatch: @@ -29,16 +29,16 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Setup Pages - uses: actions/configure-pages@v5 + uses: actions/configure-pages@v6 - name: Build with Jekyll uses: actions/jekyll-build-pages@v1 with: source: ./docs destination: ./_site - name: Upload artifact - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-pages-artifact@v5 # Deployment job deploy: @@ -50,4 +50,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@v5 diff --git a/.github/workflows/update_docs.yml b/.github/workflows/update_docs.yml index 4b54bcb..d15effd 100644 --- a/.github/workflows/update_docs.yml +++ b/.github/workflows/update_docs.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Setup Dart uses: dart-lang/setup-dart@v1 @@ -37,18 +37,29 @@ jobs: - name: Generate docs run: dart scripts/docs/generate.dart + - name: Git diff + id: diff + continue-on-error: true + run: git diff --quiet + - name: Git config + if: steps.diff.outcome == 'failure' run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" - - name: Git commit - id: commit - continue-on-error: true + - name: Git push in new branch + if: steps.diff.outcome == 'failure' run: | + git checkout -b docs/update git add docs git commit -m "docs: update ${{ steps.short_github_sha.outputs.id }}" + git push --set-upstream origin docs/update - - name: Push - if: steps.commit.outcome != 'failure' - run: git push + - name: Git create & merge pull request + if: steps.diff.outcome == 'failure' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh pr create -t "docs: update ${{ steps.short_github_sha.outputs.id }}" -b " " + gh pr merge -ds diff --git a/analysis_options.yaml b/analysis_options.yaml index a5e831a..76caab5 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -101,6 +101,7 @@ linter: - prefer_final_locals - prefer_if_elements_to_conditional_expressions - prefer_int_literals + - remove_deprecations_in_breaking_versions - require_trailing_commas - simplify_variable_pattern - unawaited_futures diff --git a/modules/glob_zipper/pubspec.yaml b/modules/glob_zipper/pubspec.yaml index 7a7d834..1d56681 100644 --- a/modules/glob_zipper/pubspec.yaml +++ b/modules/glob_zipper/pubspec.yaml @@ -3,7 +3,7 @@ description: A starting point for Dart libraries or applications. version: 1.0.0 environment: - sdk: ^3.13.1 + sdk: ^3.13.2 dependencies: archive: any diff --git a/modules/interact/pubspec.yaml b/modules/interact/pubspec.yaml index 2540a03..3932445 100644 --- a/modules/interact/pubspec.yaml +++ b/modules/interact/pubspec.yaml @@ -4,7 +4,7 @@ version: 2.2.0 publish_to: none environment: - sdk: ^3.13.1 + sdk: ^3.13.2 dependencies: dart_console: any diff --git a/modules/local_store/pubspec.yaml b/modules/local_store/pubspec.yaml index 7f856c1..0cc8715 100644 --- a/modules/local_store/pubspec.yaml +++ b/modules/local_store/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0 publish_to: none environment: - sdk: ^3.13.1 + sdk: ^3.13.2 dependencies: nested_map: diff --git a/modules/nested_map/pubspec.yaml b/modules/nested_map/pubspec.yaml index 1a63282..2a5aa62 100644 --- a/modules/nested_map/pubspec.yaml +++ b/modules/nested_map/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0 publish_to: none environment: - sdk: ^3.13.1 + sdk: ^3.13.2 dev_dependencies: lints: any diff --git a/pubspec.yaml b/pubspec.yaml index 6c2b340..6cf26ec 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,7 +6,7 @@ publish_to: none repository: https://github.com/discloud/cli-dart environment: - sdk: ^3.13.1 + sdk: ^3.13.2 dependencies: glob_zipper: @@ -31,14 +31,14 @@ dependencies: tint: ^2.0.1 dev_dependencies: - build_runner: ^2.16.0 + build_runner: ^2.16.1 build_version: ^2.1.3 - freezed: ^4.0.0 + freezed: ^4.0.1 inno_bundle: ^0.12.0 interpolation: ^2.1.2 - json_serializable: ^6.14.0 + json_serializable: ^6.14.1 lints: ^6.1.0 markdown: ^7.3.1 - pub_semver: ^2.2.0 - test: ^1.31.2 - yaml: ^3.1.3 + pub_semver: ^2.2.1 + test: ^1.32.0 + yaml: ^3.1.4 diff --git a/scripts/upgrade_pubspec_sdk.dart b/scripts/upgrade_pubspec_sdk.dart index fb94b6b..4df163a 100644 --- a/scripts/upgrade_pubspec_sdk.dart +++ b/scripts/upgrade_pubspec_sdk.dart @@ -5,13 +5,21 @@ import "dart:io"; import "package:path/path.dart"; import "package:pub_semver/pub_semver.dart"; +const _pubspecFilename = "pubspec.yaml"; +const _pubspecSdkPattern = + r"(\r?\nenvironment:\s*\r?\n[\w\W]*\s+sdk:\s*\^)(\d+\.\d+\.\d+\S*)((?:\r?\n)+)"; +final _pubspecSdkRegexp = RegExp(_pubspecSdkPattern); +final Version _dartVersion = .parse( + Platform.version.replaceFirst(RegExp(r"\s+.+"), ""), +); + void _noop(Object _, StackTrace _) {} void main() async { - await for (final entity - in Directory.current.list(recursive: true).handleError(_noop)) { - if (entity is! File) continue; - if (basename(entity.path) != _pubspecFilename) continue; + final Directory modules = .new("modules"); + + await for (final entity in modules.list(recursive: true).handleError(_noop)) { + if (entity is! File || basename(entity.path) != _pubspecFilename) continue; await _upgradePubspecVersion(entity); } } @@ -30,12 +38,3 @@ Future _upgradePubspecVersion(File pubspecFile) async { await pubspecFile.writeAsString(content); } - -const _pubspecFilename = "pubspec.yaml"; -const _pubspecSdkPattern = - r"(\r?\nenvironment:\s*\r?\n[\w\W]*\s+sdk:\s*\^)(\d+\.\d+\.\d+\S*)((?:\r?\n)+)"; -final _pubspecSdkRegexp = RegExp(_pubspecSdkPattern); -//const versionPattern = r"(\d+\.\d+\.\d+\S*)"; -final _dartVersion = Version.parse( - Platform.version.replaceFirst(RegExp(r"\s+.+"), ""), -); From d68dd6050a699760cb41ebb192823f2bdafe83fe Mon Sep 17 00:00:00 2001 From: Gorniaky Date: Thu, 3 Sep 2026 13:16:38 -0300 Subject: [PATCH 2/6] refactor: improve file handling and formatting in documentation generation --- .github/workflows/update_docs.yml | 2 +- scripts/docs/generate.dart | 25 +++++++++++-------------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/.github/workflows/update_docs.yml b/.github/workflows/update_docs.yml index d15effd..0e3ac9b 100644 --- a/.github/workflows/update_docs.yml +++ b/.github/workflows/update_docs.yml @@ -40,7 +40,7 @@ jobs: - name: Git diff id: diff continue-on-error: true - run: git diff --quiet + run: git diff --quiet -- docs - name: Git config if: steps.diff.outcome == 'failure' diff --git a/scripts/docs/generate.dart b/scripts/docs/generate.dart index 163c325..8efe08a 100644 --- a/scripts/docs/generate.dart +++ b/scripts/docs/generate.dart @@ -10,29 +10,27 @@ import "package:path/path.dart"; import "generate/commands.dart"; import "generate/index.dart"; -const _filesToPreserve = {"_config.yml"}; - void main() async { const docRootPath = "docs"; const docsExt = ".md"; - final Directory docRootDir = .new(docRootPath); + final docRootDir = Directory(docRootPath); - final filesToPreserveContents = {}; + const filesToPreserve = {"_config.yml"}; + final filesToPreserveContents = {}; - for (final filename in _filesToPreserve) { - final File file = .new(joinAll([docRootDir.path, filename])); + for (final filename in filesToPreserve) { + final File file = .new(joinAll([docRootPath, filename])); if (!await file.exists()) continue; - filesToPreserveContents[file.path] = await file.readAsBytes(); + filesToPreserveContents[file] = await file.readAsBytes(); } await docRootDir.delete(recursive: true); await docRootDir.create(recursive: true); for (final entry in filesToPreserveContents.entries) { - final File file = .new(entry.key); - await file.writeAsBytes(entry.value, flush: true); + await entry.key.writeAsBytes(entry.value, flush: true); } const version = packageVersion == "0.0.0" ? "" : " v$packageVersion"; @@ -46,14 +44,13 @@ void main() async { commands(header: header, runner: runner), ]); - final entities = await docRootDir + final entities = docRootDir .list(recursive: true) - .where((e) => e is File && extension(e.path) == docsExt) - .toList(); + .where((e) => e is File && extension(e.path) == docsExt) as Stream; - final entitiesPaths = entities.map((e) => e.path).toSet(); + final entitiesPaths = await entities.map((e) => e.path).toSet(); - for (final mdFile in entities.whereType()) { + await for (final mdFile in entities) { final mdContent = await mdFile.readAsString(); final htmlContent = markdownToHtml( From 65a19e1eabe512c00434ee479d99b096aefaa9fa Mon Sep 17 00:00:00 2001 From: Gorniaky Date: Thu, 3 Sep 2026 13:18:53 -0300 Subject: [PATCH 3/6] refactor: update git diff command and improve formatting in documentation generation --- .github/workflows/update_docs.yml | 2 +- scripts/docs/generate.dart | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/update_docs.yml b/.github/workflows/update_docs.yml index 0e3ac9b..76b7f7c 100644 --- a/.github/workflows/update_docs.yml +++ b/.github/workflows/update_docs.yml @@ -40,7 +40,7 @@ jobs: - name: Git diff id: diff continue-on-error: true - run: git diff --quiet -- docs + run: git diff --exit-code -- docs - name: Git config if: steps.diff.outcome == 'failure' diff --git a/scripts/docs/generate.dart b/scripts/docs/generate.dart index 8efe08a..3f7525f 100644 --- a/scripts/docs/generate.dart +++ b/scripts/docs/generate.dart @@ -44,9 +44,11 @@ void main() async { commands(header: header, runner: runner), ]); - final entities = docRootDir - .list(recursive: true) - .where((e) => e is File && extension(e.path) == docsExt) as Stream; + final entities = + docRootDir + .list(recursive: true) + .where((e) => e is File && extension(e.path) == docsExt) + as Stream; final entitiesPaths = await entities.map((e) => e.path).toSet(); From 5bc8f0847b0ddb7c7e62985b0a96f49c1809aa6d Mon Sep 17 00:00:00 2001 From: Gorniaky Date: Thu, 3 Sep 2026 13:20:07 -0300 Subject: [PATCH 4/6] refactor: improve file filtering logic in documentation generation --- scripts/docs/generate.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/docs/generate.dart b/scripts/docs/generate.dart index 3f7525f..a7b71ea 100644 --- a/scripts/docs/generate.dart +++ b/scripts/docs/generate.dart @@ -47,12 +47,13 @@ void main() async { final entities = docRootDir .list(recursive: true) - .where((e) => e is File && extension(e.path) == docsExt) - as Stream; + .where((e) => e is File && extension(e.path) == docsExt); final entitiesPaths = await entities.map((e) => e.path).toSet(); await for (final mdFile in entities) { + if (mdFile is! File) continue; + final mdContent = await mdFile.readAsString(); final htmlContent = markdownToHtml( From bd6bdff671f85d979fc84f723d5ad48df442e36f Mon Sep 17 00:00:00 2001 From: Gorniaky Date: Thu, 3 Sep 2026 13:23:09 -0300 Subject: [PATCH 5/6] refactor: simplify entity listing and improve type handling in documentation generation --- scripts/docs/generate.dart | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/scripts/docs/generate.dart b/scripts/docs/generate.dart index a7b71ea..8478f10 100644 --- a/scripts/docs/generate.dart +++ b/scripts/docs/generate.dart @@ -44,16 +44,14 @@ void main() async { commands(header: header, runner: runner), ]); - final entities = - docRootDir - .list(recursive: true) - .where((e) => e is File && extension(e.path) == docsExt); + final entities = await docRootDir + .list(recursive: true) + .where((e) => e is File && extension(e.path) == docsExt) + .toList(); - final entitiesPaths = await entities.map((e) => e.path).toSet(); - - await for (final mdFile in entities) { - if (mdFile is! File) continue; + final entitiesPaths = entities.map((e) => e.path).toSet(); + for (final mdFile in entities.whereType()) { final mdContent = await mdFile.readAsString(); final htmlContent = markdownToHtml( From e9a7d65e2436aa56743f65bc25ed49b5d8435127 Mon Sep 17 00:00:00 2001 From: Gorniaky Date: Thu, 3 Sep 2026 13:26:21 -0300 Subject: [PATCH 6/6] refactor: optimize equality and hashCode implementations in DiscloudApiException --- lib/services/discloud/exception.freezed.dart | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/services/discloud/exception.freezed.dart b/lib/services/discloud/exception.freezed.dart index 2bf1ad5..787f963 100644 --- a/lib/services/discloud/exception.freezed.dart +++ b/lib/services/discloud/exception.freezed.dart @@ -26,16 +26,21 @@ $DiscloudApiExceptionCopyWith get copyWith => _$DiscloudAp @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is DiscloudApiException&&(identical(other.code, code) || other.code == code)&&(identical(other.message, message) || other.message == message)&&(identical(other.path, path) || other.path == path)&&const DeepCollectionEquality().equals(other.body, body)&&(identical(other.logs, logs) || other.logs == logs)&&const DeepCollectionEquality().equals(other.localeList, localeList)); + final _this = this as DiscloudApiException; + return identical(this, other) || (other.runtimeType == runtimeType&&other is DiscloudApiException&&(identical(other.code, _this.code) || other.code == _this.code)&&(identical(other.message, _this.message) || other.message == _this.message)&&(identical(other.path, _this.path) || other.path == _this.path)&&const DeepCollectionEquality().equals(other.body, _this.body)&&(identical(other.logs, _this.logs) || other.logs == _this.logs)&&const DeepCollectionEquality().equals(other.localeList, _this.localeList)); } @override -int get hashCode => Object.hash(runtimeType,code,message,path,const DeepCollectionEquality().hash(body),logs,const DeepCollectionEquality().hash(localeList)); +int get hashCode { + final _this = this as DiscloudApiException; + return Object.hash(runtimeType,_this.code,_this.message,_this.path,const DeepCollectionEquality().hash(_this.body),_this.logs,const DeepCollectionEquality().hash(_this.localeList)); +} @override String toString() { - return 'DiscloudApiException(code: $code, message: $message, path: $path, body: $body, logs: $logs, localeList: $localeList)'; + final _this = this as DiscloudApiException; + return 'DiscloudApiException(code: ${_this.code}, message: ${_this.message}, path: ${_this.path}, body: ${_this.body}, logs: ${_this.logs}, localeList: ${_this.localeList})'; } @@ -248,16 +253,18 @@ _$DiscloudApiExceptionCopyWith<_DiscloudApiException> get copyWith => __$Disclou @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is _DiscloudApiException&&(identical(other.code, code) || other.code == code)&&(identical(other.message, message) || other.message == message)&&(identical(other.path, path) || other.path == path)&&const DeepCollectionEquality().equals(other._body, _body)&&(identical(other.logs, logs) || other.logs == logs)&&const DeepCollectionEquality().equals(other._localeList, _localeList)); + return identical(this, other) || (other.runtimeType == runtimeType&&other is _DiscloudApiException&&(identical(other.code, code) || other.code == code)&&(identical(other.message, message) || other.message == message)&&(identical(other.path, path) || other.path == path)&&const DeepCollectionEquality().equals(other.body, _body)&&(identical(other.logs, logs) || other.logs == logs)&&const DeepCollectionEquality().equals(other.localeList, _localeList)); } @override -int get hashCode => Object.hash(runtimeType,code,message,path,const DeepCollectionEquality().hash(_body),logs,const DeepCollectionEquality().hash(_localeList)); +int get hashCode { + return Object.hash(runtimeType,code,message,path,const DeepCollectionEquality().hash(_body),logs,const DeepCollectionEquality().hash(_localeList)); +} @override String toString() { - return 'DiscloudApiException(code: $code, message: $message, path: $path, body: $body, logs: $logs, localeList: $localeList)'; + return 'DiscloudApiException(code: $code, message: $message, path: $path, body: $body, logs: $logs, localeList: $localeList)'; }