diff --git a/README.md b/README.md index 42f472b..f951e86 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ flutter pub run build_runner build --delete-conflicting-outputs~ ## flutter打包 ``` -flutter build apk --build-name 2.0.3 --build-number 203 +flutter build apk --build-name 2.1.2 --build-number 212 --build-name为版本号(展示) --build-number为版本号(内部比较) ``` diff --git a/android/app/src/main/kotlin/com/example/pj_supermarket_cloud/KioskModeManager.kt b/android/app/src/main/kotlin/com/example/pj_supermarket_cloud/KioskModeManager.kt index abbcc95..a071ce7 100644 --- a/android/app/src/main/kotlin/com/example/pj_supermarket_cloud/KioskModeManager.kt +++ b/android/app/src/main/kotlin/com/example/pj_supermarket_cloud/KioskModeManager.kt @@ -178,6 +178,38 @@ object KioskModeManager { return provisionResult(false, code, message) } + /** + * 由 Device Owner 应用自身解除设备所有者身份,使本应用恢复为普通应用、可正常卸载。 + * + * 仅在用户主动触发后执行:先关闭自动进入并退出当前 Lock Task,再清除 Owner 身份。 + * 清除成功后 Kiosk、开机自启能力随之失效,需重新 Root 配置才能恢复。 + */ + fun clearDeviceOwner(activity: Activity): Map { + val policyManager = policyManager(activity) + if (!policyManager.isDeviceOwnerApp(activity.packageName)) { + return provisionResult(false, "NOT_OWNER", "当前应用不是 Device Owner,无需解除") + } + val autoEnterWasEnabled = isAutoEnterEnabled(activity) + preferences(activity).edit().putBoolean(AUTO_ENTER_ENABLED_KEY, false).commit() + exitCurrentKiosk(activity) + return try { + @Suppress("DEPRECATION") + policyManager.clearDeviceOwnerApp(activity.packageName) + if (policyManager.isDeviceOwnerApp(activity.packageName)) { + // 厂商固件可能静默拒绝清除;回滚自动进入配置并返回明确错误。 + preferences(activity).edit() + .putBoolean(AUTO_ENTER_ENABLED_KEY, autoEnterWasEnabled).commit() + provisionResult(false, "OEM_REFUSED", "系统拒绝解除 Device Owner,请恢复出厂设置处理") + } else { + provisionResult(true, "OK", "Device Owner 已解除") + } + } catch (error: Exception) { + preferences(activity).edit() + .putBoolean(AUTO_ENTER_ENABLED_KEY, autoEnterWasEnabled).commit() + provisionResult(false, "CLEAR_FAILED", error.message ?: "解除 Device Owner 失败") + } + } + /** 窗口重新获得焦点时恢复 Kiosk 系统栏策略,防止临时系统界面留下可退出入口。 */ fun reapplySystemBars(activity: Activity) { if (isKioskActive(activity)) hideSystemBars(activity) diff --git a/android/app/src/main/kotlin/com/example/pj_supermarket_cloud/MainActivity.kt b/android/app/src/main/kotlin/com/example/pj_supermarket_cloud/MainActivity.kt index 4c8a358..27beb4e 100644 --- a/android/app/src/main/kotlin/com/example/pj_supermarket_cloud/MainActivity.kt +++ b/android/app/src/main/kotlin/com/example/pj_supermarket_cloud/MainActivity.kt @@ -146,6 +146,11 @@ class MainActivity : FlutterActivity() { } } "exitKioskToHome" -> result.success(KioskModeManager.exitToHome(this)) + "clearKioskDeviceOwner" -> result.success( + // 清除必须先在 UI 线程退出 Lock Task,操作本身是快速本地调用。 + KioskModeManager.clearDeviceOwner(this) + + ("status" to KioskModeManager.status(this)) + ) "validateApk" -> { val path = call.argument("path") val expectedVersionCode = call.argument("expectedVersionCode")?.toLong() diff --git a/lib/common/models/database/database_enum_models.dart b/lib/common/models/database/database_enum_models.dart index 4f9e1ef..70fde92 100644 --- a/lib/common/models/database/database_enum_models.dart +++ b/lib/common/models/database/database_enum_models.dart @@ -197,6 +197,7 @@ enum ProductHourType implements BaseEnum { enum WalletType implements BaseEnum { EAT("1", "饭卡钱包"), PAY("2", "消费钱包"), + TOPUP("3", "充值钱包"), ; @override diff --git a/lib/common/models/manage/face_sync_models.dart b/lib/common/models/manage/face_sync_models.dart index 84e071a..324ff89 100644 --- a/lib/common/models/manage/face_sync_models.dart +++ b/lib/common/models/manage/face_sync_models.dart @@ -71,6 +71,25 @@ class FaceSyncSummary { } } +/// 人脸同步过程上报的最新进度快照,供手动同步界面展示进度条。 +class FaceSyncProgress { + /// 创建进度快照;[total] 在清单分页获取阶段为空,比对处理阶段为已知总数。 + const FaceSyncProgress({required this.processed, this.total}); + + /// 已获取的清单条数或已处理的记录数,含义随阶段变化但始终单调递增。 + final int processed; + + /// 本次需要处理的总记录数;清单仍在分页获取时尚不确定,为空。 + final int? total; + + /// 已处理记录占比;总数未知或非法时返回空,由调用方展示不定态样式。 + double? get ratio { + final value = total; + if (value == null || value <= 0) return null; + return (processed / value).clamp(0.0, 1.0); + } +} + /// V3 快照不完整、游标倒退或样本标识冲突时抛出的整次同步异常。 class FaceSyncSnapshotException implements Exception { /// 使用不包含图片地址和人员信息的安全摘要创建快照异常。 diff --git a/lib/common/services/face_recognition_session_service.dart b/lib/common/services/face_recognition_session_service.dart index 73bd17e..05f8c5f 100644 --- a/lib/common/services/face_recognition_session_service.dart +++ b/lib/common/services/face_recognition_session_service.dart @@ -391,8 +391,20 @@ class FaceRecognitionSessionService extends GetxService { }) async { final sessionId = _activeSessionId; final scene = _activeScene; - if (sessionId == null || scene == null || !AppSubScreenTool.isAvailable) { - return; + if (sessionId == null || scene == null) return; + if (!AppSubScreenTool.isAvailable) { + // isAvailable 启动默认 false,全工程只有每分钟的设备状态定时任务会把它 + // 置 true;收银页进页直接调用插件 doubleScreenShow 并不经过本工具。若在 + // 首次定时探测前发起人脸支付,本会话全部副屏消息会被这里静默丢弃, + // 副屏便一直停留在购物车列表。发送前按需补一次轻量探测自愈该盲区。 + await AppSubScreenTool.refreshAvailability(reportStatus: false); + if (!AppSubScreenTool.isAvailable) { + logger.w( + '|人脸识别|副屏不可用,跳过副屏状态通知|sessionId:$sessionId|' + 'action:${action.code}|', + ); + return; + } } if (_lastViceAction == action && _lastViceMessage == message) return; final revision = ++_revision; diff --git a/lib/common/utils/app/app_runtime_tool.dart b/lib/common/utils/app/app_runtime_tool.dart index be1104e..1eff00f 100644 --- a/lib/common/utils/app/app_runtime_tool.dart +++ b/lib/common/utils/app/app_runtime_tool.dart @@ -462,6 +462,25 @@ abstract class AppRuntimeTool { } } + /// 用户确认后解除当前应用的 Device Owner 身份;解除后恢复为普通应用、可正常卸载。 + static Future clearKioskDeviceOwner() async { + try { + final data = await _channel.invokeMapMethod( + 'clearKioskDeviceOwner', + ); + final cleared = AppKioskProvisionResult.fromMap(data); + _kioskStatus = cleared.status; + return cleared; + } on PlatformException catch (error) { + return AppKioskProvisionResult( + success: false, + code: error.code, + message: error.message ?? '解除 Device Owner 失败,请稍后重试', + status: _kioskStatus, + ); + } + } + /// 执行带原生 5 秒超时的 `su -c id`,只有退出码为零且输出确认 uid=0 才返回可用。 static Future checkRootAccess() async { try { diff --git a/lib/common/utils/sync/sync_check_tool.dart b/lib/common/utils/sync/sync_check_tool.dart index ec34db6..1c48bf7 100644 --- a/lib/common/utils/sync/sync_check_tool.dart +++ b/lib/common/utils/sync/sync_check_tool.dart @@ -34,6 +34,9 @@ class SyncCheckTool { /// 最近一次终端日志上传统计,供设置页展示扫描、跳过、成功和失败数量。 final terminalLogSummary = const TerminalLogUploadSummary().obs; + /// 人脸同步任务执行中的最新进度快照,任务结束后清空;仅驱动界面展示。 + final departmentFaceSyncProgress = Rxn(); + /// 当前进程内 Cron 调度器;任务全部停止后置空并关闭其内部计时资源。 Cron? _cron; @@ -728,6 +731,9 @@ class SyncCheckTool { } } finally { if (heavy) SyncIdleTool.instance.endHeavyTask(); + if (type == ScheduledTaskType.departmentFaceSync) { + departmentFaceSyncProgress.value = null; + } runningTasks.remove(type); final nextRequest = _pendingRequests[type]; if (nextRequest != null) { @@ -835,6 +841,12 @@ class SyncCheckTool { final summary = await SyncFaceTool.sync( mode: mode, userIds: request.faceUserIds, + onProgress: (processed, total) { + departmentFaceSyncProgress.value = FaceSyncProgress( + processed: processed, + total: total, + ); + }, ); if (summary.changed > 0 && request.triggerType == ScheduledTaskTriggerType.mqtt && diff --git a/lib/common/values/constants.dart b/lib/common/values/constants.dart index ec51800..3fc418d 100644 --- a/lib/common/values/constants.dart +++ b/lib/common/values/constants.dart @@ -25,9 +25,9 @@ class Constants { static const pwdEncKey = 'pigxpigxpigxpigx'; /// 服务 url 线上 - // static const apiUrl = 'https://www.pjzhhq.cn/api'; + static const apiUrl = 'https://www.pjzhhq.cn/api'; - static const apiUrl = 'https://dzc-test-1.fy.takin.cc'; + // static const apiUrl = 'https://dzc-test-1.fy.takin.cc'; /// 静态资源 url static const ossUrl = apiUrl; diff --git a/lib/common/widgets/order/order_caneen_common.dart b/lib/common/widgets/order/order_caneen_common.dart index 76cdff4..ef43829 100644 --- a/lib/common/widgets/order/order_caneen_common.dart +++ b/lib/common/widgets/order/order_caneen_common.dart @@ -5,6 +5,10 @@ import 'package:forui/forui.dart'; import 'package:pj_supermarket_cloud/common/index.dart'; /// 商品卡片 +/// +/// 图片用 Expanded 弹性占满剩余高度,下方文字按自然高度排列, +/// 全局字号(typography.scale)变化时由图片伸缩吸收,不会再溢出。 +/// 要求父级提供有界高度(网格 mainAxisExtent / 显式 .height)。 Widget orderCaneenSpuCard( BuildContext context, { String? image = "", @@ -12,24 +16,30 @@ Widget orderCaneenSpuCard( num price = 0.0, }) { final theme = FTheme.of(context); - return FCard( - style: theme.cardStyle.copyWith( - contentStyle: theme.cardStyle.contentStyle.copyWith( - padding: EdgeInsets.all(0), + return FCard.raw( + style: theme.cardStyle, + child: [ + Expanded( + child: ClipRRect( + borderRadius: theme.style.borderRadius, + child: appImg(image, width: double.infinity, height: double.infinity), + ), ), - ), - image: appImg(image, width: double.infinity, height: 150.h), - subtitle: [ + // 与 FCard 内置图文间距一致(常量 10,不缩放) + const SizedBox(height: 10), Text( name, maxLines: 2, overflow: TextOverflow.ellipsis, + textAlign: TextAlign.center, style: theme.typography.base.copyWith(height: 1), ), SizedBox(height: 5.h), appPrice(context, price), + // 底部余量,边框完整包住价格 + SizedBox(height: 8.h), ] .toColumn(crossAxisAlignment: CrossAxisAlignment.center) .width(double.infinity), - ).width(double.infinity); + ); } diff --git a/lib/common/widgets/order/select_pay_type_dialog.dart b/lib/common/widgets/order/select_pay_type_dialog.dart index e2ab0ba..33ffc2c 100644 --- a/lib/common/widgets/order/select_pay_type_dialog.dart +++ b/lib/common/widgets/order/select_pay_type_dialog.dart @@ -2902,6 +2902,12 @@ class _PersonWalletSection extends StatelessWidget { return wallets.first; } + /// 按后端钱包类型枚举编码解析展示名;食堂内嵌钱包没有类型编码,按饭卡展示。 + String _walletTypeName(String? walletTypeUniqueCode) { + if (walletTypeUniqueCode == null) return WalletType.EAT.title; + return WalletType.values.fromCode(walletTypeUniqueCode)?.title ?? '未知钱包'; + } + /// 构建钱包摘要和账户列表,冻结及余额不足都使用文字与颜色双重提示。 @override Widget build(BuildContext context) { @@ -2928,6 +2934,7 @@ class _PersonWalletSection extends StatelessWidget { ? [ _PersonWalletRow( key: const ValueKey('recognized-user-embedded-wallet'), + typeName: _walletTypeName(null), balance: user.walletBalance, cardNumber: user.walletCardNumber, frozen: user.walletIsFreeze, @@ -2939,6 +2946,7 @@ class _PersonWalletSection extends StatelessWidget { .map( (wallet) => _PersonWalletRow( key: ValueKey('recognized-user-wallet-${wallet.id}'), + typeName: _walletTypeName(wallet.walletTypeUniqueCode), balance: wallet.balance, cardNumber: wallet.cardNumber, frozen: wallet.isFreeze, @@ -2992,7 +3000,8 @@ class _PersonWalletSection extends StatelessWidget { ].toRow(crossAxisAlignment: CrossAxisAlignment.end), SizedBox(height: 8.h), Text( - '饭卡 ${_maskCardNumber(cardNumber)}', + '${_walletTypeName(activeWallet?.walletTypeUniqueCode)}' + ' ${_maskCardNumber(cardNumber)}', style: theme.typography.sm.copyWith(color: XfjDesignTokens.muted), ), SizedBox(height: 12.h), @@ -3031,6 +3040,7 @@ class _PersonWalletSection extends StatelessWidget { class _PersonWalletRow extends StatelessWidget { /// 创建一个只读或可切换的钱包账户行。 const _PersonWalletRow({ + required this.typeName, required this.balance, required this.cardNumber, required this.frozen, @@ -3039,6 +3049,9 @@ class _PersonWalletRow extends StatelessWidget { super.key, }); + /// 钱包类型名称,如饭卡钱包、消费钱包、充值钱包。 + final String typeName; + /// 钱包余额,单位为分;为空表示接口未返回。 final int? balance; @@ -3076,13 +3089,20 @@ class _PersonWalletRow extends StatelessWidget { ), SizedBox(width: 9.w), [ - Text( - _maskCardNumber(cardNumber), - style: theme.typography.sm.copyWith( - color: XfjDesignTokens.ink, - fontWeight: FontWeight.w700, + [ + Text( + typeName, + style: theme.typography.sm.copyWith( + color: XfjDesignTokens.ink, + fontWeight: FontWeight.w700, + ), ), - ), + SizedBox(width: 8.w), + Text( + _maskCardNumber(cardNumber), + style: theme.typography.xs.copyWith(color: XfjDesignTokens.muted), + ), + ].toRow(crossAxisAlignment: CrossAxisAlignment.center), Text( stateText, style: theme.typography.xs.copyWith(color: stateColor), diff --git a/lib/pages/canteen_product/view.dart b/lib/pages/canteen_product/view.dart index 926c459..a0a9a3d 100644 --- a/lib/pages/canteen_product/view.dart +++ b/lib/pages/canteen_product/view.dart @@ -89,38 +89,35 @@ class CanteenProductPage extends GetView { } Widget _buildSortProduct() { - return LayoutBuilder( - builder: (BuildContext _, BoxConstraints constraints) { - const spacing = 10; - const runSpacing = 10; - double maxHeight = constraints.maxHeight; - double maxWidth = constraints.maxWidth; - double itemWidth = (maxWidth - spacing * 6) / 7; - double itemHeight = (maxHeight - (runSpacing + 30) * 3) / 3; - return Obx( - () => GridView.builder( - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 7, - mainAxisSpacing: 10.w, - crossAxisSpacing: 10.w, - childAspectRatio: 0.8, - ), - itemCount: controller.canteenSpuList.length, - itemBuilder: (context, index) { - final product = controller.canteenSpuList[index]; - return orderCaneenSpuCard( - context, - image: product.image, - name: product.name, - price: product.price, - ) - .width(itemWidth) - .height(itemHeight) - .onTap(() => controller.doProduct(product)); - }, - ), - ); - }, + final theme = FTheme.of(Get.context!); + // 卡片高度 = 图片 150.h + 图文间距 10 + 两行名称(base) + 间距 5.h + // + 价格行(xl) + 底部余量 8.h。字号受全局字号设置(typography.scale) + // 影响,必须运行时从主题读取,不能用固定常数。 + final cardHeight = 150.h + + 10 + + (theme.typography.base.fontSize ?? 16) * 2 + + 5.h + + (theme.typography.xl.fontSize ?? 20) + + 8.h; + return Obx( + () => GridView.builder( + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 7, + mainAxisSpacing: 10.w, + crossAxisSpacing: 10.w, + mainAxisExtent: cardHeight, + ), + itemCount: controller.canteenSpuList.length, + itemBuilder: (context, index) { + final product = controller.canteenSpuList[index]; + return orderCaneenSpuCard( + context, + image: product.image, + name: product.name, + price: product.price, + ).onTap(() => controller.doProduct(product)); + }, + ), ); } diff --git a/lib/pages/setting/controller.dart b/lib/pages/setting/controller.dart index 37211a2..abf681c 100644 --- a/lib/pages/setting/controller.dart +++ b/lib/pages/setting/controller.dart @@ -28,6 +28,9 @@ class SettingController extends GetxController { /// Root 一键配置 Device Owner 是否正在执行,命令期间禁止重复提交。 final kioskProvisioning = false.obs; + /// 解除 Device Owner 是否正在执行,防止连点重复触发清除。 + final kioskClearing = false.obs; + /// Kiosk 开关是否正在同步原生 Lock Task,防止连续点击形成状态反转。 final kioskSwitching = false.obs; @@ -653,6 +656,40 @@ class SettingController extends GetxController { } } + /// 经用户二次确认后解除 Device Owner;解除后本应用恢复为普通应用、可正常卸载。 + Future clearKioskDeviceOwner() async { + if (kioskClearing.value || !kioskStatus.value.deviceOwner) return; + final confirmed = await appMessageDialog( + Get.context!, + '解除后 Kiosk 锁定与开机自启立即失效,本应用恢复为普通应用,随后即可正常卸载。是否继续?', + ); + if (!confirmed) return; + + kioskClearing.value = true; + EasyLoading.show( + status: '正在解除设备所有者...', + maskType: EasyLoadingMaskType.black, + ); + try { + final result = await AppRuntimeTool.clearKioskDeviceOwner(); + kioskStatus.value = result.status; + if (result.success) { + kioskProvisionMessage.value = ''; + Toast.success(msg: '已解除设备所有者,现在可以正常卸载本应用'); + } else { + kioskProvisionMessage.value = result.message; + Toast.error(msg: result.message); + } + } catch (e, stack) { + logger.e('|$_tag|解除DeviceOwner失败error:$e|stack:$stack|'); + kioskProvisionMessage.value = '解除失败,请稍后重试'; + Toast.error(msg: kioskProvisionMessage.value); + } finally { + EasyLoading.dismiss(); + kioskClearing.value = false; + } + } + /// 切换主控手动硬件输入;虚拟机强制开启,开启前需操作员确认。 Future setManualHardwareInput(bool enabled) async { if (AppRuntimeTool.isEmulator && !enabled) { diff --git a/lib/pages/setting/face_manage_controller.dart b/lib/pages/setting/face_manage_controller.dart index aca391e..3c9677d 100644 --- a/lib/pages/setting/face_manage_controller.dart +++ b/lib/pages/setting/face_manage_controller.dart @@ -160,6 +160,7 @@ class FaceManageController extends GetxController { /// /// 队列会先避开支付、人脸会话和业务弹框;只有任务已经实际开始时才显示遮罩, /// 避免遮罩本身被空闲检测识别为业务占用而导致任务无法启动。 + /// 遮罩会跟随调度器上报的同步进度在转圈与百分比进度条之间切换。 Future asyncFace({bool isAll = false}) async { if (operationInProgress) return; final isNetwork = AppNetworkTool.isAutoNetworkMsg(); @@ -194,11 +195,26 @@ class FaceManageController extends GetxController { ); await Future.delayed(Duration.zero); var overlayVisible = false; + Worker? progressWorker; if (scheduler.runningTasks.contains(ScheduledTaskType.departmentFaceSync)) { overlayVisible = true; - EasyLoading.show( - status: '同步中...', - maskType: EasyLoadingMaskType.black, + _showFaceSyncProgress(null); + var lastPaintAt = DateTime.now(); + progressWorker = ever( + scheduler.departmentFaceSyncProgress, + (progress) { + if (progress == null) return; + final finished = + progress.total != null && progress.processed >= progress.total!; + // 跳过等记录处理极快,逐条重绘 loading 会掉帧,按 100 毫秒节流收敛。 + if (!finished && + DateTime.now().difference(lastPaintAt) < + const Duration(milliseconds: 100)) { + return; + } + lastPaintAt = DateTime.now(); + _showFaceSyncProgress(progress); + }, ); } try { @@ -220,12 +236,32 @@ class FaceManageController extends GetxController { Toast.error(msg: '同步人脸失败,请稍后重试'); logger.e('|人脸管理|同步失败error:$e|stack:$stack|'); } finally { + progressWorker?.dispose(); currentPage.value = 1; isSyncing.value = false; if (overlayVisible) EasyLoading.dismiss(); } } + /// 按最新进度刷新同步遮罩:清单分页阶段用转圈,比对阶段切为百分比进度条。 + void _showFaceSyncProgress(FaceSyncProgress? progress) { + final ratio = progress?.ratio; + if (ratio == null || progress == null) { + EasyLoading.show( + status: progress == null + ? '同步中...' + : '正在获取人脸清单 ${progress.processed} 条', + maskType: EasyLoadingMaskType.black, + ); + return; + } + EasyLoading.showProgress( + ratio, + status: '人脸同步中 ${progress.processed}/${progress.total}', + maskType: EasyLoadingMaskType.black, + ); + } + /// 重新读取 Android 人脸配置并按新阈值立即重查低质量分类。 Future refreshQualityThreshold() async { try { diff --git a/lib/pages/setting/widgets/setting_baseInfo.dart b/lib/pages/setting/widgets/setting_baseInfo.dart index 807cf77..adc4477 100644 --- a/lib/pages/setting/widgets/setting_baseInfo.dart +++ b/lib/pages/setting/widgets/setting_baseInfo.dart @@ -275,6 +275,18 @@ Widget settingBaseInfo(BuildContext context) { ), ), ), + if (controller.kioskStatus.value.deviceOwner) + SettingInfoRow( + icon: FAssets.icons.shieldAlert, + label: '解除设备所有者', + subtitle: '解除后 Kiosk 锁定与开机自启立即失效,本应用恢复为普通应用,可正常卸载', + trailing: SettingActionButton( + label: controller.kioskClearing.value ? '正在解除' : '解除并允许卸载', + danger: true, + enabled: !controller.kioskClearing.value, + onTap: controller.clearKioskDeviceOwner, + ), + ), SettingInfoRow( icon: FAssets.icons.keyboard, label: '设置为主控', diff --git a/pubspec.lock b/pubspec.lock index 076a952..8bce699 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -6,7 +6,7 @@ packages: description: name: _fe_analyzer_shared sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "76.0.0" _macros: @@ -19,7 +19,7 @@ packages: description: name: analyzer sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "6.11.0" android_id: @@ -27,7 +27,7 @@ packages: description: name: android_id sha256: f6489be4c4380cdb55a99db5b03764d936e84e9d5258a26571aa500bd1159fe0 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.4.1" archive: @@ -35,7 +35,7 @@ packages: description: name: archive sha256: a96e8b390886ee8abb49b7bd3ac8df6f451c621619f52a26e815fdcf568959ff - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.0.9" args: @@ -43,7 +43,7 @@ packages: description: name: args sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.7.0" async: @@ -51,7 +51,7 @@ packages: description: name: async sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.11.0" background_downloader: @@ -59,7 +59,7 @@ packages: description: name: background_downloader sha256: "0873a939f5a301872cb7614e12f759fbccef2e3ed0d0d37b540dde7611275b12" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "7.12.3" barcode: @@ -67,7 +67,7 @@ packages: description: name: barcode sha256: "7b6729c37e3b7f34233e2318d866e8c48ddb46c1f7ad01ff7bb2a8de1da2b9f4" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.9" bidi: @@ -75,7 +75,7 @@ packages: description: name: bidi sha256: "77f475165e94b261745cf1032c751e2032b8ed92ccb2bf5716036db79320637d" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.13" boolean_selector: @@ -83,7 +83,7 @@ packages: description: name: boolean_selector sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.1" build: @@ -91,7 +91,7 @@ packages: description: name: build sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.4.2" build_config: @@ -99,7 +99,7 @@ packages: description: name: build_config sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.2" build_daemon: @@ -107,7 +107,7 @@ packages: description: name: build_daemon sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.0.4" build_resolvers: @@ -115,7 +115,7 @@ packages: description: name: build_resolvers sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.4.4" build_runner: @@ -123,7 +123,7 @@ packages: description: name: build_runner sha256: "74691599a5bc750dc96a6b4bfd48f7d9d66453eab04c7f4063134800d6a5c573" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.4.14" build_runner_core: @@ -131,7 +131,7 @@ packages: description: name: build_runner_core sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "8.0.0" built_collection: @@ -139,7 +139,7 @@ packages: description: name: built_collection sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "5.1.1" built_value: @@ -147,7 +147,7 @@ packages: description: name: built_value sha256: f87ea98192116f7093cb214551ce1929caae0681fdba282b3d8b4462adee7bb7 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "8.13.0" cached_network_image: @@ -155,7 +155,7 @@ packages: description: name: cached_network_image sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.4.1" cached_network_image_platform_interface: @@ -163,7 +163,7 @@ packages: description: name: cached_network_image_platform_interface sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.1.1" cached_network_image_web: @@ -171,7 +171,7 @@ packages: description: name: cached_network_image_web sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.1" characters: @@ -179,7 +179,7 @@ packages: description: name: characters sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.0" charcode: @@ -187,7 +187,7 @@ packages: description: name: charcode sha256: fb0f1107cac15a5ea6ef0a6ef71a807b9e4267c713bb93e00e92d737cc8dbd8a - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.4.0" checked_yaml: @@ -195,7 +195,7 @@ packages: description: name: checked_yaml sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.3" clock: @@ -203,7 +203,7 @@ packages: description: name: clock sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.1" code_builder: @@ -211,7 +211,7 @@ packages: description: name: code_builder sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.10.1" collection: @@ -219,7 +219,7 @@ packages: description: name: collection sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.19.0" common_utils: @@ -227,7 +227,7 @@ packages: description: name: common_utils sha256: c26884339b13ff99b0739e56f4b02090c84054ed9dd3a045435cd24e7b99c2c1 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" connectivity_plus: @@ -235,7 +235,7 @@ packages: description: name: connectivity_plus sha256: b5e72753cf63becce2c61fd04dfe0f1c430cc5278b53a1342dc5ad839eab29ec - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "6.1.5" connectivity_plus_platform_interface: @@ -243,7 +243,7 @@ packages: description: name: connectivity_plus_platform_interface sha256: "3c09627c536d22fd24691a905cdd8b14520de69da52c7a97499c8be5284a32ed" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" convert: @@ -251,7 +251,7 @@ packages: description: name: convert sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.1.2" cron: @@ -259,7 +259,7 @@ packages: description: name: cron sha256: "2af3de2cabcc81346c00ff9db06296cdaf37ad17bd6f97fb63777a9ddefcacf3" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.6.2" crypto: @@ -267,7 +267,7 @@ packages: description: name: crypto sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.7" csslib: @@ -275,7 +275,7 @@ packages: description: name: csslib sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.2" cupertino_icons: @@ -283,7 +283,7 @@ packages: description: name: cupertino_icons sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.8" dart_style: @@ -291,7 +291,7 @@ packages: description: name: dart_style sha256: "7306ab8a2359a48d22310ad823521d723acfed60ee1f7e37388e8986853b6820" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.3.8" data_table_2: @@ -299,7 +299,7 @@ packages: description: name: data_table_2 sha256: cb31d465dcf1e1598a662d06d3d2c16c73700ae9e837a3d91588f1dda7519abc - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.7.2" dbus: @@ -307,7 +307,7 @@ packages: description: name: dbus sha256: d0c98dcd4f5169878b6cf8f6e0a52403a9dff371a3e2f019697accbf6f44a270 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.7.12" decimal: @@ -315,7 +315,7 @@ packages: description: name: decimal sha256: "2c3c8b74f2948066d3f42585477aec9cfc48fefd7a723a4d4274a6c71a5c0df7" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.2.6" dio: @@ -323,7 +323,7 @@ packages: description: name: dio sha256: "5598aa796bbf4699afd5c67c0f5f6e2ed542afc956884b9cd58c306966efc260" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "5.7.0" dio_web_adapter: @@ -331,7 +331,7 @@ packages: description: name: dio_web_adapter sha256: "33259a9276d6cea88774a0000cfae0d861003497755969c92faa223108620dc8" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.0" drago_pos_printer: @@ -339,7 +339,7 @@ packages: description: name: drago_pos_printer sha256: "8b601221dcf804f662228a6ae68d0c644543b6df0026e40808fc0fbf2c19871c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.0" drago_usb_printer: @@ -354,7 +354,7 @@ packages: description: name: ducafe_ui_core sha256: "92ff9b05654e1b5ae2adbeac7227c669655da73f134bede75ad9aa1c505af904" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.6" dylib: @@ -362,7 +362,7 @@ packages: description: name: dylib sha256: bf609b3eb6492a3309b3d1dbe8f83a4031de5535dd7686be33487051cc760bb0 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.3.3" equatable: @@ -370,7 +370,7 @@ packages: description: name: equatable sha256: "3bce007a596ff8b3119c45d68aaef631272537c03d30e5d4534dd24bf4c5eaa2" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" event_bus: @@ -378,7 +378,7 @@ packages: description: name: event_bus sha256: "1a55e97923769c286d295240048fc180e7b0768902c3c2e869fe059aafa15304" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.1" external_path: @@ -386,7 +386,7 @@ packages: description: name: external_path sha256: "68a18a2aa51ec012d7013ea2a80305dc5372f3577a2bbcc7dcc5550b25a5a73b" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.0" fake_async: @@ -394,7 +394,7 @@ packages: description: name: fake_async sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.1" ffi: @@ -402,7 +402,7 @@ packages: description: name: ffi sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.3" file: @@ -410,7 +410,7 @@ packages: description: name: file sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "7.0.1" fixnum: @@ -418,7 +418,7 @@ packages: description: name: fixnum sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.1" floor: @@ -426,7 +426,7 @@ packages: description: name: floor sha256: "52a8eac2c8d274e7c0c54251226f59786bb5b749365a2d8537d8095aa5132d92" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.4.2" floor_annotation: @@ -434,7 +434,7 @@ packages: description: name: floor_annotation sha256: a40949580a7ab0eee572686e2d3b1638fd6bd6a753e661d792ab4236b365b23b - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.5.0" floor_generator: @@ -442,7 +442,7 @@ packages: description: name: floor_generator sha256: "1499b3ab878a807e6fbe6f140dc014124845cd1df3090a113aae5fa7577a1e77" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.5.0" flutter: @@ -455,7 +455,7 @@ packages: description: name: flutter_cache_manager sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.4.1" flutter_easyloading: @@ -463,7 +463,7 @@ packages: description: name: flutter_easyloading sha256: ba21a3c883544e582f9cc455a4a0907556714e1e9cf0eababfcb600da191d17c - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.5" flutter_html: @@ -471,7 +471,7 @@ packages: description: name: flutter_html sha256: "38a2fd702ffdf3243fb7441ab58aa1bc7e6922d95a50db76534de8260638558d" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.0" flutter_libserialport: @@ -479,7 +479,7 @@ packages: description: name: flutter_libserialport sha256: d193b5ac819db6540d20cc8d20d9f5ec9e3396edb4d2c4a23c97863fa9132336 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.5.0" flutter_lints: @@ -487,7 +487,7 @@ packages: description: name: flutter_lints sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "5.0.0" flutter_localizations: @@ -500,7 +500,7 @@ packages: description: name: flutter_spinkit sha256: "77850df57c00dc218bfe96071d576a8babec24cf58b2ed121c83cca4a2fdce7f" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "5.2.2" flutter_subscreen_plugin: @@ -508,7 +508,7 @@ packages: description: name: flutter_subscreen_plugin sha256: b89bc8ba87956d441726557ece140ccea418ca4569e8f06e028e1017740ff6f3 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.2+5" flutter_svg: @@ -516,7 +516,7 @@ packages: description: name: flutter_svg sha256: cd57f7969b4679317c17af6fd16ee233c1e60a82ed209d8a475c54fd6fd6f845 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.0" flutter_test: @@ -529,7 +529,7 @@ packages: description: name: flutter_tts sha256: baa3cb6b4990318460fe28bfa8c7869399e97223971532c02bd97c5e876aa3c5 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.2.2" flutter_web_plugins: @@ -542,7 +542,7 @@ packages: description: name: fluttertoast sha256: "90778fe0497fe3a09166e8cf2e0867310ff434b794526589e77ec03cf08ba8e8" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "8.2.14" forui: @@ -550,7 +550,7 @@ packages: description: name: forui sha256: "3ebbf39d57f0667afc47cbab86b0afe679bba2173a51afc21855053663dc5062" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.9.1+1" forui_assets: @@ -558,7 +558,7 @@ packages: description: name: forui_assets sha256: df0f24b47ff0c3e16811bb4ad597b426b8e1a62fcf2fea7d95923ef4d6e8aa2c - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.9.1" frontend_server_client: @@ -566,7 +566,7 @@ packages: description: name: frontend_server_client sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.0.0" gbk_codec: @@ -574,7 +574,7 @@ packages: description: name: gbk_codec sha256: "3af5311fc9393115e3650ae6023862adf998051a804a08fb804f042724999f61" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.4.0" get: @@ -582,7 +582,7 @@ packages: description: name: get sha256: "5ed34a7925b85336e15d472cc4cfe7d9ebf4ab8e8b9f688585bf6b50f4c3d79a" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.7.3" glob: @@ -590,7 +590,7 @@ packages: description: name: glob sha256: "218aeb56050c714f62a3182775320dfa04602b55074873e24e31bbd39bda96fb" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.0" google_fonts: @@ -598,7 +598,7 @@ packages: description: name: google_fonts sha256: df9763500dadba0155373e9cb44e202ce21bd9ed5de6bdbd05c5854e86839cb8 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "6.3.0" graphs: @@ -606,7 +606,7 @@ packages: description: name: graphs sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.3.2" hex: @@ -614,7 +614,7 @@ packages: description: name: hex sha256: "4e7cd54e4b59ba026432a6be2dd9d96e4c5205725194997193bf871703b82c4a" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.2.0" html: @@ -622,7 +622,7 @@ packages: description: name: html sha256: "1fc58edeaec4307368c60d59b7e15b9d658b57d7f3125098b6294153c75337ec" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.15.5" http: @@ -630,7 +630,7 @@ packages: description: name: http sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.6.0" http_multi_server: @@ -638,7 +638,7 @@ packages: description: name: http_multi_server sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.2.2" http_parser: @@ -646,7 +646,7 @@ packages: description: name: http_parser sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.1.2" icons_launcher: @@ -654,7 +654,7 @@ packages: description: name: icons_launcher sha256: a7c83fbc837dc6f81944ef35c3756f533bb2aba32fcca5cbcdb2dbcd877d5ae9 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.0" image: @@ -662,7 +662,7 @@ packages: description: name: image sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.5.4" intl: @@ -670,7 +670,7 @@ packages: description: name: intl sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.19.0" io: @@ -678,7 +678,7 @@ packages: description: name: io sha256: "2635216ca6a737e60de577ffa1a48a0bec76ca8a62917cfc1bb88c14c570646f" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.0" js: @@ -686,7 +686,7 @@ packages: description: name: js sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.7.1" json_annotation: @@ -694,7 +694,7 @@ packages: description: name: json_annotation sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.9.0" json_serializable: @@ -702,7 +702,7 @@ packages: description: name: json_serializable sha256: ea1432d167339ea9b5bb153f0571d0039607a873d6e04e0117af043f14a1fd4b - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "6.8.0" leak_tracker: @@ -710,7 +710,7 @@ packages: description: name: leak_tracker sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "10.0.7" leak_tracker_flutter_testing: @@ -718,7 +718,7 @@ packages: description: name: leak_tracker_flutter_testing sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.8" leak_tracker_testing: @@ -726,7 +726,7 @@ packages: description: name: leak_tracker_testing sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.1" libserialport: @@ -734,7 +734,7 @@ packages: description: name: libserialport sha256: "392e1592def65282429832ec66fa25e9e163d3b37716b97691482e2406720727" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.3.0+1" lints: @@ -742,7 +742,7 @@ packages: description: name: lints sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "5.1.1" list_counter: @@ -750,7 +750,7 @@ packages: description: name: list_counter sha256: c447ae3dfcd1c55f0152867090e67e219d42fe6d4f2807db4bbe8b8d69912237 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.2" logger: @@ -758,7 +758,7 @@ packages: description: name: logger sha256: af05cc8714f356fd1f3888fb6741cbe9fbe25cdb6eedbab80e1a6db21047d4a4 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.3.0" logging: @@ -766,7 +766,7 @@ packages: description: name: logging sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.0" macros: @@ -774,7 +774,7 @@ packages: description: name: macros sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.1.3-main.0" matcher: @@ -782,7 +782,7 @@ packages: description: name: matcher sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.12.16+1" material_color_utilities: @@ -790,7 +790,7 @@ packages: description: name: material_color_utilities sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.11.1" meta: @@ -798,7 +798,7 @@ packages: description: name: meta sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.15.0" mime: @@ -806,7 +806,7 @@ packages: description: name: mime sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.6" mqtt_client: @@ -814,7 +814,7 @@ packages: description: name: mqtt_client sha256: "37aae360fac0b3322cb37267696c1535e1ad2984a13064d877273ffe4b16ca7a" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "10.5.1" network_info_plus: @@ -822,7 +822,7 @@ packages: description: name: network_info_plus sha256: f926b2ba86aa0086a0dfbb9e5072089bc213d854135c1712f1d29fc89ba3c877 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "6.1.4" network_info_plus_platform_interface: @@ -830,7 +830,7 @@ packages: description: name: network_info_plus_platform_interface sha256: "7e7496a8a9d8136859b8881affc613c4a21304afeb6c324bcefc4bd0aff6b94b" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.2" nitrogen_flutter_svg: @@ -838,7 +838,7 @@ packages: description: name: nitrogen_flutter_svg sha256: "103313861b182fd4069bac896519b1ee64cbe1af0023d818f6c300b81c16853c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.4.0" nitrogen_types: @@ -846,7 +846,7 @@ packages: description: name: nitrogen_types sha256: "5d4ec453aea14e34607bc6021ff1381192e8fcd8541bf103638baa4d013e668f" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.4.0+1" nm: @@ -854,7 +854,7 @@ packages: description: name: nm sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.5.0" number_pagination: @@ -862,7 +862,7 @@ packages: description: name: number_pagination sha256: "75d3a28616196e7c8df431d0fb7c48e811e462155f4cf3b5b4167b3408421327" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.6" octo_image: @@ -870,7 +870,7 @@ packages: description: name: octo_image sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" package_config: @@ -878,7 +878,7 @@ packages: description: name: package_config sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.0" package_info_plus: @@ -886,7 +886,7 @@ packages: description: name: package_info_plus sha256: "67eae327b1b0faf761964a1d2e5d323c797f3799db0e85aa232db8d9e922bc35" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "8.2.1" package_info_plus_platform_interface: @@ -894,7 +894,7 @@ packages: description: name: package_info_plus_platform_interface sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.2.1" path: @@ -902,7 +902,7 @@ packages: description: name: path sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.9.0" path_parsing: @@ -910,7 +910,7 @@ packages: description: name: path_parsing sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.0" path_provider: @@ -918,7 +918,7 @@ packages: description: name: path_provider sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.5" path_provider_android: @@ -926,7 +926,7 @@ packages: description: name: path_provider_android sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.17" path_provider_foundation: @@ -934,7 +934,7 @@ packages: description: name: path_provider_foundation sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.4.1" path_provider_linux: @@ -942,7 +942,7 @@ packages: description: name: path_provider_linux sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.1" path_provider_platform_interface: @@ -950,7 +950,7 @@ packages: description: name: path_provider_platform_interface sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.2" path_provider_windows: @@ -958,7 +958,7 @@ packages: description: name: path_provider_windows sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.3.0" pdf: @@ -966,7 +966,7 @@ packages: description: name: pdf sha256: "28eacad99bffcce2e05bba24e50153890ad0255294f4dd78a17075a2ba5c8416" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.11.3" pdf_widget_wrapper: @@ -974,7 +974,7 @@ packages: description: name: pdf_widget_wrapper sha256: c930860d987213a3d58c7ec3b7ecf8085c3897f773e8dc23da9cae60a5d6d0f5 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.4" permission_handler: @@ -982,7 +982,7 @@ packages: description: name: permission_handler sha256: "59adad729136f01ea9e35a48f5d1395e25cba6cea552249ddbe9cf950f5d7849" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "11.4.0" permission_handler_android: @@ -990,7 +990,7 @@ packages: description: name: permission_handler_android sha256: d3971dcdd76182a0c198c096b5db2f0884b0d4196723d21a866fc4cdea057ebc - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "12.1.0" permission_handler_apple: @@ -998,7 +998,7 @@ packages: description: name: permission_handler_apple sha256: f49cb15a064ea9d974fc7fbb302099353b7b170d07284e86e264561579e5bcf8 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "9.6.1" permission_handler_html: @@ -1006,7 +1006,7 @@ packages: description: name: permission_handler_html sha256: "6ea98b3f17f60d3b527f2647ed2ab4dc0f6bfe25b22cb1c363f5d8f62252f6ac" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.1.4+1" permission_handler_platform_interface: @@ -1014,7 +1014,7 @@ packages: description: name: permission_handler_platform_interface sha256: ed86a61c190258fdd65de395ea0632822e3415c1faec38eae0c31b479c28a531 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.4.1" permission_handler_windows: @@ -1022,7 +1022,7 @@ packages: description: name: permission_handler_windows sha256: caeae01858a0a7d2df67a445ac98e1ad95e55a0e77c73044f4e9b1c8c2289cbd - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.2.2" petitparser: @@ -1030,7 +1030,7 @@ packages: description: name: petitparser sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "6.0.2" pinyin: @@ -1038,7 +1038,7 @@ packages: description: name: pinyin sha256: "240f271a3c71af20c8d2757756b5ee8e9d79a955d37abad4b3568fd406b22411" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.3.0" platform: @@ -1046,7 +1046,7 @@ packages: description: name: platform sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.1.6" plugin_platform_interface: @@ -1054,7 +1054,7 @@ packages: description: name: plugin_platform_interface sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.8" pointycastle: @@ -1062,7 +1062,7 @@ packages: description: name: pointycastle sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.9.1" pool: @@ -1070,7 +1070,7 @@ packages: description: name: pool sha256: "4177f68c237ea2128d1bee66ac17b2ce05ba3dbaafcbdd54c5d40a39d0b6b11c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.5.3" posix: @@ -1078,7 +1078,7 @@ packages: description: name: posix sha256: bc1bad54ad2b735816e31f8d4600cfde6c7839975085ddfbca48b6c9f7c4044e - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "6.5.2" printing: @@ -1086,7 +1086,7 @@ packages: description: name: printing sha256: "689170c9ddb1bda85826466ba80378aa8993486d3c959a71cd7d2d80cb606692" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "5.14.3" pub_semver: @@ -1094,7 +1094,7 @@ packages: description: name: pub_semver sha256: "261236774e8b1d69cfc6b9eabbc96c40f25e7a2d6b171f3385d4f65d5734fb24" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.1" pubspec_parse: @@ -1102,7 +1102,7 @@ packages: description: name: pubspec_parse sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.5.0" qr: @@ -1110,7 +1110,7 @@ packages: description: name: qr sha256: "5a1d2586170e172b8a8c8470bbbffd5eb0cd38a66c0d77155ea138d3af3a4445" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.2" qr_flutter: @@ -1118,7 +1118,7 @@ packages: description: name: qr_flutter sha256: "5095f0fc6e3f71d08adef8feccc8cea4f12eec18a2e31c2e8d82cb6019f4b097" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.1.0" rational: @@ -1126,7 +1126,7 @@ packages: description: name: rational sha256: cb808fb6f1a839e6fc5f7d8cb3b0a10e1db48b3be102de73938c627f0b636336 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.3" rxdart: @@ -1134,7 +1134,7 @@ packages: description: name: rxdart sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.28.0" shelf: @@ -1142,7 +1142,7 @@ packages: description: name: shelf sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.4.2" shelf_web_socket: @@ -1150,7 +1150,7 @@ packages: description: name: shelf_web_socket sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.1" simple_sparse_list: @@ -1158,7 +1158,7 @@ packages: description: name: simple_sparse_list sha256: aa648fd240fa39b49dcd11c19c266990006006de6699a412de485695910fbc1f - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.1.4" sky_engine: @@ -1171,7 +1171,7 @@ packages: description: name: source_gen sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.5.0" source_helper: @@ -1179,7 +1179,7 @@ packages: description: name: source_helper sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.5" source_span: @@ -1187,7 +1187,7 @@ packages: description: name: source_span sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.10.0" sqflite: @@ -1195,7 +1195,7 @@ packages: description: name: sqflite sha256: "2d7299468485dca85efeeadf5d38986909c5eb0cd71fd3db2c2f000e6c9454bb" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.4.1" sqflite_android: @@ -1203,7 +1203,7 @@ packages: description: name: sqflite_android sha256: "78f489aab276260cdd26676d2169446c7ecd3484bbd5fead4ca14f3ed4dd9ee3" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.4.0" sqflite_common: @@ -1211,7 +1211,7 @@ packages: description: name: sqflite_common sha256: "761b9740ecbd4d3e66b8916d784e581861fd3c3553eda85e167bc49fdb68f709" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.5.4+6" sqflite_common_ffi: @@ -1219,7 +1219,7 @@ packages: description: name: sqflite_common_ffi sha256: "883dd810b2b49e6e8c3b980df1829ef550a94e3f87deab5d864917d27ca6bf36" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.3.4+4" sqflite_darwin: @@ -1227,7 +1227,7 @@ packages: description: name: sqflite_darwin sha256: "22adfd9a2c7d634041e96d6241e6e1c8138ca6817018afc5d443fef91dcefa9c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.4.1+1" sqflite_platform_interface: @@ -1235,7 +1235,7 @@ packages: description: name: sqflite_platform_interface sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.4.0" sqlite3: @@ -1243,7 +1243,7 @@ packages: description: name: sqlite3 sha256: "3145bd74dcdb4fd6f5c6dda4d4e4490a8087d7f286a14dee5d37087290f0f8a2" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.9.4" sqlparser: @@ -1251,7 +1251,7 @@ packages: description: name: sqlparser sha256: "91f47610aa54d8abf9d795a7b4e49b2a788f65d7493d5a68fbf180c3cbcc6f38" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.27.0" stack_trace: @@ -1259,7 +1259,7 @@ packages: description: name: stack_trace sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.12.0" stream_channel: @@ -1267,7 +1267,7 @@ packages: description: name: stream_channel sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.2" stream_transform: @@ -1275,7 +1275,7 @@ packages: description: name: stream_transform sha256: a00e5f18bffc764f923e7dec1038527f7fe7a1791361a7117f0358193f13d53a - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.2" string_scanner: @@ -1283,7 +1283,7 @@ packages: description: name: string_scanner sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.0" strings: @@ -1291,7 +1291,7 @@ packages: description: name: strings sha256: "482f1511d2cd8ab9f2c4cc148e6837be8a00c03b9a8eaedbc981a84d9c6305d8" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.2.0" sugar: @@ -1299,7 +1299,7 @@ packages: description: name: sugar sha256: a0a97f1d3552a3ef4cbec7c6e62c7b52c151cd5c11e984e8311700a918f73dc5 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.0.0" syncfusion_flutter_core: @@ -1307,7 +1307,7 @@ packages: description: name: syncfusion_flutter_core sha256: f1d2b52697543e13bdefdc62d15868124a265987577f53224a7dbe176c8448f0 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "28.2.12" syncfusion_flutter_datepicker: @@ -1315,7 +1315,7 @@ packages: description: name: syncfusion_flutter_datepicker sha256: cfc91ebacee63b2c5220e541736f8df211d4f0bfbf34265778862ae20faf094f - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "28.2.12" synchronized: @@ -1323,7 +1323,7 @@ packages: description: name: synchronized sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.3.0+3" term_glyph: @@ -1331,7 +1331,7 @@ packages: description: name: term_glyph sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.2.1" test_api: @@ -1339,7 +1339,7 @@ packages: description: name: test_api sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.7.3" timing: @@ -1347,7 +1347,7 @@ packages: description: name: timing sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.2" typed_data: @@ -1355,7 +1355,7 @@ packages: description: name: typed_data sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.4.0" unicode: @@ -1363,7 +1363,7 @@ packages: description: name: unicode sha256: a6f7bcfc8ea1d5ce1f6c0b1c39117a9919f4953edd9fd7a64090a9796c499b57 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.9" universal_html: @@ -1371,7 +1371,7 @@ packages: description: name: universal_html sha256: c0bcae5c733c60f26c7dfc88b10b0fd27cbcc45cb7492311cdaa6067e21c9cd4 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.3.0" universal_io: @@ -1379,7 +1379,7 @@ packages: description: name: universal_io sha256: f63cbc48103236abf48e345e07a03ce5757ea86285ed313a6a032596ed9301e2 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.3.1" uuid: @@ -1387,7 +1387,7 @@ packages: description: name: uuid sha256: "9b129329f58692f6e6578329498a8fe9fbe98f090beb764ffbb8ee2eadd01dcd" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.6.0" vector_graphics: @@ -1395,7 +1395,7 @@ packages: description: name: vector_graphics sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.19" vector_graphics_codec: @@ -1403,7 +1403,7 @@ packages: description: name: vector_graphics_codec sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.13" vector_graphics_compiler: @@ -1411,7 +1411,7 @@ packages: description: name: vector_graphics_compiler sha256: ca81fdfaf62a5ab45d7296614aea108d2c7d0efca8393e96174bf4d51e6725b0 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.18" vector_math: @@ -1419,7 +1419,7 @@ packages: description: name: vector_math sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.4" vm_service: @@ -1427,7 +1427,7 @@ packages: description: name: vm_service sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "14.3.0" watcher: @@ -1435,7 +1435,7 @@ packages: description: name: watcher sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.2.1" web: @@ -1443,7 +1443,7 @@ packages: description: name: web sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.1" web_socket: @@ -1451,7 +1451,7 @@ packages: description: name: web_socket sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.1" web_socket_channel: @@ -1459,7 +1459,7 @@ packages: description: name: web_socket_channel sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.3" win32: @@ -1467,7 +1467,7 @@ packages: description: name: win32 sha256: daf97c9d80197ed7b619040e86c8ab9a9dad285e7671ee7390f9180cc828a51e - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "5.10.1" xdg_directories: @@ -1475,7 +1475,7 @@ packages: description: name: xdg_directories sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.0" xml: @@ -1483,7 +1483,7 @@ packages: description: name: xml sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "6.5.0" yaml: @@ -1491,7 +1491,7 @@ packages: description: name: yaml sha256: f67cdd8e07d3c6329146aaef1ba043542b3134c12489f553ca9a7435d1068aea - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "3.1.4" sdks: diff --git a/pubspec.yaml b/pubspec.yaml index cc0e41c..9c3df7a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: pj_supermarket_cloud description: "智慧后勤-测试" publish_to: "none" -version: 2.0.3+203 +version: 2.1.2+212 environment: sdk: ^3.6.0