From 212dffd0da6f4a4ad3ee6142832286af8fed6519 Mon Sep 17 00:00:00 2001 From: dengyuxin Date: Fri, 17 Oct 2025 17:29:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B0=8F=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 132 + government-admin/.env.development | 4 + government-admin/.env.production | 4 + government-admin/package-lock.json | 25 +- government-admin/src/utils/api.js | 2 +- .../src/utils/approvalProcessApi.js | 2 +- .../src/utils/cattleAcademyApi.js | 2 +- .../src/utils/deviceWarningApi.js | 4 +- .../src/utils/epidemicActivityApi.js | 2 +- .../productionMaterialCertificationApi.js | 2 +- government-admin/部署修复说明.md | 135 + government-backend/Dockerfile | 50 + government-backend/NGINX_404_FIX_FINAL.md | 133 + .../_etc_nginx_conf.d_ningmuyun_one.conf | 792 ++ government-backend/app.js | 5 +- government-backend/debug-nginx-issue.js | 106 + government-backend/deploy.sh | 98 + government-backend/diagnose-url-issue.js | 75 + government-backend/ecosystem.config.js | 38 + government-backend/final-nginx-test.js | 173 + .../nginx-ad.ningmuyun.com.conf | 119 - government-backend/nginx-config-check.md | 63 + government-backend/nginx-config-test.md | 77 + government-backend/nginx-问题分析报告.md | 113 + government-backend/test-after-restart.js | 116 + government-backend/test-final-fix.js | 126 + government-backend/test-fixed-apis.js | 94 + government-backend/test-government-apis.js | 97 + government-backend/test-location-order-fix.js | 160 + government-backend/test-login-api.js | 66 + government-backend/test-nginx-config.js | 114 + government-backend/test-nginx-debug.js | 112 + government-backend/test-nginx-fix-final.js | 155 + government-backend/test-nginx-fix.js | 111 + government-backend/test-nginx-restart-fix.js | 150 + government-backend/test-nginx-syntax.js | 35 + .../test-path-duplication-fix.js | 115 + government-backend/test-path-fix.js | 84 + government-backend/verify-nginx-fix.js | 149 + government-backend/前端API路径修复说明.md | 126 + government-backend/检查nginx配置.md | 149 + government-backend/登录接口404错误修复说明.md | 126 + government-mini-program/ARCHITECTURE.md | 213 - government-mini-program/COMPLETION_REPORT.md | 219 - government-mini-program/PROJECT_SUMMARY.md | 252 - government-mini-program/QUICK_START.md | 138 - government-mini-program/README.md | 300 +- government-mini-program/app.js | 4 +- government-mini-program/app.json | 54 +- government-mini-program/app.wxss | 150 +- government-mini-program/config.env | 19 - government-mini-program/config/api.js | 68 + government-mini-program/env.example | 22 - .../{dashboard-active.png => about.png} | 0 .../images/{dashboard.png => ankle-ring.png} | 0 .../images/{logo.png => certificate.png} | 0 .../{supervision-active.png => collar.png} | 0 .../images/{supervision.png => ear-tag.png} | 0 government-mini-program/images/empty.png | 1 + .../images/epidemic-station.png | 1 + government-mini-program/images/epidemic.png | 1 + .../images/farmer-active.png | 1 + government-mini-program/images/farmer.png | 1 + government-mini-program/images/finance.png | 1 + government-mini-program/images/help.png | 1 + government-mini-program/images/host.png | 1 + government-mini-program/images/identity.png | 1 + government-mini-program/images/quarantine.png | 1 + government-mini-program/images/settings.png | 1 + government-mini-program/images/slaughter.png | 1 + government-mini-program/images/station.png | 1 + government-mini-program/images/user-info.png | 1 + government-mini-program/manifest.json | 80 - .../@dcloudio/uni-app/index.js | 392 - .../@dcloudio/uni-app/index.js.map | 1 - .../@vue/composition-api/index.js | 2321 ---- .../@vue/composition-api/index.js.map | 1 - .../miniprogram_npm/asynckit/index.js | 411 - .../miniprogram_npm/asynckit/index.js.map | 1 - .../miniprogram_npm/axios/index.js | 2645 ---- .../miniprogram_npm/axios/index.js.map | 1 - .../call-bind-apply-helpers/index.js | 62 - .../call-bind-apply-helpers/index.js.map | 1 - .../miniprogram_npm/combined-stream/index.js | 221 - .../combined-stream/index.js.map | 1 - .../miniprogram_npm/dayjs/index.js | 13 - .../miniprogram_npm/dayjs/index.js.map | 1 - .../miniprogram_npm/delayed-stream/index.js | 120 - .../delayed-stream/index.js.map | 1 - .../es-define-property/index.js | 27 - .../es-define-property/index.js.map | 1 - .../miniprogram_npm/es-errors/index.js | 17 - .../miniprogram_npm/es-errors/index.js.map | 1 - .../miniprogram_npm/es-object-atoms/index.js | 17 - .../es-object-atoms/index.js.map | 1 - .../es-set-tostringtag/index.js | 48 - .../es-set-tostringtag/index.js.map | 1 - .../miniprogram_npm/follow-redirects/index.js | 725 -- .../follow-redirects/index.js.map | 1 - .../miniprogram_npm/form-data/index.js | 520 - .../miniprogram_npm/form-data/index.js.map | 1 - .../miniprogram_npm/function-bind/index.js | 105 - .../function-bind/index.js.map | 1 - .../miniprogram_npm/get-intrinsic/index.js | 391 - .../get-intrinsic/index.js.map | 1 - .../miniprogram_npm/get-proto/index.js | 56 - .../miniprogram_npm/get-proto/index.js.map | 1 - .../miniprogram_npm/gopd/index.js | 35 - .../miniprogram_npm/gopd/index.js.map | 1 - .../miniprogram_npm/has-symbols/index.js | 75 - .../miniprogram_npm/has-symbols/index.js.map | 1 - .../miniprogram_npm/has-tostringtag/index.js | 21 - .../has-tostringtag/index.js.map | 1 - .../miniprogram_npm/hasown/index.js | 21 - .../miniprogram_npm/hasown/index.js.map | 1 - .../miniprogram_npm/mime-db/index.js | 8547 ------------- .../miniprogram_npm/mime-db/index.js.map | 1 - .../miniprogram_npm/mime-types/index.js | 201 - .../miniprogram_npm/mime-types/index.js.map | 1 - .../miniprogram_npm/vue-router/index.js | 3172 ----- .../miniprogram_npm/vue-router/index.js.map | 1 - .../miniprogram_npm/vue/index.js | 8496 ------------- .../miniprogram_npm/vue/index.js.map | 1 - .../miniprogram_npm/vuex/index.js | 1257 -- .../miniprogram_npm/vuex/index.js.map | 1 - government-mini-program/package-lock.json | 10412 ---------------- government-mini-program/package.json | 52 +- government-mini-program/pages.json | 145 - .../pages/approval/approval.js | 42 - .../pages/approval/approval.json | 3 - .../pages/approval/approval.wxml | 58 - .../pages/approval/approval.wxss | 159 - .../pages/dashboard/dashboard.js | 137 - .../pages/dashboard/dashboard.json | 3 - .../pages/dashboard/dashboard.wxml | 71 - .../pages/dashboard/dashboard.wxss | 210 - .../pages/epidemic/epidemic.js | 42 - .../pages/epidemic/epidemic.json | 3 - .../pages/epidemic/epidemic.wxml | 58 - .../pages/epidemic/epidemic.wxss | 169 - .../pages/farmer/add/add.js | 273 + .../pages/farmer/add/add.json | 6 + .../pages/farmer/add/add.wxml | 205 + .../pages/farmer/add/add.wxss | 176 + .../pages/farmer/detail/detail.js | 195 + .../pages/farmer/detail/detail.json | 7 + .../pages/farmer/detail/detail.wxml | 125 + .../pages/farmer/detail/detail.wxss | 241 + .../pages/farmer/edit/edit.js | 406 + .../pages/farmer/edit/edit.json | 6 + .../pages/farmer/edit/edit.wxml | 229 + .../pages/farmer/edit/edit.wxss | 205 + .../pages/farmer/farmer.js | 342 + .../pages/farmer/farmer.json | 7 + .../pages/farmer/farmer.wxml | 139 + .../pages/farmer/farmer.wxss | 371 + .../pages/farmers/farmers.js | 125 + .../pages/farmers/farmers.json | 8 + .../pages/farmers/farmers.wxml | 80 + .../pages/farmers/farmers.wxss | 220 + government-mini-program/pages/index/index.js | 299 +- .../pages/index/index.json | 6 +- .../pages/index/index.wxml | 125 +- .../pages/index/index.wxss | 342 +- government-mini-program/pages/login/login.js | 281 +- .../pages/login/login.json | 5 +- .../pages/login/login.wxml | 106 +- .../pages/login/login.wxss | 200 +- .../pages/notification/detail/detail.js | 326 + .../pages/notification/detail/detail.json | 7 + .../pages/notification/detail/detail.wxml | 144 + .../pages/notification/detail/detail.wxss | 336 + .../pages/notification/notification.js | 397 + .../pages/notification/notification.json | 6 + .../pages/notification/notification.wxml | 79 + .../pages/notification/notification.wxss | 250 + .../pages/personnel/personnel.js | 42 - .../pages/personnel/personnel.json | 3 - .../pages/personnel/personnel.wxml | 61 - .../pages/personnel/personnel.wxss | 165 - .../pages/profile/profile.js | 620 +- .../pages/profile/profile.json | 5 +- .../pages/profile/profile.wxml | 107 +- .../pages/profile/profile.wxss | 232 +- .../pages/service/service.js | 42 - .../pages/service/service.json | 3 - .../pages/service/service.wxml | 57 - .../pages/service/service.wxss | 158 - .../pages/statistics/statistics.js | 296 + .../pages/statistics/statistics.json | 6 + .../pages/statistics/statistics.wxml | 121 + .../pages/statistics/statistics.wxss | 313 + .../pages/supervision/supervision.js | 49 - .../pages/supervision/supervision.json | 3 - .../pages/supervision/supervision.wxml | 58 - .../pages/supervision/supervision.wxss | 158 - .../pages/warehouse/warehouse.js | 42 - .../pages/warehouse/warehouse.json | 3 - .../pages/warehouse/warehouse.wxml | 57 - .../pages/warehouse/warehouse.wxss | 158 - government-mini-program/project.config.json | 21 +- .../project.private.config.json | 14 - government-mini-program/public/index.html | 13 - .../services/authService.js | 19 - .../services/dashboardService.js | 41 - government-mini-program/sitemap.json | 2 +- government-mini-program/start-dev.bat | 54 - government-mini-program/start-dev.sh | 25 - .../start-miniprogram-dev.bat | 44 - government-mini-program/start-miniprogram.bat | 46 - government-mini-program/static/avatar.png | 1 - .../static/default-avatar.png | 1 - government-mini-program/static/logo.png | 1 - government-mini-program/utils/api.js | 262 + government-mini-program/utils/auth.js | 73 - government-mini-program/utils/request.js | 318 +- government-mini-program/vue.config.js | 38 - .../养殖户页面样式修改说明.md | 164 + government-mini-program/养殖户页面设计说明.md | 165 + government-mini-program/启动小程序.bat | 48 + government-mini-program/启动微信小程序.bat | 37 - government-mini-program/微信小程序使用指南.md | 192 - government-mini-program/微信小程序使用说明.md | 103 - government-mini-program/样式修复说明.md | 99 + government-mini-program/测试养殖户页面.bat | 44 + government-mini-program/测试样式.bat | 42 + government-mini-program/测试样式修改.bat | 47 + 227 files changed, 12887 insertions(+), 45341 deletions(-) create mode 100644 docker-compose.yml create mode 100644 government-admin/.env.development create mode 100644 government-admin/.env.production create mode 100644 government-admin/部署修复说明.md create mode 100644 government-backend/Dockerfile create mode 100644 government-backend/NGINX_404_FIX_FINAL.md create mode 100644 government-backend/_etc_nginx_conf.d_ningmuyun_one.conf create mode 100644 government-backend/debug-nginx-issue.js create mode 100644 government-backend/deploy.sh create mode 100644 government-backend/diagnose-url-issue.js create mode 100644 government-backend/ecosystem.config.js create mode 100644 government-backend/final-nginx-test.js delete mode 100644 government-backend/nginx-ad.ningmuyun.com.conf create mode 100644 government-backend/nginx-config-check.md create mode 100644 government-backend/nginx-config-test.md create mode 100644 government-backend/nginx-问题分析报告.md create mode 100644 government-backend/test-after-restart.js create mode 100644 government-backend/test-final-fix.js create mode 100644 government-backend/test-fixed-apis.js create mode 100644 government-backend/test-government-apis.js create mode 100644 government-backend/test-location-order-fix.js create mode 100644 government-backend/test-login-api.js create mode 100644 government-backend/test-nginx-config.js create mode 100644 government-backend/test-nginx-debug.js create mode 100644 government-backend/test-nginx-fix-final.js create mode 100644 government-backend/test-nginx-fix.js create mode 100644 government-backend/test-nginx-restart-fix.js create mode 100644 government-backend/test-nginx-syntax.js create mode 100644 government-backend/test-path-duplication-fix.js create mode 100644 government-backend/test-path-fix.js create mode 100644 government-backend/verify-nginx-fix.js create mode 100644 government-backend/前端API路径修复说明.md create mode 100644 government-backend/检查nginx配置.md create mode 100644 government-backend/登录接口404错误修复说明.md delete mode 100644 government-mini-program/ARCHITECTURE.md delete mode 100644 government-mini-program/COMPLETION_REPORT.md delete mode 100644 government-mini-program/PROJECT_SUMMARY.md delete mode 100644 government-mini-program/QUICK_START.md delete mode 100644 government-mini-program/config.env create mode 100644 government-mini-program/config/api.js delete mode 100644 government-mini-program/env.example rename government-mini-program/images/{dashboard-active.png => about.png} (100%) rename government-mini-program/images/{dashboard.png => ankle-ring.png} (100%) rename government-mini-program/images/{logo.png => certificate.png} (100%) rename government-mini-program/images/{supervision-active.png => collar.png} (100%) rename government-mini-program/images/{supervision.png => ear-tag.png} (100%) create mode 100644 government-mini-program/images/empty.png create mode 100644 government-mini-program/images/epidemic-station.png create mode 100644 government-mini-program/images/epidemic.png create mode 100644 government-mini-program/images/farmer-active.png create mode 100644 government-mini-program/images/farmer.png create mode 100644 government-mini-program/images/finance.png create mode 100644 government-mini-program/images/help.png create mode 100644 government-mini-program/images/host.png create mode 100644 government-mini-program/images/identity.png create mode 100644 government-mini-program/images/quarantine.png create mode 100644 government-mini-program/images/settings.png create mode 100644 government-mini-program/images/slaughter.png create mode 100644 government-mini-program/images/station.png create mode 100644 government-mini-program/images/user-info.png delete mode 100644 government-mini-program/manifest.json delete mode 100644 government-mini-program/miniprogram_npm/@dcloudio/uni-app/index.js delete mode 100644 government-mini-program/miniprogram_npm/@dcloudio/uni-app/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/@vue/composition-api/index.js delete mode 100644 government-mini-program/miniprogram_npm/@vue/composition-api/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/asynckit/index.js delete mode 100644 government-mini-program/miniprogram_npm/asynckit/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/axios/index.js delete mode 100644 government-mini-program/miniprogram_npm/axios/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/call-bind-apply-helpers/index.js delete mode 100644 government-mini-program/miniprogram_npm/call-bind-apply-helpers/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/combined-stream/index.js delete mode 100644 government-mini-program/miniprogram_npm/combined-stream/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/dayjs/index.js delete mode 100644 government-mini-program/miniprogram_npm/dayjs/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/delayed-stream/index.js delete mode 100644 government-mini-program/miniprogram_npm/delayed-stream/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/es-define-property/index.js delete mode 100644 government-mini-program/miniprogram_npm/es-define-property/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/es-errors/index.js delete mode 100644 government-mini-program/miniprogram_npm/es-errors/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/es-object-atoms/index.js delete mode 100644 government-mini-program/miniprogram_npm/es-object-atoms/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/es-set-tostringtag/index.js delete mode 100644 government-mini-program/miniprogram_npm/es-set-tostringtag/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/follow-redirects/index.js delete mode 100644 government-mini-program/miniprogram_npm/follow-redirects/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/form-data/index.js delete mode 100644 government-mini-program/miniprogram_npm/form-data/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/function-bind/index.js delete mode 100644 government-mini-program/miniprogram_npm/function-bind/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/get-intrinsic/index.js delete mode 100644 government-mini-program/miniprogram_npm/get-intrinsic/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/get-proto/index.js delete mode 100644 government-mini-program/miniprogram_npm/get-proto/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/gopd/index.js delete mode 100644 government-mini-program/miniprogram_npm/gopd/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/has-symbols/index.js delete mode 100644 government-mini-program/miniprogram_npm/has-symbols/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/has-tostringtag/index.js delete mode 100644 government-mini-program/miniprogram_npm/has-tostringtag/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/hasown/index.js delete mode 100644 government-mini-program/miniprogram_npm/hasown/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/mime-db/index.js delete mode 100644 government-mini-program/miniprogram_npm/mime-db/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/mime-types/index.js delete mode 100644 government-mini-program/miniprogram_npm/mime-types/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/vue-router/index.js delete mode 100644 government-mini-program/miniprogram_npm/vue-router/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/vue/index.js delete mode 100644 government-mini-program/miniprogram_npm/vue/index.js.map delete mode 100644 government-mini-program/miniprogram_npm/vuex/index.js delete mode 100644 government-mini-program/miniprogram_npm/vuex/index.js.map delete mode 100644 government-mini-program/package-lock.json delete mode 100644 government-mini-program/pages.json delete mode 100644 government-mini-program/pages/approval/approval.js delete mode 100644 government-mini-program/pages/approval/approval.json delete mode 100644 government-mini-program/pages/approval/approval.wxml delete mode 100644 government-mini-program/pages/approval/approval.wxss delete mode 100644 government-mini-program/pages/dashboard/dashboard.js delete mode 100644 government-mini-program/pages/dashboard/dashboard.json delete mode 100644 government-mini-program/pages/dashboard/dashboard.wxml delete mode 100644 government-mini-program/pages/dashboard/dashboard.wxss delete mode 100644 government-mini-program/pages/epidemic/epidemic.js delete mode 100644 government-mini-program/pages/epidemic/epidemic.json delete mode 100644 government-mini-program/pages/epidemic/epidemic.wxml delete mode 100644 government-mini-program/pages/epidemic/epidemic.wxss create mode 100644 government-mini-program/pages/farmer/add/add.js create mode 100644 government-mini-program/pages/farmer/add/add.json create mode 100644 government-mini-program/pages/farmer/add/add.wxml create mode 100644 government-mini-program/pages/farmer/add/add.wxss create mode 100644 government-mini-program/pages/farmer/detail/detail.js create mode 100644 government-mini-program/pages/farmer/detail/detail.json create mode 100644 government-mini-program/pages/farmer/detail/detail.wxml create mode 100644 government-mini-program/pages/farmer/detail/detail.wxss create mode 100644 government-mini-program/pages/farmer/edit/edit.js create mode 100644 government-mini-program/pages/farmer/edit/edit.json create mode 100644 government-mini-program/pages/farmer/edit/edit.wxml create mode 100644 government-mini-program/pages/farmer/edit/edit.wxss create mode 100644 government-mini-program/pages/farmer/farmer.js create mode 100644 government-mini-program/pages/farmer/farmer.json create mode 100644 government-mini-program/pages/farmer/farmer.wxml create mode 100644 government-mini-program/pages/farmer/farmer.wxss create mode 100644 government-mini-program/pages/farmers/farmers.js create mode 100644 government-mini-program/pages/farmers/farmers.json create mode 100644 government-mini-program/pages/farmers/farmers.wxml create mode 100644 government-mini-program/pages/farmers/farmers.wxss create mode 100644 government-mini-program/pages/notification/detail/detail.js create mode 100644 government-mini-program/pages/notification/detail/detail.json create mode 100644 government-mini-program/pages/notification/detail/detail.wxml create mode 100644 government-mini-program/pages/notification/detail/detail.wxss create mode 100644 government-mini-program/pages/notification/notification.js create mode 100644 government-mini-program/pages/notification/notification.json create mode 100644 government-mini-program/pages/notification/notification.wxml create mode 100644 government-mini-program/pages/notification/notification.wxss delete mode 100644 government-mini-program/pages/personnel/personnel.js delete mode 100644 government-mini-program/pages/personnel/personnel.json delete mode 100644 government-mini-program/pages/personnel/personnel.wxml delete mode 100644 government-mini-program/pages/personnel/personnel.wxss delete mode 100644 government-mini-program/pages/service/service.js delete mode 100644 government-mini-program/pages/service/service.json delete mode 100644 government-mini-program/pages/service/service.wxml delete mode 100644 government-mini-program/pages/service/service.wxss create mode 100644 government-mini-program/pages/statistics/statistics.js create mode 100644 government-mini-program/pages/statistics/statistics.json create mode 100644 government-mini-program/pages/statistics/statistics.wxml create mode 100644 government-mini-program/pages/statistics/statistics.wxss delete mode 100644 government-mini-program/pages/supervision/supervision.js delete mode 100644 government-mini-program/pages/supervision/supervision.json delete mode 100644 government-mini-program/pages/supervision/supervision.wxml delete mode 100644 government-mini-program/pages/supervision/supervision.wxss delete mode 100644 government-mini-program/pages/warehouse/warehouse.js delete mode 100644 government-mini-program/pages/warehouse/warehouse.json delete mode 100644 government-mini-program/pages/warehouse/warehouse.wxml delete mode 100644 government-mini-program/pages/warehouse/warehouse.wxss delete mode 100644 government-mini-program/project.private.config.json delete mode 100644 government-mini-program/public/index.html delete mode 100644 government-mini-program/services/authService.js delete mode 100644 government-mini-program/services/dashboardService.js delete mode 100644 government-mini-program/start-dev.bat delete mode 100644 government-mini-program/start-dev.sh delete mode 100644 government-mini-program/start-miniprogram-dev.bat delete mode 100644 government-mini-program/start-miniprogram.bat delete mode 100644 government-mini-program/static/avatar.png delete mode 100644 government-mini-program/static/default-avatar.png delete mode 100644 government-mini-program/static/logo.png create mode 100644 government-mini-program/utils/api.js delete mode 100644 government-mini-program/utils/auth.js delete mode 100644 government-mini-program/vue.config.js create mode 100644 government-mini-program/养殖户页面样式修改说明.md create mode 100644 government-mini-program/养殖户页面设计说明.md create mode 100644 government-mini-program/启动小程序.bat delete mode 100644 government-mini-program/启动微信小程序.bat delete mode 100644 government-mini-program/微信小程序使用指南.md delete mode 100644 government-mini-program/微信小程序使用说明.md create mode 100644 government-mini-program/样式修复说明.md create mode 100644 government-mini-program/测试养殖户页面.bat create mode 100644 government-mini-program/测试样式.bat create mode 100644 government-mini-program/测试样式修改.bat diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..bae6cb4 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,132 @@ +version: '3.8' + +services: + # MySQL数据库服务 + mysql: + image: mysql:8.0 + container_name: nxxmdata-mysql + environment: + MYSQL_ROOT_PASSWORD: aiotAiot123! + MYSQL_DATABASE: ningxia_zhengfu + MYSQL_USER: nxxmdata_user + MYSQL_PASSWORD: NxxmData2024!@# + volumes: + - mysql_data:/var/lib/mysql + - ./government-backend/database/init.sql:/docker-entrypoint-initdb.d/init.sql + ports: + - "3306:3306" + restart: unless-stopped + networks: + - nxxmdata-network + + # Redis缓存服务 + redis: + image: redis:7-alpine + container_name: nxxmdata-redis + ports: + - "6379:6379" + volumes: + - redis_data:/data + restart: unless-stopped + networks: + - nxxmdata-network + + # Government Backend服务 + government-backend: + build: ./government-backend + container_name: nxxmdata-government-backend + environment: + NODE_ENV: production + PORT: 5352 + DB_DIALECT: mysql + DB_HOST: mysql + DB_PORT: 3306 + DB_DATABASE: ningxia_zhengfu + DB_USER: root + DB_PASSWORD: aiotAiot123! + JWT_SECRET: government_super_secret_jwt_key_2024_very_long_and_secure + LOG_LEVEL: info + CORS_ORIGIN: "*" + REDIS_HOST: redis + REDIS_PORT: 6379 + ports: + - "5352:5352" + depends_on: + - mysql + - redis + volumes: + - uploads_data:/app/uploads + - logs_data:/app/logs + restart: unless-stopped + networks: + - nxxmdata-network + + # 养殖端后端服务 + backend: + build: ./backend + container_name: nxxmdata-backend + environment: + NODE_ENV: production + PORT: 5350 + DB_HOST: mysql + REDIS_HOST: redis + ports: + - "5350:5350" + depends_on: + - mysql + - redis + volumes: + - uploads_data:/app/uploads + restart: unless-stopped + networks: + - nxxmdata-network + + # 管理后台前端 + admin: + build: ./admin-system + container_name: nxxmdata-admin + ports: + - "5300:80" + restart: unless-stopped + networks: + - nxxmdata-network + + # 官网前端 + website: + build: ./website + container_name: nxxmdata-website + ports: + - "8081:80" + restart: unless-stopped + networks: + - nxxmdata-network + + # Nginx反向代理 + nginx: + image: nginx:alpine + container_name: nxxmdata-nginx + ports: + - "80:80" + - "443:443" + volumes: + - ./nginx/nginx.conf:/etc/nginx/nginx.conf + - ./nginx/ssl:/etc/ssl + - uploads_data:/var/www/uploads + depends_on: + - government-backend + - backend + - admin + - website + restart: unless-stopped + networks: + - nxxmdata-network + +volumes: + mysql_data: + redis_data: + uploads_data: + logs_data: + +networks: + nxxmdata-network: + driver: bridge \ No newline at end of file diff --git a/government-admin/.env.development b/government-admin/.env.development new file mode 100644 index 0000000..bd441ab --- /dev/null +++ b/government-admin/.env.development @@ -0,0 +1,4 @@ +# 开发环境配置 +VITE_API_BASE_URL=http://localhost:5352/api +VITE_APP_TITLE=政府管理系统 +VITE_APP_ENV=development \ No newline at end of file diff --git a/government-admin/.env.production b/government-admin/.env.production new file mode 100644 index 0000000..44b3c63 --- /dev/null +++ b/government-admin/.env.production @@ -0,0 +1,4 @@ +# 生产环境配置 +VITE_API_BASE_URL=https://ad.ningmuyun.com/api/government +VITE_APP_TITLE=政府管理系统 +VITE_APP_ENV=production \ No newline at end of file diff --git a/government-admin/package-lock.json b/government-admin/package-lock.json index 8cfe1c6..452a9fc 100644 --- a/government-admin/package-lock.json +++ b/government-admin/package-lock.json @@ -10,7 +10,6 @@ "dependencies": { "@ant-design/icons-vue": "^6.1.0", "ant-design-vue": "^4.0.0", - "axios": "^1.12.2", "dayjs": "^1.11.18", "echarts": "^5.4.2", "pinia": "^2.1.6", @@ -20,6 +19,7 @@ }, "devDependencies": { "@vitejs/plugin-vue": "^4.2.3", + "axios": "^1.12.2", "eslint": "^8.45.0", "eslint-plugin-vue": "^9.15.1", "sass": "^1.93.0", @@ -1238,12 +1238,14 @@ "version": "0.4.0", "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, "license": "MIT" }, "node_modules/axios": { "version": "1.12.2", "resolved": "https://registry.npmmirror.com/axios/-/axios-1.12.2.tgz", "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", + "dev": true, "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -1294,6 +1296,7 @@ "version": "1.0.2", "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -1370,6 +1373,7 @@ "version": "1.0.8", "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" @@ -1471,6 +1475,7 @@ "version": "1.0.0", "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" @@ -1519,6 +1524,7 @@ "version": "1.0.1", "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -1555,6 +1561,7 @@ "version": "1.0.1", "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -1564,6 +1571,7 @@ "version": "1.3.0", "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -1573,6 +1581,7 @@ "version": "1.1.1", "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -1585,6 +1594,7 @@ "version": "2.1.0", "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -1928,6 +1938,7 @@ "version": "1.15.11", "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz", "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "dev": true, "funding": [ { "type": "individual", @@ -1948,6 +1959,7 @@ "version": "4.0.4", "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.4.tgz", "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -1986,6 +1998,7 @@ "version": "1.1.2", "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1995,6 +2008,7 @@ "version": "1.3.0", "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -2019,6 +2033,7 @@ "version": "1.0.1", "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -2083,6 +2098,7 @@ "version": "1.2.0", "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2112,6 +2128,7 @@ "version": "1.1.0", "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2124,6 +2141,7 @@ "version": "1.0.2", "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -2139,6 +2157,7 @@ "version": "2.0.2", "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -2394,6 +2413,7 @@ "version": "1.1.0", "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2418,6 +2438,7 @@ "version": "1.52.0", "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -2427,6 +2448,7 @@ "version": "2.1.35", "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -2708,6 +2730,7 @@ "version": "1.1.0", "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, "license": "MIT" }, "node_modules/punycode": { diff --git a/government-admin/src/utils/api.js b/government-admin/src/utils/api.js index cb6f5e3..0ceb8eb 100644 --- a/government-admin/src/utils/api.js +++ b/government-admin/src/utils/api.js @@ -3,7 +3,7 @@ import { message } from 'ant-design-vue' // 创建axios实例 const instance = axios.create({ - baseURL: 'http://localhost:5352/api', + baseURL: import.meta.env.VITE_API_BASE_URL || 'http://localhost:5352/api', timeout: 10000, headers: { 'Content-Type': 'application/json' diff --git a/government-admin/src/utils/approvalProcessApi.js b/government-admin/src/utils/approvalProcessApi.js index c1bdb8f..4e85cc5 100644 --- a/government-admin/src/utils/approvalProcessApi.js +++ b/government-admin/src/utils/approvalProcessApi.js @@ -1,6 +1,6 @@ import axios from 'axios' -const API_BASE_URL = 'http://localhost:5352/api/approval-process' +const API_BASE_URL = `${import.meta.env.VITE_API_BASE_URL || 'http://localhost:5352/api'}/approval-process` // 创建axios实例 const api = axios.create({ diff --git a/government-admin/src/utils/cattleAcademyApi.js b/government-admin/src/utils/cattleAcademyApi.js index 9b26302..6d61b22 100644 --- a/government-admin/src/utils/cattleAcademyApi.js +++ b/government-admin/src/utils/cattleAcademyApi.js @@ -1,6 +1,6 @@ import axios from 'axios' -const API_BASE_URL = 'http://localhost:5352/api/cattle-academy' +const API_BASE_URL = `${import.meta.env.VITE_API_BASE_URL || 'http://localhost:5352/api'}/cattle-academy` // 创建axios实例 const api = axios.create({ diff --git a/government-admin/src/utils/deviceWarningApi.js b/government-admin/src/utils/deviceWarningApi.js index 9e395a7..df38b7d 100644 --- a/government-admin/src/utils/deviceWarningApi.js +++ b/government-admin/src/utils/deviceWarningApi.js @@ -1,6 +1,6 @@ -import axios from 'axios'; +import axios from 'axios' -const API_BASE_URL = 'http://localhost:5352/api/device-warning'; +const API_BASE_URL = `${import.meta.env.VITE_API_BASE_URL || 'http://localhost:5352/api'}/device-warning`; const api = axios.create({ baseURL: API_BASE_URL, diff --git a/government-admin/src/utils/epidemicActivityApi.js b/government-admin/src/utils/epidemicActivityApi.js index 3121661..a113250 100644 --- a/government-admin/src/utils/epidemicActivityApi.js +++ b/government-admin/src/utils/epidemicActivityApi.js @@ -1,6 +1,6 @@ import axios from 'axios' -const API_BASE_URL = 'http://localhost:5352/api/epidemic-activity' +const API_BASE_URL = `${import.meta.env.VITE_API_BASE_URL || 'http://localhost:5352/api'}/epidemic-activity` // 创建axios实例 const api = axios.create({ diff --git a/government-admin/src/utils/productionMaterialCertificationApi.js b/government-admin/src/utils/productionMaterialCertificationApi.js index 68934b4..80e2795 100644 --- a/government-admin/src/utils/productionMaterialCertificationApi.js +++ b/government-admin/src/utils/productionMaterialCertificationApi.js @@ -1,6 +1,6 @@ import axios from 'axios' -const API_BASE_URL = 'http://localhost:5352/api/production-material-certification' +const API_BASE_URL = `${import.meta.env.VITE_API_BASE_URL || 'http://localhost:5352/api'}/production-material-certification` // 创建axios实例 const api = axios.create({ diff --git a/government-admin/部署修复说明.md b/government-admin/部署修复说明.md new file mode 100644 index 0000000..ca0b5ef --- /dev/null +++ b/government-admin/部署修复说明.md @@ -0,0 +1,135 @@ +# 政府管理后台部署修复说明 + +## 问题描述 + +部署后前端仍然使用 `http://localhost:5352` 访问API,导致无法正常访问后端服务。 + +## 问题原因 + +前端代码中硬编码了本地开发环境的API地址,没有根据部署环境动态配置。 + +## 解决方案 + +### 1. 环境变量配置 + +已创建环境配置文件: + +**开发环境** (`.env.development`): +```env +VITE_API_BASE_URL=http://localhost:5352/api +VITE_APP_TITLE=政府管理系统 +VITE_APP_ENV=development +``` + +**生产环境** (`.env.production`): +```env +VITE_API_BASE_URL=https://ad.ningmuyun.com/api/government +VITE_APP_TITLE=政府管理系统 +VITE_APP_ENV=production +``` + +### 2. API配置文件修改 + +已修改以下文件使用环境变量: + +- `src/utils/api.js` - 主要API配置 +- `src/utils/productionMaterialCertificationApi.js` - 生产物料认证API +- `src/utils/deviceWarningApi.js` - 设备预警API +- `src/utils/cattleAcademyApi.js` - 牛只学院API +- `src/utils/epidemicActivityApi.js` - 疫情活动API +- `src/utils/approvalProcessApi.js` - 审批流程API + +### 3. 部署步骤 + +#### 3.1 重新构建前端 + +```bash +cd government-admin + +# 安装依赖 +npm install + +# 生产环境构建 +npm run build +``` + +#### 3.2 部署到服务器 + +将构建后的 `dist` 目录上传到服务器的 `/var/www/html/government/` 目录。 + +#### 3.3 验证Nginx配置 + +确保服务器上的Nginx配置正确: + +```nginx +# 政府端前端静态文件 +location /government/ { + alias /var/www/html/government/; + try_files $uri $uri/ /government/index.html; + index index.html; +} + +# 政府端API代理 +location ^~ /api/government/ { + proxy_pass http://localhost:5352/api/government/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # CORS配置 + add_header Access-Control-Allow-Origin *; + add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; + add_header Access-Control-Allow-Headers 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization'; + + if ($request_method = 'OPTIONS') { + return 204; + } +} +``` + +#### 3.4 重启服务 + +```bash +# 重新加载Nginx配置 +sudo nginx -t +sudo nginx -s reload + +# 确保government-backend服务运行 +pm2 restart government-backend +``` + +### 4. 验证修复 + +访问以下地址验证修复结果: + +- 前端页面: `https://ad.ningmuyun.com/government/` +- API接口: `https://ad.ningmuyun.com/api/government/departments` + +### 5. 注意事项 + +1. **环境变量**: 确保在生产环境构建时使用正确的环境变量 +2. **缓存清理**: 部署后清理浏览器缓存 +3. **HTTPS证书**: 确保SSL证书配置正确 +4. **防火墙**: 确保端口443和80开放 +5. **服务状态**: 确保government-backend服务正常运行 + +### 6. 故障排查 + +如果仍有问题,请检查: + +1. **浏览器开发者工具**: 查看网络请求是否使用正确的URL +2. **Nginx日志**: 检查 `/var/log/nginx/error.log` +3. **后端日志**: 检查government-backend服务日志 +4. **端口监听**: 确认5352端口正常监听 + +```bash +# 检查端口监听 +netstat -tlnp | grep 5352 + +# 检查服务状态 +pm2 status government-backend + +# 测试API连通性 +curl -k https://ad.ningmuyun.com/api/government/departments +``` \ No newline at end of file diff --git a/government-backend/Dockerfile b/government-backend/Dockerfile new file mode 100644 index 0000000..605ebc4 --- /dev/null +++ b/government-backend/Dockerfile @@ -0,0 +1,50 @@ +# Government Backend Dockerfile +# 基于Node.js 18 Alpine镜像构建 +FROM node:18-alpine + +# 设置工作目录 +WORKDIR /app + +# 安装系统依赖 +RUN apk add --no-cache \ + # 用于数据库备份的MySQL客户端 + mysql-client \ + # 开发工具 + git \ + # 用于健康检查的curl + curl \ + && rm -rf /var/cache/apk/* + +# 复制package.json和package-lock.json +COPY package*.json ./ + +# 安装Node.js依赖 +RUN npm ci --only=production && npm cache clean --force + +# 复制应用代码 +COPY . . + +# 创建必要的目录 +RUN mkdir -p logs uploads temp + +# 设置文件权限 +RUN chown -R node:node /app + +# 切换到非root用户 +USER node + +# 暴露端口 +EXPOSE 5352 + +# 健康检查 +HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ + CMD curl -f http://localhost:5352/api/health || exit 1 + +# 启动应用 +CMD ["npm", "start"] + +# 元数据标签 +LABEL maintainer="宁夏智慧牧场政府端 " \ + description="宁夏智慧牧场政府端后端服务" \ + application="nxxm-government-platform" \ + tier="backend" \ No newline at end of file diff --git a/government-backend/NGINX_404_FIX_FINAL.md b/government-backend/NGINX_404_FIX_FINAL.md new file mode 100644 index 0000000..de70730 --- /dev/null +++ b/government-backend/NGINX_404_FIX_FINAL.md @@ -0,0 +1,133 @@ +# Nginx 404 错误最终修复方案 + +## 🔍 问题现状 + +根据测试结果: +- ✅ 后端服务正常:`http://localhost:5352/api/government/departments` 返回 200 +- ✅ 登录接口正常:`https://ad.ningmuyun.com/api/government/auth/login` 返回 401 +- ❌ 正确路径 404:`https://ad.ningmuyun.com/api/government/departments` 返回 404 +- ❌ 正确路径 404:`https://ad.ningmuyun.com/api/government/data-center` 返回 404 +- ❌ 正确路径 404:`https://ad.ningmuyun.com/api/government/market-price` 返回 404 +- ✅ 重复路径正常:`https://ad.ningmuyun.com/api/government/government/departments` 返回 200 + +## 📊 问题分析 + +### 关键发现 +1. 登录接口 `/api/government/auth/login` 正常工作 +2. 其他政府接口 `/api/government/departments` 等返回 404 +3. 重复路径 `/api/government/government/departments` 却能正常工作 + +### 推断 +这说明 nginx 配置中: +- `location ^~ /api/government/auth/` 规则工作正常 +- `location ^~ /api/government/` 规则没有生效 +- 重复路径能工作,说明可能有其他规则在处理请求 + +## 🔧 当前 Nginx 配置 + +```nginx +# 政府认证API代理 - 处理登录等认证接口 +location ^~ /api/government/auth/ { + proxy_pass http://localhost:5352/api/auth/; + # ... CORS 配置 +} + +# 政府API代理 - 处理其他政府相关接口 +location ^~ /api/government/ { + proxy_pass http://localhost:5352/api/government/; + # ... CORS 配置 +} +``` + +## 🎯 可能的原因和解决方案 + +### 方案 1:Nginx 配置未重新加载 +最可能的原因是 nginx 配置修改后没有重新加载。 + +**解决步骤:** +```bash +# 1. 检查 nginx 配置语法 +sudo nginx -t + +# 2. 重新加载 nginx 配置 +sudo systemctl reload nginx + +# 3. 如果 reload 不行,尝试重启 +sudo systemctl restart nginx + +# 4. 检查 nginx 状态 +sudo systemctl status nginx + +# 5. 查看 nginx 错误日志 +sudo tail -f /var/log/nginx/error.log +``` + +### 方案 2:浏览器缓存问题 +**解决步骤:** +1. 清除浏览器缓存 +2. 使用无痕模式测试 +3. 或使用 curl 命令测试(绕过浏览器) + +### 方案 3:Location 规则匹配优先级问题 +如果还不行,可能需要调整 location 规则的顺序或写法。 + +**尝试修改为:** +```nginx +# 方案 A:使用正则表达式匹配 +location ~ ^/api/government/(?!auth/) { + proxy_pass http://localhost:5352; + # ... 其他配置 +} + +# 方案 B:去掉尾部斜杠 +location ^~ /api/government/ { + proxy_pass http://localhost:5352; + rewrite ^/api/government/(.*)$ /api/government/$1 break; + # ... 其他配置 +} +``` + +## 📝 验证步骤 + +修复后运行以下命令验证: +```bash +node test-final-fix.js +``` + +或使用 curl 测试: +```bash +# 测试部门接口 +curl -X GET https://ad.ningmuyun.com/api/government/departments + +# 测试数据中心接口 +curl -X GET https://ad.ningmuyun.com/api/government/data-center + +# 测试市场价格接口 +curl -X GET "https://ad.ningmuyun.com/api/government/market-price?type=beef" +``` + +## 🚨 重要提醒 + +1. **必须重启 nginx**:修改配置文件后,必须重启或重新加载 nginx 服务 +2. **清除缓存**:测试时要清除浏览器缓存或使用无痕模式 +3. **检查日志**:如果问题持续,查看 nginx 错误日志以获取更多信息 + +## 📞 下一步行动 + +请在服务器上执行以下命令: +```bash +# 1. 检查配置语法 +sudo nginx -t + +# 2. 重新加载配置 +sudo systemctl reload nginx + +# 3. 验证修复效果 +curl -X GET https://ad.ningmuyun.com/api/government/departments +``` + +如果执行后问题仍然存在,请提供: +1. nginx -t 的输出结果 +2. nginx error.log 的最新内容 +3. curl 命令的完整输出 + diff --git a/government-backend/_etc_nginx_conf.d_ningmuyun_one.conf b/government-backend/_etc_nginx_conf.d_ningmuyun_one.conf new file mode 100644 index 0000000..f820e6a --- /dev/null +++ b/government-backend/_etc_nginx_conf.d_ningmuyun_one.conf @@ -0,0 +1,792 @@ +server { + if ($host = datav.ningmuyun.com) { + return 301 https://$host$request_uri; + } # managed by Certbot + + + if ($host = wapi.ningmuyun.com) { + return 301 https://$host$request_uri; + } # managed by Certbot + + + if ($host = ad.ningmuyun.com) { + return 301 https://$host$request_uri; + } # managed by Certbot + + + if ($host = www.ningmuyun.com) { + return 301 https://$host$request_uri; + } # managed by Certbot + + + listen 80; + server_name www.ningmuyun.com ad.ningmuyun.com datav.ningmuyun.com wapi.ningmuyun.com; + return 301 https://$host$request_uri; + + + + + + + + +} + + +# HTTPS服务器配置 +server { + listen 443 ssl; + server_name www.ningmuyun.com; + root /data/website/ningmuyun/; + # SSL 证书和私钥文件的路径 + + ssl_session_timeout 5m; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; + index index.html; + location / { + try_files $uri $uri/ /index.html; # 关键修复 + add_header Cache-Control "no-cache, no-store"; + expires 0; + } + # 日志配置 + access_log /var/log/nginx/www.ningmuyun.com.access.log; + error_log /var/log/nginx/www.ningmuyun.com.error.log; + + # 百度地图API代理 + location /map-api/ { + proxy_pass https://api.map.baidu.com/; + proxy_set_header Host api.map.baidu.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # 缓存地图API响应 + proxy_cache_valid 200 1h; + proxy_cache_valid 404 1m; + } + + + + ssl_certificate /etc/letsencrypt/live/www.ningmuyun.com/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/www.ningmuyun.com/privkey.pem; # managed by Certbot +} + +# HTTPS服务器配置 +server { + listen 443 ; + server_name wapi.ningmuyun.com; + ssl_certificate /etc/letsencrypt/live/wapi.ningmuyun.com/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/wapi.ningmuyun.com/privkey.pem; # managed by Certbot + ssl_session_timeout 5m; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; + ssl_prefer_server_ciphers on; + + # 启用HSTS + add_header Strict-Transport-Security "max-age=31536000" always; + + # 客户端上传大小限制 + client_max_body_size 10M; + + # 日志配置 + access_log /var/log/nginx/wapi.ningmuyun.com.access.log; + error_log /var/log/nginx/wapi.ningmuyun.com.error.log; + +# API反向代理 + location /api/ { + proxy_pass http://localhost:5350/api/; + limit_except GET POST OPTIONS { # 确保包含 POST + deny all; + } + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # 代理超时设置 + proxy_connect_timeout 60s; + proxy_send_timeout 60s; + proxy_read_timeout 120s; + + # 缓冲区设置 + proxy_buffering on; + proxy_buffer_size 8k; + proxy_buffers 8 16k; + proxy_busy_buffers_size 16k; + # 建议添加 CORS 配置,如果前端与API不同域[1](@ref) + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With' always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With'; + add_header 'Access-Control-Allow-Credentials' 'true'; + add_header 'Content-Type' 'text/plain; charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # WebSocket代理 + location /socket.io/ { + proxy_pass http://localhost:5350; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_read_timeout 86400; + } + + # 百度地图API代理 + location /map-api/ { + proxy_pass https://api.map.baidu.com/; + proxy_set_header Host api.map.baidu.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # 缓存地图API响应 + proxy_cache_valid 200 1h; + proxy_cache_valid 404 1m; + } + # ===== 静态资源服务 - 修复重复问题 ===== + # 合并所有静态资源处理 + location ~ ^/(assets/|admin/assets/) { + # 尝试多个可能的资源位置 + try_files $uri $uri/ @check_assets; + + # 缓存策略 + expires 30d; + access_log off; + add_header Cache-Control "public"; + } +# 管理后台页面 - 关键修复:明确指定路径 + location /admin { + alias /data/vue/ningmuyun/farm/dist; + index index.html; + # 处理SPA路由 + try_files $uri $uri/ /admin/index.html; + + # 禁用HTML缓存 + add_header Cache-Control "no-cache, no-store, must-revalidate"; + add_header Pragma "no-cache"; + add_header Expires "0"; + } + + # Dashboard页面 + location /dashboard { + alias /data/vue/ningmuyun/farm/dist; + index index.html; + try_files $uri $uri/ /dashboard/index.html; + + # 禁用HTML缓存 + add_header Cache-Control "no-cache, no-store, must-revalidate"; + } + # 登录页面 + location /login { + alias /data/vue/ningmuyun/farm/dist; + index index.html; + try_files $uri $uri/ /login/index.html; + + # 禁用HTML缓存 + add_header Cache-Control "no-cache, no-store, must-revalidate"; + } + # 健康检查端点 + location /health { + access_log off; + proxy_pass http://localhost:5350/health; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + } + + # 错误页面配置 + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + + +} + + +# HTTPS服务器配置 +server { + listen 443 ; + server_name ad.ningmuyun.com; + # root /data/vue/ningmuyun/admin-system/dist/; + # index index.html; + + ssl_certificate /etc/letsencrypt/live/ad.ningmuyun.com/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/ad.ningmuyun.com/privkey.pem; # managed by Certbot + ssl_session_timeout 5m; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; + ssl_prefer_server_ciphers on; + + # 启用HSTS + add_header Strict-Transport-Security "max-age=31536000" always; + + # 客户端上传大小限制 + client_max_body_size 10M; + # root /data/vue/ningmuyun/; + # 日志配置 + access_log /var/log/nginx/ad.ningmuyun.com.access.log; + error_log /var/log/nginx/ad.ningmuyun.com.error.log; + + +# ==================== 银行项目 (bank) ==================== + location ^~ /bank/ { + # 银行项目前端静态文件目录 + # + alias /data/vue/ningmuyun/bank/dist/; # ✅ 确保末尾有斜杠 + index index.html; + try_files $uri $uri/ /bank/index.html; + # 加上 Content-Type 调试 + add_header Content-Type "text/html" always; + # 静态资源长期缓存 + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ { + expires 1y; + add_header Cache-Control "public, immutable"; + access_log off; + } + + # HTML文件不缓存 + location ~* \.html$ { + add_header Cache-Control "no-cache, no-store, must-revalidate"; + add_header Pragma "no-cache"; + expires 0; + } + } + + # 银行项目后端API代理 + location ^~ /bank/api/ { + proxy_pass http://localhost:5351/api/; # 银行后端服务端口 + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # CORS配置 + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With' always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + + # 预检请求处理 + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With'; + add_header 'Access-Control-Allow-Credentials' 'true'; + add_header 'Content-Type' 'text/plain; charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # ==================== 保险项目 (baoxian) ==================== + location ^~ /insurance/ { + # 银行项目前端静态文件目录 + # + alias /data/vue/ningmuyun/insurance/dist/; # ✅ 确保末尾有斜杠 + index index.html; + try_files $uri $uri/ /insurance/index.html; + # 加上 Content-Type 调试 + add_header Content-Type "text/html" always; + # 静态资源长期缓存 + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ { + expires 1y; + add_header Cache-Control "public, immutable"; + access_log off; + } + + # HTML文件不缓存 + location ~* \.html$ { + add_header Cache-Control "no-cache, no-store, must-revalidate"; + add_header Pragma "no-cache"; + expires 0; + } + } + + # 银行项目后端API代理 + location ^~ /insurance/api/ { + proxy_pass http://localhost:3000/api/; # 银行后端服务端口 + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # CORS配置 + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With' always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + + # 预检请求处理 + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With'; + add_header 'Access-Control-Allow-Credentials' 'true'; + add_header 'Content-Type' 'text/plain; charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # 政府认证API代理 - 处理登录等认证接口(优先级最高) + location ^~ /api/government/auth/ { + proxy_pass http://localhost:5352/api/auth/; # 政府后端认证服务端口 + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # CORS配置 + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With' always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With'; + add_header 'Access-Control-Allow-Credentials' 'true'; + add_header 'Content-Type' 'text/plain; charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # 政府API代理 - 处理其他政府相关接口(优先级第二) + location ^~ /api/government/ { + proxy_pass http://localhost:5352/api/government/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # CORS配置(同上) + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With' always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With'; + add_header 'Access-Control-Allow-Credentials' 'true'; + add_header 'Content-Type' 'text/plain; charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # ==================== 政府项目 (zhengfu) ==================== + location ^~ /government/ { + alias /data/vue/ningmuyun/government/dist/; + index index.html; + try_files $uri $uri/ /zhengfu/index.html; + + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ { + expires 1y; + add_header Cache-Control "public, immutable"; + access_log off; + } + + location ~* \.html$ { + add_header Cache-Control "no-cache, no-store, must-revalidate"; + add_header Pragma "no-cache"; + expires 0; + } + } + + # location ^~ /government/api/ { + # proxy_pass http://localhost:5352/; # 政府后端服务端口 + # } + + # ==================== 养殖项目 (yangzhi) ==================== + location ^~ /farm/ { + alias /data/vue/ningmuyun/farm/dist/; + index index.html; + try_files $uri $uri/ /farm/index.html; + + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ { + expires 1y; + add_header Cache-Control "public, immutable"; + access_log off; + } + + location ~* \.html$ { + add_header Cache-Control "no-cache, no-store, must-revalidate"; + add_header Pragma "no-cache"; + expires 0; + } + } + + location ^~ /farm/api/ { + proxy_pass http://localhost:5350/api/; # 养殖后端服务端口 + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # CORS配置(同上) + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With' always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With'; + add_header 'Access-Control-Allow-Credentials' 'true'; + add_header 'Content-Type' 'text/plain; charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + + + + + + + + + + + + # location /api/ { + # proxy_pass http://localhost:5350/api/; + # limit_except GET POST OPTIONS { # 确保包含 POST + # deny all; + # } + # proxy_set_header Host $host; + # proxy_set_header X-Real-IP $remote_addr; + # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + # proxy_set_header X-Forwarded-Proto $scheme; + + # # 代理超时设置 + # proxy_connect_timeout 60s; + # proxy_send_timeout 60s; + # proxy_read_timeout 120s; + + # # 缓冲区设置 + # proxy_buffering on; + # proxy_buffer_size 8k; + # proxy_buffers 8 16k; + # proxy_busy_buffers_size 16k; + # # 建议添加 CORS 配置,如果前端与API不同域[1](@ref) + # add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com' always; + # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always; + # add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With' always; + # add_header 'Access-Control-Allow-Credentials' 'true' always; + # if ($request_method = 'OPTIONS') { + # add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com'; + # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; + # add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With'; + # add_header 'Access-Control-Allow-Credentials' 'true'; + # add_header 'Content-Type' 'text/plain; charset=UTF-8'; + # add_header 'Content-Length' 0; + # return 204; + # } + # } + + # # WebSocket代理 + # location /socket.io/ { + # proxy_pass http://localhost:5350; + # proxy_http_version 1.1; + # proxy_set_header Upgrade $http_upgrade; + # proxy_set_header Connection "upgrade"; + # proxy_set_header Host $host; + # proxy_set_header X-Real-IP $remote_addr; + # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + # proxy_set_header X-Forwarded-Proto $scheme; + # proxy_read_timeout 86400; + # } + + # 百度地图API代理 + location /map-api/ { + proxy_pass https://api.map.baidu.com/; + proxy_set_header Host api.map.baidu.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # 缓存地图API响应 + proxy_cache_valid 200 1h; + proxy_cache_valid 404 1m; + } + # ===== 静态资源服务 - 修复重复问题 ===== + # 合并所有静态资源处理 + location ~ ^/(assets/|admin/assets/) { + # 尝试多个可能的资源位置 + try_files $uri $uri/ @check_assets; + + # 缓存策略 + expires 30d; + access_log off; + add_header Cache-Control "public"; + } +# 管理后台页面 - 关键修复:明确指定路径 + location /admin { + alias /data/vue/ningmuyun/farm/dist; + index index.html; + # 处理SPA路由 + try_files $uri $uri/ /admin/index.html; + + # 禁用HTML缓存 + add_header Cache-Control "no-cache, no-store, must-revalidate"; + add_header Pragma "no-cache"; + add_header Expires "0"; + } + + # Dashboard页面 + location /dashboard { + alias /data/vue/ningmuyun/farm/dist; + index index.html; + try_files $uri $uri/ /dashboard/index.html; + + # 禁用HTML缓存 + add_header Cache-Control "no-cache, no-store, must-revalidate"; + } + # 登录页面 + location /login { + alias /data/vue/ningmuyun/farm/dist; + index index.html; + try_files $uri $uri/ /login/index.html; + + # 禁用HTML缓存 + add_header Cache-Control "no-cache, no-store, must-revalidate"; + } + # 健康检查端点 + location /health { + access_log off; + proxy_pass http://localhost:5350/health; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + } + + # 错误页面配置 + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } +} + + +# server { +# listen 443 ; +# server_name datav.ningmuyun.com; +# root /data/datav/ningmuyun/dist/; +# index index.html; + +# ssl_session_timeout 5m; +# ssl_protocols TLSv1 TLSv1.1 TLSv1.2; +# ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; +# ssl_prefer_server_ciphers on; +# # 启用HSTS +# add_header Strict-Transport-Security "max-age=31536000" always; + +# # 客户端上传大小限制 +# client_max_body_size 10M; + +# # 日志配置 +# access_log /var/log/nginx/datav.ningmuyun.com.access.log; +# error_log /var/log/nginx/datav.ningmuyun.com.error.log; + +# location / { +# try_files $uri $uri/ /index.html; # 关键修复 +# add_header Cache-Control "no-cache, no-store"; +# expires 0; +# } + +# ssl_certificate /etc/letsencrypt/live/datav.ningmuyun.com/fullchain.pem; # managed by Certbot +# ssl_certificate_key /etc/letsencrypt/live/datav.ningmuyun.com/privkey.pem; # managed by Certbot +# } +# ============================================================ +# datav.ningmuyun.com → 四项目(与 ad.ningmuyun.com 同构) +# ============================================================ +server { + listen 443 ssl; + server_name datav.ningmuyun.com; + + ssl_certificate /etc/letsencrypt/live/datav.ningmuyun.com/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/datav.ningmuyun.com/privkey.pem; # managed by Certbot + ssl_session_timeout 5m; + ssl_protocols TLSv1.2 TLSv1.3; + ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305'; + ssl_prefer_server_ciphers on; + add_header Strict-Transport-Security "max-age=31536000" always; + + client_max_body_size 10M; + + access_log /var/log/nginx/datav.ningmuyun.com.access.log; + error_log /var/log/nginx/datav.ningmuyun.com.error.log; + + # --------------- 1. 银行项目 --------------- + location ^~ /bank/ { + alias /data/datav/ningmuyun/bank/dist/; + index index.html; + try_files $uri $uri/ /bank/index.html; + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ { + expires 1y; add_header Cache-Control "public, immutable"; access_log off; + } + location ~* \.html$ { + add_header Cache-Control "no-cache, no-store, must-revalidate"; add_header Pragma "no-cache"; expires 0; + } + } + # location ^~ /bank/api/ { + # proxy_pass http://localhost:5351/api/; + # proxy_set_header Host $host; + # proxy_set_header X-Real-IP $remote_addr; + # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + # proxy_set_header X-Forwarded-Proto $scheme; + # # CORS + # add_header 'Access-Control-Allow-Origin' 'https://datav.ningmuyun.com' always; + # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always; + # add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With' always; + # add_header 'Access-Control-Allow-Credentials' 'true' always; + # if ($request_method = 'OPTIONS') { + # add_header 'Access-Control-Allow-Origin' 'https://datav.ningmuyun.com'; + # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; + # add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With'; + # add_header 'Access-Control-Allow-Credentials' 'true'; + # add_header 'Content-Type' 'text/plain; charset=UTF-8'; + # add_header 'Content-Length' 0; + # return 204; + # } + # } + + # --------------- 2. 保险项目 --------------- + location ^~ /insurance/ { + alias /data/datav/ningmuyun/insurance/dist/; + index index.html; + try_files $uri $uri/ /insurance/index.html; + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ { + expires 1y; add_header Cache-Control "public, immutable"; access_log off; + } + location ~* \.html$ { + add_header Cache-Control "no-cache, no-store, must-revalidate"; add_header Pragma "no-cache"; expires 0; + } + } + # location ^~ /insurance/api/ { + # proxy_pass http://localhost:3000/api/; + # # 同上 CORS + # add_header 'Access-Control-Allow-Origin' 'https://datav.ningmuyun.com' always; + # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always; + # add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With' always; + # add_header 'Access-Control-Allow-Credentials' 'true' always; + # if ($request_method = 'OPTIONS') { + # add_header 'Access-Control-Allow-Origin' 'https://datav.ningmuyun.com'; + # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; + # add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With'; + # add_header 'Access-Control-Allow-Credentials' 'true'; + # add_header 'Content-Type' 'text/plain; charset=UTF-8'; + # add_header 'Content-Length' 0; + # return 204; + # } + # } + + # --------------- 3. 政府项目 --------------- + location ^~ /government/ { + alias /data/datav/ningmuyun/government/dist/; + index index.html; + try_files $uri $uri/ /zhengfu/index.html; + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ { + expires 1y; add_header Cache-Control "public, immutable"; access_log off; + } + location ~* \.html$ { + add_header Cache-Control "no-cache, no-store, must-revalidate"; add_header Pragma "no-cache"; expires 0; + } + } + # location ^~ /zhengfu/api/ { + # proxy_pass http://localhost:5353/; + # # 同上 CORS + # add_header 'Access-Control-Allow-Origin' 'https://datav.ningmuyun.com' always; + # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always; + # add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With' always; + # add_header 'Access-Control-Allow-Credentials' 'true' always; + # if ($request_method = 'OPTIONS') { + # add_header 'Access-Control-Allow-Origin' 'https://datav.ningmuyun.com'; + # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; + # add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With'; + # add_header 'Access-Control-Allow-Credentials' 'true'; + # add_header 'Content-Type' 'text/plain; charset=UTF-8'; + # add_header 'Content-Length' 0; + # return 204; + # } + # } + + # --------------- 4. 养殖项目 --------------- + location ^~ /farm/ { + alias /data/datav/ningmuyun/farm/dist/; + index index.html; + try_files $uri $uri/ /farm/index.html; + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ { + expires 1y; add_header Cache-Control "public, immutable"; access_log off; + } + location ~* \.html$ { + add_header Cache-Control "no-cache, no-store, must-revalidate"; add_header Pragma "no-cache"; expires 0; + } + } + # location ^~ /farm/api/ { + # proxy_pass http://localhost:5350/api/; + # # 同上 CORS + # add_header 'Access-Control-Allow-Origin' 'https://datav.ningmuyun.com' always; + # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always; + # add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With' always; + # add_header 'Access-Control-Allow-Credentials' 'true' always; + # if ($request_method = 'OPTIONS') { + # add_header 'Access-Control-Allow-Origin' 'https://datav.ningmuyun.com'; + # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; + # add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With'; + # add_header 'Access-Control-Allow-Credentials' 'true'; + # add_header 'Content-Type' 'text/plain; charset=UTF-8'; + # add_header 'Content-Length' 0; + # return 204; + # } + # } + + # --------------- 公共附加:WebSocket + 地图 --------------- + # location /socket.io/ { + # proxy_pass http://localhost:5350; + # proxy_http_version 1.1; + # proxy_set_header Upgrade $http_upgrade; + # proxy_set_header Connection "upgrade"; + # proxy_set_header Host $host; + # proxy_set_header X-Real-IP $remote_addr; + # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + # proxy_set_header X-Forwarded-Proto $scheme; + # proxy_read_timeout 86400; + # } + + # location /map-api/ { + # proxy_pass https://api.map.baidu.com/; + # proxy_set_header Host api.map.baidu.com; + # proxy_set_header X-Real-IP $remote_addr; + # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + # proxy_set_header X-Forwarded-Proto $scheme; + # proxy_cache_valid 200 1h; + # proxy_cache_valid 404 1m; + # } + + # --------------- 默认兜底(可选) --------------- + location / { + alias /data/datav/ningmuyun/farm/dist/; + index index.html; + try_files $uri $uri/ /index.html; + } +} + \ No newline at end of file diff --git a/government-backend/app.js b/government-backend/app.js index 36edf7d..ff4cd9d 100644 --- a/government-backend/app.js +++ b/government-backend/app.js @@ -78,6 +78,7 @@ app.use((err, req, res, next) => { // 启动服务器 const PORT = process.env.PORT || 5352; -app.listen(PORT, () => { - console.log(`政府管理系统后端服务已启动,端口: ${PORT}`); +const HOST = process.env.HOST || '0.0.0.0'; +app.listen(PORT, HOST, () => { + console.log(`政府管理系统后端服务已启动,地址: ${HOST}:${PORT}`); }); \ No newline at end of file diff --git a/government-backend/debug-nginx-issue.js b/government-backend/debug-nginx-issue.js new file mode 100644 index 0000000..2d84443 --- /dev/null +++ b/government-backend/debug-nginx-issue.js @@ -0,0 +1,106 @@ +const axios = require('axios'); + +// 调试nginx问题 +async function debugNginxIssue() { + console.log('🔍 调试nginx问题...\n'); + + const testCases = [ + { + name: '直接测试后端服务', + url: 'http://localhost:5352/api/government/departments', + expected: '应该返回200' + }, + { + name: '通过nginx测试部门接口', + url: 'https://ad.ningmuyun.com/api/government/departments', + expected: '应该返回200' + }, + { + name: '通过nginx测试登录接口', + url: 'https://ad.ningmuyun.com/api/government/auth/login', + method: 'POST', + data: { username: 'admin', password: 'admin123' }, + expected: '应该返回401认证错误' + }, + { + name: '测试重复路径接口', + url: 'https://ad.ningmuyun.com/api/government/government/departments', + expected: '应该返回200(如果nginx配置有问题)' + } + ]; + + for (const test of testCases) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + console.log(` 预期: ${test.expected}`); + + try { + const config = { + method: test.method || 'GET', + url: test.url, + headers: { + 'Content-Type': 'application/json' + }, + timeout: 10000, + validateStatus: function (status) { + return status < 500; // 接受所有小于500的状态码 + } + }; + + if (test.data) { + config.data = test.data; + } + + const response = await axios(config); + + console.log(` ✅ 状态码: ${response.status}`); + + if (response.status === 200) { + console.log(` ✅ 成功: 接口正常工作`); + if (Array.isArray(response.data)) { + console.log(` 📊 数据量: ${response.data.length} 条记录`); + } else if (response.data && typeof response.data === 'object') { + console.log(` 📊 数据类型: 对象,包含 ${Object.keys(response.data).length} 个字段`); + } + } else if (response.status === 401) { + console.log(` ✅ 正常: 需要认证(接口路径正确)`); + } else if (response.status === 404) { + console.log(` ❌ 错误: 接口不存在`); + } + + } catch (error) { + if (error.response) { + console.log(` ❌ 状态码: ${error.response.status}`); + console.log(` ❌ 错误: ${error.response.statusText}`); + + if (error.response.status === 404) { + console.log(` 🔍 分析: nginx配置问题,路径映射不正确`); + } + } else if (error.request) { + console.log(` ❌ 网络错误: ${error.message}`); + } else { + console.log(` ❌ 请求配置错误: ${error.message}`); + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 调试完成!'); + console.log(''); + console.log('📝 可能的问题:'); + console.log(' 1. nginx配置语法错误'); + console.log(' 2. nginx服务未重启'); + console.log(' 3. location规则冲突'); + console.log(' 4. proxy_pass配置错误'); + console.log(''); + console.log('🔄 建议的解决步骤:'); + console.log(' 1. 检查nginx配置语法: sudo nginx -t'); + console.log(' 2. 重启nginx服务: sudo systemctl reload nginx'); + console.log(' 3. 检查nginx错误日志: sudo tail -f /var/log/nginx/error.log'); + console.log(' 4. 检查nginx访问日志: sudo tail -f /var/log/nginx/ad.ningmuyun.com.access.log'); +} + +// 运行调试 +debugNginxIssue().catch(console.error); diff --git a/government-backend/deploy.sh b/government-backend/deploy.sh new file mode 100644 index 0000000..703e328 --- /dev/null +++ b/government-backend/deploy.sh @@ -0,0 +1,98 @@ +#!/bin/bash + +# Government Backend 部署脚本 +# 用于自动化部署 government-backend 服务 + +set -e + +echo "🚀 开始部署 Government Backend..." + +# 1. 检查环境 +echo "📋 检查环境..." +if ! command -v node &> /dev/null; then + echo "❌ Node.js 未安装" + exit 1 +fi + +if ! command -v npm &> /dev/null; then + echo "❌ npm 未安装" + exit 1 +fi + +if ! command -v pm2 &> /dev/null; then + echo "📦 安装 PM2..." + npm install -g pm2 +fi + +# 2. 进入项目目录 +PROJECT_DIR="/var/www/government-backend" +if [ ! -d "$PROJECT_DIR" ]; then + echo "❌ 项目目录不存在: $PROJECT_DIR" + exit 1 +fi + +cd $PROJECT_DIR + +# 3. 更新代码 +echo "📥 更新代码..." +git pull origin main + +# 4. 安装依赖 +echo "📦 安装依赖..." +npm install --production + +# 5. 创建日志目录 +echo "📁 创建日志目录..." +mkdir -p logs + +# 6. 检查配置文件 +if [ ! -f ".env" ]; then + echo "⚠️ .env 文件不存在,创建默认配置..." + cat > .env << EOF +NODE_ENV=production +PORT=5352 +DB_DIALECT=mysql +DB_HOST=129.211.213.226 +DB_PORT=9527 +DB_DATABASE=ningxia_zhengfu +DB_USER=root +DB_PASSWORD=aiotAiot123! +JWT_SECRET=government_super_secret_jwt_key_2024_very_long_and_secure +LOG_LEVEL=info +CORS_ORIGIN=* +UPLOAD_PATH=./uploads +MAX_FILE_SIZE=10485760 +REDIS_HOST=localhost +REDIS_PORT=6379 +REDIS_PASSWORD= +EOF +fi + +# 7. 停止现有进程 +echo "🛑 停止现有进程..." +pm2 stop government-backend 2>/dev/null || true +pm2 delete government-backend 2>/dev/null || true + +# 8. 启动服务 +echo "🚀 启动服务..." +pm2 start ecosystem.config.js --env production + +# 9. 保存PM2配置 +echo "💾 保存PM2配置..." +pm2 save + +# 10. 设置开机自启 +echo "🔄 设置开机自启..." +pm2 startup + +# 11. 检查服务状态 +echo "✅ 检查服务状态..." +sleep 3 +pm2 status + +echo "" +echo "🎉 部署完成!" +echo "📊 服务状态: pm2 status" +echo "📝 查看日志: pm2 logs government-backend" +echo "🔍 监控面板: pm2 monit" +echo "🌐 服务地址: http://localhost:5352" \ No newline at end of file diff --git a/government-backend/diagnose-url-issue.js b/government-backend/diagnose-url-issue.js new file mode 100644 index 0000000..dd741d4 --- /dev/null +++ b/government-backend/diagnose-url-issue.js @@ -0,0 +1,75 @@ +const axios = require('axios'); + +// 诊断URL重复问题 +async function diagnoseURLIssue() { + console.log('🔍 诊断政府端API URL重复问题...\n'); + + const testURLs = [ + { + name: '正确的部门接口URL', + url: 'https://ad.ningmuyun.com/api/government/departments', + description: '应该是正确的API路径' + }, + { + name: '错误的重复URL', + url: 'https://ad.ningmuyun.com/api/government/government/departments', + description: '您提到的重复路径问题' + }, + { + name: '静态文件路径测试', + url: 'https://ad.ningmuyun.com/government/', + description: '测试静态文件路径是否正常' + } + ]; + + for (const test of testURLs) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + console.log(` 说明: ${test.description}`); + + try { + const response = await axios.get(test.url, { + timeout: 10000, + validateStatus: function (status) { + return status < 500; // 接受所有小于500的状态码 + } + }); + + console.log(` ✅ 状态码: ${response.status}`); + console.log(` ✅ 响应类型: ${response.headers['content-type']}`); + + if (response.status === 200) { + if (response.headers['content-type']?.includes('application/json')) { + console.log(` ✅ 返回JSON数据: ${JSON.stringify(response.data).substring(0, 100)}...`); + } else { + console.log(` ✅ 返回HTML内容 (可能是静态文件)`); + } + } else if (response.status === 404) { + console.log(` ❌ 404错误: 路径不存在`); + } else if (response.status === 401) { + console.log(` ✅ 401错误: 需要认证 (API接口正常)`); + } + + } catch (error) { + if (error.response) { + console.log(` ❌ 状态码: ${error.response.status}`); + console.log(` ❌ 错误: ${error.response.statusText}`); + } else { + console.log(` ❌ 网络错误: ${error.message}`); + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 诊断完成!'); + console.log(''); + console.log('📝 分析结果:'); + console.log(' - 如果正确的URL返回404,说明nginx配置有问题'); + console.log(' - 如果错误的URL也能访问,说明有路径重写问题'); + console.log(' - 如果静态文件路径正常,说明nginx基本配置正确'); +} + +// 运行诊断 +diagnoseURLIssue().catch(console.error); diff --git a/government-backend/ecosystem.config.js b/government-backend/ecosystem.config.js new file mode 100644 index 0000000..71b69a3 --- /dev/null +++ b/government-backend/ecosystem.config.js @@ -0,0 +1,38 @@ +module.exports = { + apps: [{ + name: 'government-backend', + script: 'app.js', + cwd: '/var/www/government-backend', + instances: 1, + autorestart: true, + watch: false, + max_memory_restart: '1G', + env: { + NODE_ENV: 'development', + PORT: 5352 + }, + env_production: { + NODE_ENV: 'production', + PORT: 5352, + DB_DIALECT: 'mysql', + DB_HOST: '129.211.213.226', + DB_PORT: 9527, + DB_DATABASE: 'ningxia_zhengfu', + DB_USER: 'root', + DB_PASSWORD: 'aiotAiot123!', + JWT_SECRET: 'government_super_secret_jwt_key_2024_very_long_and_secure', + LOG_LEVEL: 'info' + }, + error_file: './logs/err.log', + out_file: './logs/out.log', + log_file: './logs/combined.log', + time: true, + log_date_format: 'YYYY-MM-DD HH:mm:ss Z', + merge_logs: true, + max_restarts: 10, + min_uptime: '10s', + kill_timeout: 5000, + listen_timeout: 8000, + shutdown_with_message: true + }] +}; \ No newline at end of file diff --git a/government-backend/final-nginx-test.js b/government-backend/final-nginx-test.js new file mode 100644 index 0000000..8b6a069 --- /dev/null +++ b/government-backend/final-nginx-test.js @@ -0,0 +1,173 @@ +const axios = require('axios'); + +// 最终nginx配置测试 +async function finalNginxTest() { + console.log('🔍 最终nginx配置测试...\n'); + console.log('📝 修复说明:'); + console.log(' 将 proxy_pass http://localhost:5352/api/government/'); + console.log(' 改为 proxy_pass http://localhost:5352'); + console.log(' 这样可以保持完整路径,避免路径重复\n'); + + const testCases = [ + { + name: '部门列表接口', + url: 'https://ad.ningmuyun.com/api/government/departments', + shouldWork: true + }, + { + name: '数据中心接口', + url: 'https://ad.ningmuyun.com/api/government/data-center', + shouldWork: true + }, + { + name: '市场价格接口', + url: 'https://ad.ningmuyun.com/api/government/market-price?type=beef', + shouldWork: true + }, + { + name: '岗位列表接口', + url: 'https://ad.ningmuyun.com/api/government/positions', + shouldWork: true + }, + { + name: '养殖户列表接口', + url: 'https://ad.ningmuyun.com/api/government/farmers', + shouldWork: true + }, + { + name: '登录接口', + url: 'https://ad.ningmuyun.com/api/government/auth/login', + method: 'POST', + data: { username: 'admin', password: 'admin123' }, + shouldWork: true, + expectedStatus: 401 + }, + { + name: '重复路径接口(应该404)', + url: 'https://ad.ningmuyun.com/api/government/government/departments', + shouldWork: false + } + ]; + + let successCount = 0; + let failCount = 0; + + for (const test of testCases) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + + try { + const config = { + method: test.method || 'GET', + url: test.url, + headers: { + 'Content-Type': 'application/json' + }, + timeout: 10000, + validateStatus: function (status) { + return status < 500; + } + }; + + if (test.data) { + config.data = test.data; + } + + const response = await axios(config); + + console.log(` 状态码: ${response.status}`); + + if (test.shouldWork) { + if (test.expectedStatus) { + if (response.status === test.expectedStatus) { + console.log(` ✅ 成功: 返回预期状态码 ${test.expectedStatus}`); + successCount++; + } else { + console.log(` ❌ 失败: 预期状态码 ${test.expectedStatus},实际 ${response.status}`); + failCount++; + } + } else if (response.status === 200) { + console.log(` ✅ 成功: 接口正常工作`); + if (Array.isArray(response.data)) { + console.log(` 📊 数据量: ${response.data.length} 条记录`); + } else if (response.data && typeof response.data === 'object') { + console.log(` 📊 数据类型: 对象,包含 ${Object.keys(response.data).length} 个字段`); + } + successCount++; + } else if (response.status === 404) { + console.log(` ❌ 失败: 接口返回 404`); + failCount++; + } + } else { + if (response.status === 404) { + console.log(` ✅ 成功: 正确返回 404(重复路径应该不存在)`); + successCount++; + } else if (response.status === 200) { + console.log(` ❌ 失败: 重复路径不应该工作`); + failCount++; + } + } + + } catch (error) { + if (error.response) { + console.log(` 状态码: ${error.response.status}`); + + if (test.shouldWork) { + console.log(` ❌ 失败: ${error.response.statusText}`); + failCount++; + } else { + if (error.response.status === 404) { + console.log(` ✅ 成功: 正确返回 404`); + successCount++; + } + } + } else { + console.log(` ❌ 网络错误: ${error.message}`); + failCount++; + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 测试完成!'); + console.log(` ✅ 成功: ${successCount} 个`); + console.log(` ❌ 失败: ${failCount} 个`); + console.log(''); + + if (failCount === 0) { + console.log('🎉 所有测试通过!Nginx配置修复成功!'); + } else { + console.log('⚠️ 还有测试失败,请检查:'); + console.log(' 1. Nginx配置是否正确修改'); + console.log(' 2. Nginx服务是否已重启'); + console.log(' 3. 浏览器缓存是否已清除'); + console.log(''); + console.log('🔄 重启Nginx:'); + console.log(' sudo nginx -t'); + console.log(' sudo systemctl reload nginx'); + } + + console.log(''); + console.log('📝 最终nginx配置:'); + console.log(' location ^~ /api/government/auth/ {'); + console.log(' proxy_pass http://localhost:5352/api/auth/;'); + console.log(' }'); + console.log(' location ^~ /api/government/ {'); + console.log(' proxy_pass http://localhost:5352;'); + console.log(' }'); + console.log(''); + console.log('🔄 路径映射:'); + console.log(' /api/government/departments → http://localhost:5352/api/government/departments'); + console.log(' /api/government/data-center → http://localhost:5352/api/government/data-center'); + console.log(' /api/government/market-price → http://localhost:5352/api/government/market-price'); + console.log(''); + console.log('🚨 重要提醒:'); + console.log(' 修改nginx配置后,必须重启nginx服务才能生效!'); + console.log(' sudo nginx -t # 检查配置语法'); + console.log(' sudo systemctl reload nginx # 重新加载配置'); +} + +// 运行测试 +finalNginxTest().catch(console.error); diff --git a/government-backend/nginx-ad.ningmuyun.com.conf b/government-backend/nginx-ad.ningmuyun.com.conf deleted file mode 100644 index 5e541e0..0000000 --- a/government-backend/nginx-ad.ningmuyun.com.conf +++ /dev/null @@ -1,119 +0,0 @@ -server { - listen 443 ssl http2; - server_name ad.ningmuyun.com; - - # SSL证书配置(需要替换为实际的证书路径) - ssl_certificate /etc/ssl/certs/ad.ningmuyun.com.crt; - ssl_certificate_key /etc/ssl/private/ad.ningmuyun.com.key; - - # SSL配置 - ssl_protocols TLSv1.2 TLSv1.3; - ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384; - ssl_prefer_server_ciphers off; - - # 政府端前端静态文件 - location /government/ { - alias /var/www/government-admin-system/dist/; - try_files $uri $uri/ /government/index.html; - - # 静态资源缓存 - location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { - expires 1y; - add_header Cache-Control "public, immutable"; - } - } - - # 政府端后端API代理 - location /api/government/ { - proxy_pass http://127.0.0.1:5352/api/government/; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_cache_bypass $http_upgrade; - - # CORS headers - add_header Access-Control-Allow-Origin https://ad.ningmuyun.com; - add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"; - add_header Access-Control-Allow-Headers "Content-Type, Authorization, X-Requested-With"; - add_header Access-Control-Allow-Credentials true; - - # 处理预检请求 - if ($request_method = 'OPTIONS') { - add_header Access-Control-Allow-Origin https://ad.ningmuyun.com; - add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"; - add_header Access-Control-Allow-Headers "Content-Type, Authorization, X-Requested-With"; - add_header Access-Control-Allow-Credentials true; - add_header Content-Length 0; - add_header Content-Type text/plain; - return 204; - } - } - - # 保险端前端静态文件 - location /insurance/ { - alias /var/www/insurance-admin-system/dist/; - try_files $uri $uri/ /insurance/index.html; - - # 静态资源缓存 - location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { - expires 1y; - add_header Cache-Control "public, immutable"; - } - } - - # 保险端后端API代理 - location /insurance/api/ { - proxy_pass http://127.0.0.1:3000/api/; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_cache_bypass $http_upgrade; - - # CORS headers - add_header Access-Control-Allow-Origin https://ad.ningmuyun.com; - add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"; - add_header Access-Control-Allow-Headers "Content-Type, Authorization, X-Requested-With"; - add_header Access-Control-Allow-Credentials true; - - # 处理预检请求 - if ($request_method = 'OPTIONS') { - add_header Access-Control-Allow-Origin https://ad.ningmuyun.com; - add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"; - add_header Access-Control-Allow-Headers "Content-Type, Authorization, X-Requested-With"; - add_header Access-Control-Allow-Credentials true; - add_header Content-Length 0; - add_header Content-Type text/plain; - return 204; - } - } - - # 健康检查 - location /health { - proxy_pass http://127.0.0.1:5352/health; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - # 根路径重定向到政府端 - location = / { - return 301 /government/; - } -} - -# HTTP重定向到HTTPS -server { - listen 80; - server_name ad.ningmuyun.com; - return 301 https://$server_name$request_uri; -} - diff --git a/government-backend/nginx-config-check.md b/government-backend/nginx-config-check.md new file mode 100644 index 0000000..eab0fb8 --- /dev/null +++ b/government-backend/nginx-config-check.md @@ -0,0 +1,63 @@ +# Nginx配置检查说明 + +## 问题分析 + +### 当前状态 +- ✅ 后端服务正常:`http://localhost:5352/api/government/departments` 返回200 +- ✅ 登录接口正常:`https://ad.ningmuyun.com/api/government/auth/login` 返回401 +- ❌ 其他接口404:`https://ad.ningmuyun.com/api/government/departments` 返回404 + +### 问题根因 +nginx配置中的 `location ^~ /api/government/` 规则没有正确工作。 + +### 当前nginx配置 +```nginx +# 政府认证API代理 - 处理登录等认证接口(优先级高于通用government代理) +location ^~ /api/government/auth/ { + proxy_pass http://localhost:5352/api/auth/; + # ... CORS配置 +} + +# 政府API代理 - 处理其他政府相关接口 +location ^~ /api/government/ { + proxy_pass http://localhost:5352/api/government/; + # ... CORS配置 +} +``` + +### 可能的问题 +1. **nginx配置语法错误** - 需要检查配置语法 +2. **nginx服务未重启** - 配置修改后需要重启 +3. **location规则冲突** - 可能有其他规则干扰 +4. **proxy_pass配置错误** - 路径映射不正确 + +## 解决步骤 + +### 1. 检查nginx配置语法 +```bash +sudo nginx -t +``` + +### 2. 重启nginx服务 +```bash +sudo systemctl reload nginx +# 或者 +sudo systemctl restart nginx +``` + +### 3. 检查nginx错误日志 +```bash +sudo tail -f /var/log/nginx/error.log +``` + +### 4. 检查nginx访问日志 +```bash +sudo tail -f /var/log/nginx/ad.ningmuyun.com.access.log +``` + +## 预期结果 +修复后,以下接口应该正常工作: +- ✅ `https://ad.ningmuyun.com/api/government/auth/login` (登录) +- ✅ `https://ad.ningmuyun.com/api/government/departments` (部门列表) +- ✅ `https://ad.ningmuyun.com/api/government/data-center` (数据中心) +- ✅ `https://ad.ningmuyun.com/api/government/market-price` (市场价格) diff --git a/government-backend/nginx-config-test.md b/government-backend/nginx-config-test.md new file mode 100644 index 0000000..8428cd2 --- /dev/null +++ b/government-backend/nginx-config-test.md @@ -0,0 +1,77 @@ +# Nginx配置测试说明 + +## 问题描述 +- 登录接口:`/api/government/auth/login` ✅ 正常 +- 其他接口:`/api/government/departments` ❌ 报错 +- 错误URL:`/api/government/government/departments` (路径重复) + +## 当前nginx配置分析 + +### Server块1: ad.ningmuyun.com (HTTPS 443) +```nginx +# 静态文件服务 +location ^~ /government/ { + alias /data/vue/ningmuyun/government/dist/; + # 处理前端静态文件 +} + +# 认证API代理 (优先级最高) +location ^~ /api/government/auth/ { + proxy_pass http://localhost:5352/api/auth/; + # 处理登录等认证接口 +} + +# 其他API代理 (优先级较低) +location ^~ /api/government/ { + proxy_pass http://localhost:5352/api/government/; + # 处理其他政府API接口 +} +``` + +## 路径映射测试 + +| 请求路径 | 匹配规则 | 代理目标 | 预期结果 | +|---------|---------|---------|---------| +| `/api/government/auth/login` | `^~ /api/government/auth/` | `/api/auth/login` | ✅ 正常 | +| `/api/government/departments` | `^~ /api/government/` | `/api/government/departments` | ✅ 应该正常 | +| `/api/government/government/departments` | 无匹配 | 404 | ❌ 不应该出现 | + +## 可能的问题原因 + +1. **前端请求路径错误**:前端可能错误地构造了重复路径 +2. **nginx重写规则**:可能有隐藏的rewrite规则导致路径重复 +3. **代理配置问题**:proxy_pass的路径处理可能有问题 + +## 测试步骤 + +1. 运行诊断脚本: + ```bash + node diagnose-url-issue.js + ``` + +2. 检查nginx错误日志: + ```bash + sudo tail -f /var/log/nginx/error.log + ``` + +3. 检查nginx访问日志: + ```bash + sudo tail -f /var/log/nginx/ad.ningmuyun.com.access.log + ``` + +## 修复建议 + +如果确认是nginx配置问题,可能需要: + +1. 调整location规则的顺序 +2. 添加更具体的路径匹配规则 +3. 检查是否有隐藏的rewrite规则 +4. 验证proxy_pass的路径处理 + +## 验证方法 + +修复后,以下URL应该正常工作: +- ✅ `https://ad.ningmuyun.com/api/government/auth/login` +- ✅ `https://ad.ningmuyun.com/api/government/departments` +- ✅ `https://ad.ningmuyun.com/api/government/market-price` +- ❌ `https://ad.ningmuyun.com/api/government/government/departments` (不应该存在) diff --git a/government-backend/nginx-问题分析报告.md b/government-backend/nginx-问题分析报告.md new file mode 100644 index 0000000..c9eb26f --- /dev/null +++ b/government-backend/nginx-问题分析报告.md @@ -0,0 +1,113 @@ +# 政府端API 404错误问题分析报告 + +## 问题描述 +- **错误URL**: `https://ad.ningmuyun.com/api/government/market-price?type=beef` +- **错误状态**: 404 Not Found +- **影响范围**: 政府端管理系统市场价格功能 + +## 问题根因分析 + +### 1. 后端代码检查 ✅ +- **路由配置**: `government-backend/routes/government.js` 第11行 + ```javascript + router.get('/market-price', governmentController.getMarketPrice); + ``` +- **控制器方法**: `governmentController.getMarketPrice` 已正确实现 +- **应用路由注册**: `app.js` 第50行已正确注册 + ```javascript + app.use('/api/government', require('./routes/government')); + ``` + +### 2. 前端代码检查 ✅ +- **API调用**: `government-admin/src/views/MarketPrice.vue` 第94行 + ```javascript + const response = await axios.get('/api/government/market-price', { + params: { type } + }) + ``` +- **代理配置**: `vite.config.js` 开发环境代理配置正确 + +### 3. Nginx配置问题 ❌ +**问题所在**: nginx配置中政府API的路径匹配错误 + +**原始错误配置**: +```nginx +location ^~ /government/api/ { + proxy_pass http://localhost:5352/; +} +``` + +**问题分析**: +- 前端请求路径: `/api/government/market-price` +- nginx匹配路径: `/government/api/` +- 路径不匹配导致404错误 + +## 解决方案 + +### 修复nginx配置 +将政府API代理路径从 `/government/api/` 修改为 `/api/government/`: + +```nginx +# 政府API代理 - 修复路径匹配问题 +location ^~ /api/government/ { + proxy_pass http://localhost:5352/api/government/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # CORS配置 + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With' always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With'; + add_header 'Access-Control-Allow-Credentials' 'true'; + add_header 'Content-Type' 'text/plain; charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } +} +``` + +## 部署步骤 + +1. **备份当前nginx配置**: + ```bash + sudo cp /etc/nginx/conf.d/ningmuyun_one.conf /etc/nginx/conf.d/ningmuyun_one.conf.backup + ``` + +2. **应用修复配置**: + ```bash + sudo cp nginx-fix-government-api.conf /etc/nginx/conf.d/ + # 或者手动编辑配置文件,将上述配置添加到 ad.ningmuyun.com server 块中 + ``` + +3. **测试nginx配置**: + ```bash + sudo nginx -t + ``` + +4. **重新加载nginx**: + ```bash + sudo systemctl reload nginx + ``` + +5. **验证修复**: + ```bash + curl -k https://ad.ningmuyun.com/api/government/market-price?type=beef + ``` + +## 预期结果 +修复后,`https://ad.ningmuyun.com/api/government/market-price?type=beef` 应该返回正确的市场价格数据,而不是404错误。 + +## 相关文件 +- `government-backend/_etc_nginx_conf.d_ningmuyun_one.conf` - 主nginx配置文件 +- `government-backend/nginx-fix-government-api.conf` - 修复配置片段 +- `government-backend/routes/government.js` - 后端路由 +- `government-backend/controllers/governmentController.js` - 控制器实现 +- `government-admin/src/views/MarketPrice.vue` - 前端页面 \ No newline at end of file diff --git a/government-backend/test-after-restart.js b/government-backend/test-after-restart.js new file mode 100644 index 0000000..63b98de --- /dev/null +++ b/government-backend/test-after-restart.js @@ -0,0 +1,116 @@ +const axios = require('axios'); + +// 测试重启后的API接口 +async function testAfterRestart() { + console.log('🔍 测试nginx重启后的API接口...\n'); + + const testCases = [ + { + name: '登录接口测试', + url: 'https://ad.ningmuyun.com/api/government/auth/login', + method: 'POST', + data: { username: 'admin', password: 'admin123' }, + expected: '应该返回401认证错误(接口正常)' + }, + { + name: '部门列表接口测试', + url: 'https://ad.ningmuyun.com/api/government/departments', + method: 'GET', + data: null, + expected: '应该返回200或401' + }, + { + name: '数据中心接口测试', + url: 'https://ad.ningmuyun.com/api/government/data-center', + method: 'GET', + data: null, + expected: '应该返回200或401' + }, + { + name: '市场价格接口测试', + url: 'https://ad.ningmuyun.com/api/government/market-price?type=beef', + method: 'GET', + data: null, + expected: '应该返回200或401' + }, + { + name: '岗位列表接口测试', + url: 'https://ad.ningmuyun.com/api/government/positions', + method: 'GET', + data: null, + expected: '应该返回200或401' + } + ]; + + for (const test of testCases) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + console.log(` 预期: ${test.expected}`); + + try { + const config = { + method: test.method, + url: test.url, + headers: { + 'Content-Type': 'application/json' + }, + timeout: 10000, + validateStatus: function (status) { + return status < 500; // 接受所有小于500的状态码 + } + }; + + if (test.data) { + config.data = test.data; + } + + const response = await axios(config); + + console.log(` ✅ 状态码: ${response.status}`); + + if (response.status === 200) { + console.log(` ✅ 成功: 接口正常工作`); + if (Array.isArray(response.data)) { + console.log(` 📊 数据量: ${response.data.length} 条记录`); + } else if (response.data && typeof response.data === 'object') { + console.log(` 📊 数据类型: 对象`); + } + } else if (response.status === 401) { + console.log(` ✅ 正常: 需要认证(接口路径正确)`); + } else if (response.status === 404) { + console.log(` ❌ 错误: 接口不存在`); + } + + } catch (error) { + if (error.response) { + console.log(` ❌ 状态码: ${error.response.status}`); + console.log(` ❌ 错误: ${error.response.statusText}`); + + if (error.response.status === 404) { + console.log(` 🔍 分析: nginx配置可能还有问题`); + } + } else if (error.request) { + console.log(` ❌ 网络错误: ${error.message}`); + } else { + console.log(` ❌ 请求配置错误: ${error.message}`); + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 测试完成!'); + console.log(''); + console.log('📝 当前nginx配置:'); + console.log(' location ^~ /api/government/ {'); + console.log(' proxy_pass http://localhost:5352/api/government/;'); + console.log(' }'); + console.log(''); + console.log('🔄 路径映射:'); + console.log(' /api/government/departments → http://localhost:5352/api/government/departments'); + console.log(' /api/government/positions → http://localhost:5352/api/government/positions'); +} + +// 运行测试 +testAfterRestart().catch(console.error); diff --git a/government-backend/test-final-fix.js b/government-backend/test-final-fix.js new file mode 100644 index 0000000..e39dd01 --- /dev/null +++ b/government-backend/test-final-fix.js @@ -0,0 +1,126 @@ +const axios = require('axios'); + +// 测试最终修复效果 +async function testFinalFix() { + console.log('🔍 测试最终修复效果...\n'); + + const testCases = [ + { + name: '部门列表接口', + url: 'https://ad.ningmuyun.com/api/government/departments', + expected: '应该返回200状态码和部门数据' + }, + { + name: '数据中心接口', + url: 'https://ad.ningmuyun.com/api/government/data-center', + expected: '应该返回200状态码和统计数据' + }, + { + name: '市场价格接口', + url: 'https://ad.ningmuyun.com/api/government/market-price?type=beef', + expected: '应该返回200状态码和价格数据' + }, + { + name: '岗位列表接口', + url: 'https://ad.ningmuyun.com/api/government/positions', + expected: '应该返回200状态码和岗位数据' + }, + { + name: '养殖户列表接口', + url: 'https://ad.ningmuyun.com/api/government/farmers', + expected: '应该返回200状态码和养殖户数据' + }, + { + name: '养殖类型接口', + url: 'https://ad.ningmuyun.com/api/government/farm-types', + expected: '应该返回200状态码和养殖类型数据' + }, + { + name: '登录接口', + url: 'https://ad.ningmuyun.com/api/government/auth/login', + method: 'POST', + data: { username: 'admin', password: 'admin123' }, + expected: '应该返回401认证错误(接口正常)' + } + ]; + + for (const test of testCases) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + console.log(` 预期: ${test.expected}`); + + try { + const config = { + method: test.method || 'GET', + url: test.url, + headers: { + 'Content-Type': 'application/json' + }, + timeout: 10000, + validateStatus: function (status) { + return status < 500; // 接受所有小于500的状态码 + } + }; + + if (test.data) { + config.data = test.data; + } + + const response = await axios(config); + + console.log(` ✅ 状态码: ${response.status}`); + + if (response.status === 200) { + console.log(` ✅ 成功: 接口正常工作`); + if (Array.isArray(response.data)) { + console.log(` 📊 数据量: ${response.data.length} 条记录`); + } else if (response.data && typeof response.data === 'object') { + console.log(` 📊 数据类型: 对象,包含 ${Object.keys(response.data).length} 个字段`); + } + } else if (response.status === 401) { + console.log(` ✅ 正常: 需要认证(接口路径正确)`); + } else if (response.status === 404) { + console.log(` ❌ 错误: 接口不存在`); + } + + } catch (error) { + if (error.response) { + console.log(` ❌ 状态码: ${error.response.status}`); + console.log(` ❌ 错误: ${error.response.statusText}`); + + if (error.response.status === 404) { + console.log(` 🔍 分析: nginx配置可能还有问题`); + } + } else if (error.request) { + console.log(` ❌ 网络错误: ${error.message}`); + } else { + console.log(` ❌ 请求配置错误: ${error.message}`); + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 测试完成!'); + console.log(''); + console.log('📝 最终nginx配置:'); + console.log(' location ^~ /api/government/auth/ {'); + console.log(' proxy_pass http://localhost:5352/api/auth/;'); + console.log(' }'); + console.log(' location ^~ /api/government/ {'); + console.log(' proxy_pass http://localhost:5352/api/government/;'); + console.log(' }'); + console.log(''); + console.log('🔄 路径映射:'); + console.log(' /api/government/departments → http://localhost:5352/api/government/departments'); + console.log(' /api/government/data-center → http://localhost:5352/api/government/data-center'); + console.log(' /api/government/market-price → http://localhost:5352/api/government/market-price'); + console.log(''); + console.log('🔄 现在需要重启nginx使配置生效:'); + console.log(' sudo nginx -t # 检查配置语法'); + console.log(' sudo systemctl reload nginx # 重新加载配置'); +} + +// 运行测试 +testFinalFix().catch(console.error); diff --git a/government-backend/test-fixed-apis.js b/government-backend/test-fixed-apis.js new file mode 100644 index 0000000..010d5e7 --- /dev/null +++ b/government-backend/test-fixed-apis.js @@ -0,0 +1,94 @@ +const axios = require('axios'); + +// 测试修复后的API接口 +async function testFixedAPIs() { + console.log('🔍 测试修复后的政府端API接口...\n'); + + const testCases = [ + { + name: '部门列表接口', + url: 'https://ad.ningmuyun.com/api/government/departments', + expected: '应该返回200状态码和部门数据' + }, + { + name: '数据中心接口', + url: 'https://ad.ningmuyun.com/api/government/data-center', + expected: '应该返回200状态码和统计数据' + }, + { + name: '市场价格接口', + url: 'https://ad.ningmuyun.com/api/government/market-price?type=beef', + expected: '应该返回200状态码和价格数据' + }, + { + name: '岗位列表接口', + url: 'https://ad.ningmuyun.com/api/government/positions', + expected: '应该返回200状态码和岗位数据' + }, + { + name: '养殖户列表接口', + url: 'https://ad.ningmuyun.com/api/government/farmers', + expected: '应该返回200状态码和养殖户数据' + } + ]; + + for (const test of testCases) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + console.log(` 预期: ${test.expected}`); + + try { + const response = await axios.get(test.url, { + timeout: 10000, + validateStatus: function (status) { + return status < 500; // 接受所有小于500的状态码 + } + }); + + console.log(` ✅ 状态码: ${response.status}`); + + if (response.status === 200) { + console.log(` ✅ 成功: 接口正常工作`); + if (Array.isArray(response.data)) { + console.log(` 📊 数据量: ${response.data.length} 条记录`); + } else if (response.data && typeof response.data === 'object') { + console.log(` 📊 数据类型: 对象,包含 ${Object.keys(response.data).length} 个字段`); + } + } else if (response.status === 401) { + console.log(` ✅ 正常: 需要认证(接口路径正确)`); + } else if (response.status === 404) { + console.log(` ❌ 错误: 接口不存在`); + } + + } catch (error) { + if (error.response) { + console.log(` ❌ 状态码: ${error.response.status}`); + console.log(` ❌ 错误: ${error.response.statusText}`); + + if (error.response.status === 404) { + console.log(` 🔍 分析: nginx配置可能还有问题`); + } + } else if (error.request) { + console.log(` ❌ 网络错误: ${error.message}`); + } else { + console.log(` ❌ 请求配置错误: ${error.message}`); + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 测试完成!'); + console.log(''); + console.log('📝 修复说明:'); + console.log(' 问题: location规则缺少注释符号,导致被注释掉'); + console.log(' 修复: 添加了正确的注释和location规则'); + console.log(''); + console.log('🔄 现在需要重启nginx使配置生效:'); + console.log(' sudo nginx -t # 检查配置语法'); + console.log(' sudo systemctl reload nginx # 重新加载配置'); +} + +// 运行测试 +testFixedAPIs().catch(console.error); diff --git a/government-backend/test-government-apis.js b/government-backend/test-government-apis.js new file mode 100644 index 0000000..f7ae2c2 --- /dev/null +++ b/government-backend/test-government-apis.js @@ -0,0 +1,97 @@ +const axios = require('axios'); + +// 测试政府端各种API接口 +async function testGovernmentAPIs() { + console.log('🔍 测试政府端API接口...\n'); + + const testCases = [ + { + name: '登录接口测试', + url: 'https://ad.ningmuyun.com/api/government/auth/login', + method: 'POST', + data: { username: 'admin', password: 'admin123' }, + expected: '应该返回登录成功或认证错误' + }, + { + name: '部门列表接口测试', + url: 'https://ad.ningmuyun.com/api/government/departments', + method: 'GET', + data: null, + expected: '应该返回部门列表或认证错误' + }, + { + name: '市场价格接口测试', + url: 'https://ad.ningmuyun.com/api/government/market-price?type=beef', + method: 'GET', + data: null, + expected: '应该返回市场价格数据或认证错误' + }, + { + name: '数据中心接口测试', + url: 'https://ad.ningmuyun.com/api/government/data-center', + method: 'GET', + data: null, + expected: '应该返回数据中心数据或认证错误' + } + ]; + + for (const testCase of testCases) { + console.log(`📋 ${testCase.name}`); + console.log(` URL: ${testCase.url}`); + console.log(` 方法: ${testCase.method}`); + console.log(` 预期: ${testCase.expected}`); + + try { + const config = { + method: testCase.method, + url: testCase.url, + headers: { + 'Content-Type': 'application/json' + }, + timeout: 10000 + }; + + if (testCase.data) { + config.data = testCase.data; + } + + const response = await axios(config); + + console.log(` ✅ 状态码: ${response.status}`); + console.log(` ✅ 响应数据: ${JSON.stringify(response.data, null, 2).substring(0, 200)}...`); + + } catch (error) { + if (error.response) { + console.log(` ❌ 状态码: ${error.response.status}`); + console.log(` ❌ 错误信息: ${JSON.stringify(error.response.data, null, 2)}`); + + // 分析错误类型 + if (error.response.status === 404) { + console.log(` 🔍 分析: 404错误,可能是路径映射问题`); + } else if (error.response.status === 401) { + console.log(` 🔍 分析: 401错误,需要认证,这是正常的`); + } else if (error.response.status === 500) { + console.log(` 🔍 分析: 500错误,服务器内部错误`); + } + } else if (error.request) { + console.log(` ❌ 网络错误: ${error.message}`); + } else { + console.log(` ❌ 请求配置错误: ${error.message}`); + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 测试完成!'); + console.log(''); + console.log('📝 分析说明:'); + console.log(' - 如果所有接口都返回404,说明nginx配置有问题'); + console.log(' - 如果只有登录接口正常,其他返回404,说明路径映射有问题'); + console.log(' - 如果返回401认证错误,说明接口正常但需要登录'); + console.log(' - 如果返回500错误,说明后端服务有问题'); +} + +// 运行测试 +testGovernmentAPIs().catch(console.error); diff --git a/government-backend/test-location-order-fix.js b/government-backend/test-location-order-fix.js new file mode 100644 index 0000000..7aeaca0 --- /dev/null +++ b/government-backend/test-location-order-fix.js @@ -0,0 +1,160 @@ +const axios = require('axios'); + +// 测试location规则顺序修复效果 +async function testLocationOrderFix() { + console.log('🔍 测试location规则顺序修复效果...\n'); + console.log('📝 修复说明:'); + console.log(' 调整了location规则的顺序,让API规则优先于静态文件规则'); + console.log(' 1. location ^~ /api/government/auth/ (最高优先级)'); + console.log(' 2. location ^~ /api/government/ (第二优先级)'); + console.log(' 3. location ^~ /government/ (静态文件,最低优先级)'); + console.log(''); + + const testCases = [ + { + name: '部门列表接口', + url: 'https://ad.ningmuyun.com/api/government/departments', + shouldWork: true + }, + { + name: '数据中心接口', + url: 'https://ad.ningmuyun.com/api/government/data-center', + shouldWork: true + }, + { + name: '市场价格接口', + url: 'https://ad.ningmuyun.com/api/government/market-price?type=beef', + shouldWork: true + }, + { + name: '岗位列表接口', + url: 'https://ad.ningmuyun.com/api/government/positions', + shouldWork: true + }, + { + name: '养殖户列表接口', + url: 'https://ad.ningmuyun.com/api/government/farmers', + shouldWork: true + }, + { + name: '登录接口', + url: 'https://ad.ningmuyun.com/api/government/auth/login', + method: 'POST', + data: { username: 'admin', password: 'admin123' }, + shouldWork: true, + expectedStatus: 401 + } + ]; + + let successCount = 0; + let failCount = 0; + + for (const test of testCases) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + + try { + const config = { + method: test.method || 'GET', + url: test.url, + headers: { + 'Content-Type': 'application/json' + }, + timeout: 10000, + validateStatus: function (status) { + return status < 500; + } + }; + + if (test.data) { + config.data = test.data; + } + + const response = await axios(config); + + console.log(` 状态码: ${response.status}`); + + if (test.shouldWork) { + if (test.expectedStatus) { + if (response.status === test.expectedStatus) { + console.log(` ✅ 成功: 返回预期状态码 ${test.expectedStatus}`); + successCount++; + } else { + console.log(` ❌ 失败: 预期状态码 ${test.expectedStatus},实际 ${response.status}`); + failCount++; + } + } else if (response.status === 200) { + console.log(` ✅ 成功: 接口正常工作`); + if (Array.isArray(response.data)) { + console.log(` 📊 数据量: ${response.data.length} 条记录`); + } else if (response.data && typeof response.data === 'object') { + console.log(` 📊 数据类型: 对象,包含 ${Object.keys(response.data).length} 个字段`); + } + successCount++; + } else if (response.status === 404) { + console.log(` ❌ 失败: 接口返回 404`); + failCount++; + } + } + + } catch (error) { + if (error.response) { + console.log(` 状态码: ${error.response.status}`); + + if (test.shouldWork) { + console.log(` ❌ 失败: ${error.response.statusText}`); + failCount++; + } + } else { + console.log(` ❌ 网络错误: ${error.message}`); + failCount++; + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 测试完成!'); + console.log(` ✅ 成功: ${successCount} 个`); + console.log(` ❌ 失败: ${failCount} 个`); + console.log(''); + + if (failCount === 0) { + console.log('🎉 所有测试通过!Location规则顺序修复成功!'); + } else { + console.log('⚠️ 还有测试失败,请检查:'); + console.log(' 1. Nginx配置是否正确修改'); + console.log(' 2. Nginx服务是否已重启'); + console.log(' 3. 后端服务是否正常运行'); + console.log(''); + console.log('🔄 重启Nginx:'); + console.log(' sudo nginx -t'); + console.log(' sudo systemctl reload nginx'); + } + + console.log(''); + console.log('📝 修复后的nginx配置顺序:'); + console.log(' 1. location ^~ /api/government/auth/ {'); + console.log(' proxy_pass http://localhost:5352/api/auth/;'); + console.log(' }'); + console.log(' 2. location ^~ /api/government/ {'); + console.log(' proxy_pass http://localhost:5352/api/government/;'); + console.log(' }'); + console.log(' 3. location ^~ /government/ {'); + console.log(' alias /data/vue/ningmuyun/government/dist/;'); + console.log(' }'); + console.log(''); + console.log('🔄 路径映射:'); + console.log(' /api/government/departments → http://localhost:5352/api/government/departments'); + console.log(' /api/government/data-center → http://localhost:5352/api/government/data-center'); + console.log(' /api/government/market-price → http://localhost:5352/api/government/market-price'); + console.log(''); + console.log('🚨 重要提醒:'); + console.log(' 修改nginx配置后,必须重启nginx服务才能生效!'); + console.log(' sudo nginx -t # 检查配置语法'); + console.log(' sudo systemctl reload nginx # 重新加载配置'); +} + +// 运行测试 +testLocationOrderFix().catch(console.error); diff --git a/government-backend/test-login-api.js b/government-backend/test-login-api.js new file mode 100644 index 0000000..955ec5e --- /dev/null +++ b/government-backend/test-login-api.js @@ -0,0 +1,66 @@ +const axios = require('axios'); + +// 测试登录接口 +async function testLoginAPI() { + console.log('🔍 测试政府端登录接口...\n'); + + const testCases = [ + { + name: '本地后端直接测试', + url: 'http://localhost:5352/api/auth/login', + description: '直接访问后端服务' + }, + { + name: '生产环境nginx代理测试', + url: 'https://ad.ningmuyun.com/api/government/auth/login', + description: '通过nginx代理访问' + } + ]; + + const testData = { + username: 'admin', + password: 'admin123' + }; + + for (const testCase of testCases) { + console.log(`📋 ${testCase.name}`); + console.log(` 描述: ${testCase.description}`); + console.log(` URL: ${testCase.url}`); + console.log(` 数据: ${JSON.stringify(testData)}`); + + try { + const response = await axios.post(testCase.url, testData, { + headers: { + 'Content-Type': 'application/json' + }, + timeout: 10000 + }); + + console.log(` ✅ 状态码: ${response.status}`); + console.log(` ✅ 响应: ${JSON.stringify(response.data, null, 2)}`); + + } catch (error) { + if (error.response) { + console.log(` ❌ 状态码: ${error.response.status}`); + console.log(` ❌ 错误信息: ${JSON.stringify(error.response.data, null, 2)}`); + } else if (error.request) { + console.log(` ❌ 网络错误: ${error.message}`); + } else { + console.log(` ❌ 请求配置错误: ${error.message}`); + } + } + + console.log(' ' + '─'.repeat(50)); + console.log(''); + } + + console.log('🎯 测试完成!'); + console.log(''); + console.log('📝 说明:'); + console.log(' - 如果本地测试成功但生产环境失败,说明nginx配置有问题'); + console.log(' - 如果两个都失败,说明后端服务有问题'); + console.log(' - 如果两个都成功,说明修复生效'); +} + +// 运行测试 +testLoginAPI().catch(console.error); diff --git a/government-backend/test-nginx-config.js b/government-backend/test-nginx-config.js new file mode 100644 index 0000000..bae6789 --- /dev/null +++ b/government-backend/test-nginx-config.js @@ -0,0 +1,114 @@ +const axios = require('axios'); + +// 测试nginx配置问题 +async function testNginxConfig() { + console.log('🔍 测试nginx配置问题...\n'); + + const testCases = [ + { + name: '直接测试后端服务', + url: 'http://localhost:5352/api/government/departments', + expected: '应该返回200' + }, + { + name: '通过nginx测试部门接口', + url: 'https://ad.ningmuyun.com/api/government/departments', + expected: '应该返回200' + }, + { + name: '通过nginx测试登录接口', + url: 'https://ad.ningmuyun.com/api/government/auth/login', + method: 'POST', + data: { username: 'admin', password: 'admin123' }, + expected: '应该返回401认证错误' + }, + { + name: '测试重复路径接口', + url: 'https://ad.ningmuyun.com/api/government/government/departments', + expected: '应该返回200(如果nginx配置有问题)' + } + ]; + + for (const test of testCases) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + console.log(` 预期: ${test.expected}`); + + try { + const config = { + method: test.method || 'GET', + url: test.url, + headers: { + 'Content-Type': 'application/json' + }, + timeout: 10000, + validateStatus: function (status) { + return status < 500; + } + }; + + if (test.data) { + config.data = test.data; + } + + const response = await axios(config); + + console.log(` ✅ 状态码: ${response.status}`); + + if (response.status === 200) { + console.log(` ✅ 成功: 接口正常工作`); + if (Array.isArray(response.data)) { + console.log(` 📊 数据量: ${response.data.length} 条记录`); + } else if (response.data && typeof response.data === 'object') { + console.log(` 📊 数据类型: 对象,包含 ${Object.keys(response.data).length} 个字段`); + } + } else if (response.status === 401) { + console.log(` ✅ 正常: 需要认证(接口路径正确)`); + } else if (response.status === 404) { + console.log(` ❌ 错误: 接口不存在`); + } + + } catch (error) { + if (error.response) { + console.log(` ❌ 状态码: ${error.response.status}`); + console.log(` ❌ 错误: ${error.response.statusText}`); + + if (error.response.status === 404) { + console.log(` 🔍 分析: nginx配置问题,路径映射不正确`); + } + } else if (error.request) { + console.log(` ❌ 网络错误: ${error.message}`); + } else { + console.log(` ❌ 请求配置错误: ${error.message}`); + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 测试完成!'); + console.log(''); + console.log('📝 可能的问题:'); + console.log(' 1. nginx配置语法错误'); + console.log(' 2. nginx服务未重启'); + console.log(' 3. location规则冲突'); + console.log(' 4. proxy_pass配置错误'); + console.log(''); + console.log('🔄 建议的解决步骤:'); + console.log(' 1. 检查nginx配置语法: sudo nginx -t'); + console.log(' 2. 重启nginx服务: sudo systemctl reload nginx'); + console.log(' 3. 检查nginx错误日志: sudo tail -f /var/log/nginx/error.log'); + console.log(' 4. 检查nginx访问日志: sudo tail -f /var/log/nginx/ad.ningmuyun.com.access.log'); + console.log(''); + console.log('📝 当前nginx配置应该是:'); + console.log(' location ^~ /api/government/auth/ {'); + console.log(' proxy_pass http://localhost:5352/api/auth/;'); + console.log(' }'); + console.log(' location ^~ /api/government/ {'); + console.log(' proxy_pass http://localhost:5352/api/government/;'); + console.log(' }'); +} + +// 运行测试 +testNginxConfig().catch(console.error); diff --git a/government-backend/test-nginx-debug.js b/government-backend/test-nginx-debug.js new file mode 100644 index 0000000..ba1833c --- /dev/null +++ b/government-backend/test-nginx-debug.js @@ -0,0 +1,112 @@ +const axios = require('axios'); + +// 调试nginx配置问题 +async function testNginxDebug() { + console.log('🔍 调试nginx配置问题...\n'); + + const testCases = [ + { + name: '直接测试后端服务', + url: 'http://localhost:5352/api/government/departments', + expected: '应该返回200' + }, + { + name: '通过nginx测试部门接口', + url: 'https://ad.ningmuyun.com/api/government/departments', + expected: '应该返回200' + }, + { + name: '通过nginx测试数据中心接口', + url: 'https://ad.ningmuyun.com/api/government/data-center', + expected: '应该返回200' + }, + { + name: '通过nginx测试市场价格接口', + url: 'https://ad.ningmuyun.com/api/government/market-price?type=beef', + expected: '应该返回200' + }, + { + name: '通过nginx测试登录接口', + url: 'https://ad.ningmuyun.com/api/government/auth/login', + method: 'POST', + data: { username: 'admin', password: 'admin123' }, + expected: '应该返回401认证错误' + } + ]; + + for (const test of testCases) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + console.log(` 预期: ${test.expected}`); + + try { + const config = { + method: test.method || 'GET', + url: test.url, + headers: { + 'Content-Type': 'application/json' + }, + timeout: 10000, + validateStatus: function (status) { + return status < 500; // 接受所有小于500的状态码 + } + }; + + if (test.data) { + config.data = test.data; + } + + const response = await axios(config); + + console.log(` ✅ 状态码: ${response.status}`); + + if (response.status === 200) { + console.log(` ✅ 成功: 接口正常工作`); + if (Array.isArray(response.data)) { + console.log(` 📊 数据量: ${response.data.length} 条记录`); + } else if (response.data && typeof response.data === 'object') { + console.log(` 📊 数据类型: 对象,包含 ${Object.keys(response.data).length} 个字段`); + } + } else if (response.status === 401) { + console.log(` ✅ 正常: 需要认证(接口路径正确)`); + } else if (response.status === 404) { + console.log(` ❌ 错误: 接口不存在`); + } + + } catch (error) { + if (error.response) { + console.log(` ❌ 状态码: ${error.response.status}`); + console.log(` ❌ 错误: ${error.response.statusText}`); + + if (error.response.status === 404) { + console.log(` 🔍 分析: nginx配置问题,路径映射不正确`); + } + } else if (error.request) { + console.log(` ❌ 网络错误: ${error.message}`); + } else { + console.log(` ❌ 请求配置错误: ${error.message}`); + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 调试完成!'); + console.log(''); + console.log('📝 当前nginx配置:'); + console.log(' location ^~ /api/government/auth/ {'); + console.log(' proxy_pass http://localhost:5352/api/auth/;'); + console.log(' }'); + console.log(' location ^~ /api/government/ {'); + console.log(' proxy_pass http://localhost:5352/api/government/;'); + console.log(' }'); + console.log(''); + console.log('🔄 如果所有接口都返回404,可能需要:'); + console.log(' 1. 检查nginx配置语法: sudo nginx -t'); + console.log(' 2. 重启nginx服务: sudo systemctl reload nginx'); + console.log(' 3. 检查nginx错误日志: sudo tail -f /var/log/nginx/error.log'); +} + +// 运行测试 +testNginxDebug().catch(console.error); diff --git a/government-backend/test-nginx-fix-final.js b/government-backend/test-nginx-fix-final.js new file mode 100644 index 0000000..258bd79 --- /dev/null +++ b/government-backend/test-nginx-fix-final.js @@ -0,0 +1,155 @@ +const axios = require('axios'); + +// 测试nginx最终修复效果 +async function testNginxFixFinal() { + console.log('🔍 测试nginx最终修复效果...\n'); + console.log('📝 修复说明:'); + console.log(' 将 proxy_pass http://localhost:5352'); + console.log(' 改为 proxy_pass http://localhost:5352/api/government/'); + console.log(' 这样可以正确代理到后端API路径\n'); + + const testCases = [ + { + name: '部门列表接口', + url: 'https://ad.ningmuyun.com/api/government/departments', + shouldWork: true + }, + { + name: '数据中心接口', + url: 'https://ad.ningmuyun.com/api/government/data-center', + shouldWork: true + }, + { + name: '市场价格接口', + url: 'https://ad.ningmuyun.com/api/government/market-price?type=beef', + shouldWork: true + }, + { + name: '岗位列表接口', + url: 'https://ad.ningmuyun.com/api/government/positions', + shouldWork: true + }, + { + name: '养殖户列表接口', + url: 'https://ad.ningmuyun.com/api/government/farmers', + shouldWork: true + }, + { + name: '登录接口', + url: 'https://ad.ningmuyun.com/api/government/auth/login', + method: 'POST', + data: { username: 'admin', password: 'admin123' }, + shouldWork: true, + expectedStatus: 401 + } + ]; + + let successCount = 0; + let failCount = 0; + + for (const test of testCases) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + + try { + const config = { + method: test.method || 'GET', + url: test.url, + headers: { + 'Content-Type': 'application/json' + }, + timeout: 10000, + validateStatus: function (status) { + return status < 500; + } + }; + + if (test.data) { + config.data = test.data; + } + + const response = await axios(config); + + console.log(` 状态码: ${response.status}`); + + if (test.shouldWork) { + if (test.expectedStatus) { + if (response.status === test.expectedStatus) { + console.log(` ✅ 成功: 返回预期状态码 ${test.expectedStatus}`); + successCount++; + } else { + console.log(` ❌ 失败: 预期状态码 ${test.expectedStatus},实际 ${response.status}`); + failCount++; + } + } else if (response.status === 200) { + console.log(` ✅ 成功: 接口正常工作`); + if (Array.isArray(response.data)) { + console.log(` 📊 数据量: ${response.data.length} 条记录`); + } else if (response.data && typeof response.data === 'object') { + console.log(` 📊 数据类型: 对象,包含 ${Object.keys(response.data).length} 个字段`); + } + successCount++; + } else if (response.status === 404) { + console.log(` ❌ 失败: 接口返回 404`); + failCount++; + } + } + + } catch (error) { + if (error.response) { + console.log(` 状态码: ${error.response.status}`); + + if (test.shouldWork) { + console.log(` ❌ 失败: ${error.response.statusText}`); + failCount++; + } + } else { + console.log(` ❌ 网络错误: ${error.message}`); + failCount++; + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 测试完成!'); + console.log(` ✅ 成功: ${successCount} 个`); + console.log(` ❌ 失败: ${failCount} 个`); + console.log(''); + + if (failCount === 0) { + console.log('🎉 所有测试通过!Nginx配置修复成功!'); + } else { + console.log('⚠️ 还有测试失败,请检查:'); + console.log(' 1. Nginx配置是否正确修改'); + console.log(' 2. Nginx服务是否已重启'); + console.log(' 3. 后端服务是否正常运行'); + console.log(''); + console.log('🔄 重启Nginx:'); + console.log(' sudo nginx -t'); + console.log(' sudo systemctl reload nginx'); + } + + console.log(''); + console.log('📝 当前nginx配置:'); + console.log(' location ^~ /api/government/auth/ {'); + console.log(' proxy_pass http://localhost:5352/api/auth/;'); + console.log(' }'); + console.log(' location ^~ /api/government/ {'); + console.log(' proxy_pass http://localhost:5352/api/government/;'); + console.log(' }'); + console.log(''); + console.log('🔄 路径映射:'); + console.log(' /api/government/departments → http://localhost:5352/api/government/departments'); + console.log(' /api/government/data-center → http://localhost:5352/api/government/data-center'); + console.log(' /api/government/market-price → http://localhost:5352/api/government/market-price'); + console.log(''); + console.log('🚨 重要提醒:'); + console.log(' 修改nginx配置后,必须重启nginx服务才能生效!'); + console.log(' sudo nginx -t # 检查配置语法'); + console.log(' sudo systemctl reload nginx # 重新加载配置'); +} + +// 运行测试 +testNginxFixFinal().catch(console.error); diff --git a/government-backend/test-nginx-fix.js b/government-backend/test-nginx-fix.js new file mode 100644 index 0000000..581f999 --- /dev/null +++ b/government-backend/test-nginx-fix.js @@ -0,0 +1,111 @@ +const axios = require('axios'); + +// 测试nginx配置修复后的API接口 +async function testNginxFix() { + console.log('🔍 测试nginx配置修复后的API接口...\n'); + + const testCases = [ + { + name: '登录接口测试', + url: 'https://ad.ningmuyun.com/api/government/auth/login', + method: 'POST', + data: { username: 'admin', password: 'admin123' }, + expected: '应该返回401认证错误(接口正常)' + }, + { + name: '部门列表接口测试', + url: 'https://ad.ningmuyun.com/api/government/departments', + method: 'GET', + expected: '应该返回200状态码和部门数据' + }, + { + name: '数据中心接口测试', + url: 'https://ad.ningmuyun.com/api/government/data-center', + method: 'GET', + expected: '应该返回200状态码和统计数据' + }, + { + name: '市场价格接口测试', + url: 'https://ad.ningmuyun.com/api/government/market-price?type=beef', + method: 'GET', + expected: '应该返回200状态码和价格数据' + }, + { + name: '岗位列表接口测试', + url: 'https://ad.ningmuyun.com/api/government/positions', + method: 'GET', + expected: '应该返回200状态码和岗位数据' + } + ]; + + for (const test of testCases) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + console.log(` 预期: ${test.expected}`); + + try { + const config = { + method: test.method, + url: test.url, + headers: { + 'Content-Type': 'application/json' + }, + timeout: 10000, + validateStatus: function (status) { + return status < 500; // 接受所有小于500的状态码 + } + }; + + if (test.data) { + config.data = test.data; + } + + const response = await axios(config); + + console.log(` ✅ 状态码: ${response.status}`); + + if (response.status === 200) { + console.log(` ✅ 成功: 接口正常工作`); + if (Array.isArray(response.data)) { + console.log(` 📊 数据量: ${response.data.length} 条记录`); + } else if (response.data && typeof response.data === 'object') { + console.log(` 📊 数据类型: 对象,包含 ${Object.keys(response.data).length} 个字段`); + } + } else if (response.status === 401) { + console.log(` ✅ 正常: 需要认证(接口路径正确)`); + } else if (response.status === 404) { + console.log(` ❌ 错误: 接口不存在`); + } + + } catch (error) { + if (error.response) { + console.log(` ❌ 状态码: ${error.response.status}`); + console.log(` ❌ 错误: ${error.response.statusText}`); + + if (error.response.status === 404) { + console.log(` 🔍 分析: nginx配置可能还有问题`); + } + } else if (error.request) { + console.log(` ❌ 网络错误: ${error.message}`); + } else { + console.log(` ❌ 请求配置错误: ${error.message}`); + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 测试完成!'); + console.log(''); + console.log('📝 修复说明:'); + console.log(' 问题: location规则缩进不正确,被嵌套在错误的块内'); + console.log(' 修复: 调整了location规则的缩进和位置'); + console.log(''); + console.log('🔄 现在需要重启nginx使配置生效:'); + console.log(' sudo nginx -t # 检查配置语法'); + console.log(' sudo systemctl reload nginx # 重新加载配置'); +} + +// 运行测试 +testNginxFix().catch(console.error); diff --git a/government-backend/test-nginx-restart-fix.js b/government-backend/test-nginx-restart-fix.js new file mode 100644 index 0000000..70bb05b --- /dev/null +++ b/government-backend/test-nginx-restart-fix.js @@ -0,0 +1,150 @@ +const axios = require('axios'); + +// 测试nginx重启后的修复效果 +async function testNginxRestartFix() { + console.log('🔍 测试nginx重启后的修复效果...\n'); + console.log('📝 修复说明:'); + console.log(' 将 proxy_pass http://localhost:5352'); + console.log(' 改为 proxy_pass http://localhost:5352/api/government/'); + console.log(' 这样可以正确代理到后端API路径\n'); + + const testCases = [ + { + name: '部门列表接口', + url: 'https://ad.ningmuyun.com/api/government/departments', + shouldWork: true + }, + { + name: '数据中心接口', + url: 'https://ad.ningmuyun.com/api/government/data-center', + shouldWork: true + }, + { + name: '市场价格接口', + url: 'https://ad.ningmuyun.com/api/government/market-price?type=beef', + shouldWork: true + }, + { + name: '岗位列表接口', + url: 'https://ad.ningmuyun.com/api/government/positions', + shouldWork: true + }, + { + name: '养殖户列表接口', + url: 'https://ad.ningmuyun.com/api/government/farmers', + shouldWork: true + }, + { + name: '登录接口', + url: 'https://ad.ningmuyun.com/api/government/auth/login', + method: 'POST', + data: { username: 'admin', password: 'admin123' }, + shouldWork: true, + expectedStatus: 401 + } + ]; + + let successCount = 0; + let failCount = 0; + + for (const test of testCases) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + + try { + const config = { + method: test.method || 'GET', + url: test.url, + headers: { + 'Content-Type': 'application/json' + }, + timeout: 10000, + validateStatus: function (status) { + return status < 500; + } + }; + + if (test.data) { + config.data = test.data; + } + + const response = await axios(config); + + console.log(` 状态码: ${response.status}`); + + if (test.shouldWork) { + if (test.expectedStatus) { + if (response.status === test.expectedStatus) { + console.log(` ✅ 成功: 返回预期状态码 ${test.expectedStatus}`); + successCount++; + } else { + console.log(` ❌ 失败: 预期状态码 ${test.expectedStatus},实际 ${response.status}`); + failCount++; + } + } else if (response.status === 200) { + console.log(` ✅ 成功: 接口正常工作`); + if (Array.isArray(response.data)) { + console.log(` 📊 数据量: ${response.data.length} 条记录`); + } else if (response.data && typeof response.data === 'object') { + console.log(` 📊 数据类型: 对象,包含 ${Object.keys(response.data).length} 个字段`); + } + successCount++; + } else if (response.status === 404) { + console.log(` ❌ 失败: 接口返回 404`); + failCount++; + } + } + + } catch (error) { + if (error.response) { + console.log(` 状态码: ${error.response.status}`); + + if (test.shouldWork) { + console.log(` ❌ 失败: ${error.response.statusText}`); + failCount++; + } + } else { + console.log(` ❌ 网络错误: ${error.message}`); + failCount++; + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 测试完成!'); + console.log(` ✅ 成功: ${successCount} 个`); + console.log(` ❌ 失败: ${failCount} 个`); + console.log(''); + + if (failCount === 0) { + console.log('🎉 所有测试通过!Nginx配置修复成功!'); + } else { + console.log('⚠️ 还有测试失败,请检查:'); + console.log(' 1. Nginx配置是否正确修改'); + console.log(' 2. Nginx服务是否已重启'); + console.log(' 3. 后端服务是否正常运行'); + console.log(''); + console.log('🔄 重启Nginx:'); + console.log(' sudo nginx -t'); + console.log(' sudo systemctl reload nginx'); + } + + console.log(''); + console.log('📝 当前nginx配置:'); + console.log(' location ^~ /api/government/auth/ {'); + console.log(' proxy_pass http://localhost:5352/api/auth/;'); + console.log(' }'); + console.log(' location ^~ /api/government/ {'); + console.log(' proxy_pass http://localhost:5352/api/government/;'); + console.log(' }'); + console.log(''); + console.log('🔄 路径映射:'); + console.log(' /api/government/departments → http://localhost:5352/api/government/departments'); + console.log(' /api/government/data-center → http://localhost:5352/api/government/data-center'); + console.log(' /api/government/market-price → http://localhost:5352/api/government/market-price'); +} + +// 运行测试 +testNginxRestartFix().catch(console.error); diff --git a/government-backend/test-nginx-syntax.js b/government-backend/test-nginx-syntax.js new file mode 100644 index 0000000..d0e3d9f --- /dev/null +++ b/government-backend/test-nginx-syntax.js @@ -0,0 +1,35 @@ +const { exec } = require('child_process'); + +// 测试nginx配置语法 +function testNginxSyntax() { + console.log('🔍 测试nginx配置语法...\n'); + + exec('nginx -t', (error, stdout, stderr) => { + if (error) { + console.log('❌ nginx配置语法错误:'); + console.log(stderr); + console.log('\n🔍 可能的问题:'); + console.log(' 1. 缩进问题'); + console.log(' 2. 缺少分号'); + console.log(' 3. 括号不匹配'); + console.log(' 4. 隐藏字符'); + return; + } + + if (stderr) { + console.log('⚠️ nginx配置警告:'); + console.log(stderr); + } + + console.log('✅ nginx配置语法正确'); + console.log(stdout); + + console.log('\n🔄 建议的解决步骤:'); + console.log(' 1. 重启nginx服务: sudo systemctl reload nginx'); + console.log(' 2. 检查nginx错误日志: sudo tail -f /var/log/nginx/error.log'); + console.log(' 3. 检查nginx访问日志: sudo tail -f /var/log/nginx/access.log'); + }); +} + +// 运行测试 +testNginxSyntax(); diff --git a/government-backend/test-path-duplication-fix.js b/government-backend/test-path-duplication-fix.js new file mode 100644 index 0000000..8628122 --- /dev/null +++ b/government-backend/test-path-duplication-fix.js @@ -0,0 +1,115 @@ +const axios = require('axios'); + +// 测试路径重复修复效果 +async function testPathDuplicationFix() { + console.log('🔍 测试路径重复修复效果...\n'); + + const testCases = [ + { + name: '正确路径 - 部门列表', + url: 'https://ad.ningmuyun.com/api/government/departments', + expected: '应该返回200状态码' + }, + { + name: '重复路径 - 部门列表', + url: 'https://ad.ningmuyun.com/api/government/government/departments', + expected: '应该返回404错误(路径不存在)' + }, + { + name: '正确路径 - 数据中心', + url: 'https://ad.ningmuyun.com/api/government/data-center', + expected: '应该返回200状态码' + }, + { + name: '重复路径 - 数据中心', + url: 'https://ad.ningmuyun.com/api/government/government/data-center', + expected: '应该返回404错误(路径不存在)' + }, + { + name: '正确路径 - 市场价格', + url: 'https://ad.ningmuyun.com/api/government/market-price?type=beef', + expected: '应该返回200状态码' + }, + { + name: '重复路径 - 市场价格', + url: 'https://ad.ningmuyun.com/api/government/government/market-price?type=beef', + expected: '应该返回404错误(路径不存在)' + }, + { + name: '正确路径 - 养殖类型', + url: 'https://ad.ningmuyun.com/api/government/farm-types', + expected: '应该返回200状态码' + }, + { + name: '重复路径 - 养殖类型', + url: 'https://ad.ningmuyun.com/api/government/government/farm-types', + expected: '应该返回404错误(路径不存在)' + } + ]; + + for (const test of testCases) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + console.log(` 预期: ${test.expected}`); + + try { + const response = await axios.get(test.url, { + timeout: 10000, + validateStatus: function (status) { + return status < 500; // 接受所有小于500的状态码 + } + }); + + console.log(` ✅ 状态码: ${response.status}`); + + if (response.status === 200) { + console.log(` ✅ 成功: 接口正常工作`); + if (Array.isArray(response.data)) { + console.log(` 📊 数据量: ${response.data.length} 条记录`); + } else if (response.data && typeof response.data === 'object') { + console.log(` 📊 数据类型: 对象,包含 ${Object.keys(response.data).length} 个字段`); + } + } else if (response.status === 401) { + console.log(` ✅ 正常: 需要认证(接口路径正确)`); + } else if (response.status === 404) { + console.log(` ✅ 正常: 路径不存在(符合预期)`); + } + + } catch (error) { + if (error.response) { + console.log(` ❌ 状态码: ${error.response.status}`); + console.log(` ❌ 错误: ${error.response.statusText}`); + + if (error.response.status === 404) { + console.log(` ✅ 正常: 路径不存在(符合预期)`); + } + } else if (error.request) { + console.log(` ❌ 网络错误: ${error.message}`); + } else { + console.log(` ❌ 请求配置错误: ${error.message}`); + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 测试完成!'); + console.log(''); + console.log('📝 修复说明:'); + console.log(' 问题: proxy_pass配置导致路径重复'); + console.log(' 修复前: proxy_pass http://localhost:5352/api/government/;'); + console.log(' 修复后: proxy_pass http://localhost:5352/;'); + console.log(''); + console.log('🔄 路径映射:'); + console.log(' /api/government/departments → http://localhost:5352/api/government/departments'); + console.log(' /api/government/data-center → http://localhost:5352/api/government/data-center'); + console.log(' /api/government/market-price → http://localhost:5352/api/government/market-price'); + console.log(''); + console.log('🔄 现在需要重启nginx使配置生效:'); + console.log(' sudo nginx -t # 检查配置语法'); + console.log(' sudo systemctl reload nginx # 重新加载配置'); +} + +// 运行测试 +testPathDuplicationFix().catch(console.error); diff --git a/government-backend/test-path-fix.js b/government-backend/test-path-fix.js new file mode 100644 index 0000000..b13357b --- /dev/null +++ b/government-backend/test-path-fix.js @@ -0,0 +1,84 @@ +const axios = require('axios'); + +// 测试路径修复效果 +async function testPathFix() { + console.log('🔍 测试政府端API路径修复效果...\n'); + + const testCases = [ + { + name: '岗位列表接口测试', + url: 'https://ad.ningmuyun.com/api/government/positions', + expected: '应该返回岗位列表数据' + }, + { + name: '部门列表接口测试', + url: 'https://ad.ningmuyun.com/api/government/departments', + expected: '应该返回部门列表数据' + }, + { + name: '养殖户列表接口测试', + url: 'https://ad.ningmuyun.com/api/government/farmers', + expected: '应该返回养殖户列表数据' + }, + { + name: '市场价格接口测试', + url: 'https://ad.ningmuyun.com/api/government/market-price?type=beef', + expected: '应该返回市场价格数据' + } + ]; + + for (const test of testCases) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + console.log(` 预期: ${test.expected}`); + + try { + const response = await axios.get(test.url, { + timeout: 10000, + validateStatus: function (status) { + return status < 500; // 接受所有小于500的状态码 + } + }); + + console.log(` ✅ 状态码: ${response.status}`); + + if (response.status === 200) { + console.log(` ✅ 成功: 返回了正确的数据`); + if (Array.isArray(response.data)) { + console.log(` 📊 数据量: ${response.data.length} 条记录`); + } else if (response.data && typeof response.data === 'object') { + console.log(` 📊 数据类型: 对象,包含 ${Object.keys(response.data).length} 个字段`); + } + } else if (response.status === 401) { + console.log(` ✅ 正常: 需要认证 (接口路径正确)`); + } else if (response.status === 404) { + console.log(` ❌ 错误: 路径不存在`); + } + + } catch (error) { + if (error.response) { + console.log(` ❌ 状态码: ${error.response.status}`); + console.log(` ❌ 错误: ${error.response.statusText}`); + + if (error.response.status === 404) { + console.log(` 🔍 分析: 可能是nginx配置问题,路径映射不正确`); + } + } else { + console.log(` ❌ 网络错误: ${error.message}`); + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 测试完成!'); + console.log(''); + console.log('📝 修复说明:'); + console.log(' - 修复前: proxy_pass http://localhost:5352/api/government/; (会重复路径)'); + console.log(' - 修复后: proxy_pass http://localhost:5352/; (正确映射)'); + console.log(' - 现在 /api/government/positions 应该正确映射到 /api/government/positions'); +} + +// 运行测试 +testPathFix().catch(console.error); diff --git a/government-backend/verify-nginx-fix.js b/government-backend/verify-nginx-fix.js new file mode 100644 index 0000000..39d501c --- /dev/null +++ b/government-backend/verify-nginx-fix.js @@ -0,0 +1,149 @@ +const axios = require('axios'); + +// 验证nginx修复效果 +async function verifyNginxFix() { + console.log('🔍 验证 Nginx 修复效果...\n'); + console.log('📝 修改说明:'); + console.log(' 将 proxy_pass http://localhost:5352/api/government/'); + console.log(' 改为 proxy_pass http://localhost:5352'); + console.log(' 这样可以保持完整路径,避免路径重复\n'); + + const testCases = [ + { + name: '部门列表接口', + url: 'https://ad.ningmuyun.com/api/government/departments', + shouldWork: true + }, + { + name: '数据中心接口', + url: 'https://ad.ningmuyun.com/api/government/data-center', + shouldWork: true + }, + { + name: '市场价格接口', + url: 'https://ad.ningmuyun.com/api/government/market-price?type=beef', + shouldWork: true + }, + { + name: '岗位列表接口', + url: 'https://ad.ningmuyun.com/api/government/positions', + shouldWork: true + }, + { + name: '养殖户列表接口', + url: 'https://ad.ningmuyun.com/api/government/farmers', + shouldWork: true + }, + { + name: '登录接口', + url: 'https://ad.ningmuyun.com/api/government/auth/login', + method: 'POST', + data: { username: 'admin', password: 'admin123' }, + shouldWork: true, + expectedStatus: 401 + }, + { + name: '重复路径接口(应该404)', + url: 'https://ad.ningmuyun.com/api/government/government/departments', + shouldWork: false + } + ]; + + let successCount = 0; + let failCount = 0; + + for (const test of testCases) { + console.log(`📋 ${test.name}`); + console.log(` URL: ${test.url}`); + + try { + const config = { + method: test.method || 'GET', + url: test.url, + headers: { + 'Content-Type': 'application/json' + }, + timeout: 10000, + validateStatus: function (status) { + return status < 500; + } + }; + + if (test.data) { + config.data = test.data; + } + + const response = await axios(config); + + console.log(` 状态码: ${response.status}`); + + if (test.shouldWork) { + if (test.expectedStatus) { + if (response.status === test.expectedStatus) { + console.log(` ✅ 成功: 返回预期状态码 ${test.expectedStatus}`); + successCount++; + } else { + console.log(` ❌ 失败: 预期状态码 ${test.expectedStatus},实际 ${response.status}`); + failCount++; + } + } else if (response.status === 200) { + console.log(` ✅ 成功: 接口正常工作`); + successCount++; + } else if (response.status === 404) { + console.log(` ❌ 失败: 接口返回 404`); + failCount++; + } + } else { + if (response.status === 404) { + console.log(` ✅ 成功: 正确返回 404(重复路径应该不存在)`); + successCount++; + } else if (response.status === 200) { + console.log(` ❌ 失败: 重复路径不应该工作`); + failCount++; + } + } + + } catch (error) { + if (error.response) { + console.log(` 状态码: ${error.response.status}`); + + if (test.shouldWork) { + console.log(` ❌ 失败: ${error.response.statusText}`); + failCount++; + } else { + if (error.response.status === 404) { + console.log(` ✅ 成功: 正确返回 404`); + successCount++; + } + } + } else { + console.log(` ❌ 网络错误: ${error.message}`); + failCount++; + } + } + + console.log(' ' + '─'.repeat(60)); + console.log(''); + } + + console.log('🎯 测试完成!'); + console.log(` ✅ 成功: ${successCount} 个`); + console.log(` ❌ 失败: ${failCount} 个`); + console.log(''); + + if (failCount === 0) { + console.log('🎉 所有测试通过!Nginx 配置修复成功!'); + } else { + console.log('⚠️ 还有测试失败,请检查:'); + console.log(' 1. Nginx 配置是否正确修改'); + console.log(' 2. Nginx 服务是否已重启'); + console.log(' 3. 浏览器缓存是否已清除'); + console.log(''); + console.log('🔄 重启 Nginx:'); + console.log(' sudo nginx -t'); + console.log(' sudo systemctl reload nginx'); + } +} + +// 运行验证 +verifyNginxFix().catch(console.error); diff --git a/government-backend/前端API路径修复说明.md b/government-backend/前端API路径修复说明.md new file mode 100644 index 0000000..c32d3f6 --- /dev/null +++ b/government-backend/前端API路径修复说明.md @@ -0,0 +1,126 @@ +# 前端API路径修复说明 + +## 问题描述 +- **错误URL**: `https://ad.ningmuyun.com/api/government/government/positions` +- **问题**: URL中出现两个`government`,导致路径重复 +- **影响范围**: 政府端管理系统所有政府相关API接口 + +## 问题根因分析 + +### 1. 前端API配置问题 ❌ +在 `government-admin/src/utils/api.js` 中,政府相关的API接口缺少 `/api` 前缀: + +**原始错误配置**: +```javascript +// 部门管理 +departments: { + getList: (params) => instance.get('/government/departments', { params }) +}, + +// 岗位管理 +positions: { + getList: (params) => instance.get('/government/positions', { params }) +}, + +// 养殖户管理 +farmers: { + getList: (params) => instance.get('/government/farmers', { params }), + create: (data) => instance.post('/government/farmers', data), + // ... 其他方法 +} +``` + +### 2. 路径构造过程 +1. **前端baseURL**: `http://localhost:5352/api` (开发环境) +2. **API调用**: `instance.get('/government/positions')` +3. **实际请求**: `http://localhost:5352/api/government/positions` ✅ 正确 + +但在生产环境中: +1. **前端baseURL**: `https://ad.ningmuyun.com` (生产环境) +2. **API调用**: `instance.get('/government/positions')` +3. **实际请求**: `https://ad.ningmuyun.com/government/positions` ❌ 缺少 `/api` 前缀 +4. **nginx匹配**: 匹配到 `location ^~ /government/` (静态文件规则) +5. **重定向**: 可能被重写为 `/api/government/government/positions` ❌ 重复 + +## 解决方案 + +### 修复前端API配置 +将所有政府相关API接口添加 `/api` 前缀: + +```javascript +// 部门管理 +departments: { + getList: (params) => instance.get('/api/government/departments', { params }) +}, + +// 岗位管理 +positions: { + getList: (params) => instance.get('/api/government/positions', { params }) +}, + +// 养殖户管理 +farmers: { + getList: (params) => instance.get('/api/government/farmers', { params }), + create: (data) => instance.post('/api/government/farmers', data), + update: (id, data) => instance.put(`/api/government/farmers/${id}`, data), + delete: (id) => instance.delete(`/api/government/farmers/${id}`), + resetPassword: (id) => instance.post(`/api/government/farmers/${id}/reset-password`) +}, + +// 养殖类型相关 +farmTypes: { + getList: () => instance.get('/api/government/farm-types') +}, + +// 养殖种类相关 +animalTypes: { + getList: () => instance.get('/api/government/animal-types') +}, + +// 智能项圈管理 +collars: { + getList: (params) => instance.get('/api/government/collars', { params }), + create: (data) => instance.post('/api/government/collars', data), + update: (id, data) => instance.put(`/api/government/collars/${id}`, data), + delete: (id) => instance.delete(`/api/government/collars/${id}`) +} +``` + +## 修复后的路径映射 + +| 前端调用 | 生产环境URL | nginx匹配 | 后端路由 | 状态 | +|---------|------------|----------|---------|------| +| `/api/government/departments` | `https://ad.ningmuyun.com/api/government/departments` | `^~ /api/government/` | `/api/government/departments` | ✅ 正确 | +| `/api/government/positions` | `https://ad.ningmuyun.com/api/government/positions` | `^~ /api/government/` | `/api/government/positions` | ✅ 正确 | +| `/api/government/farmers` | `https://ad.ningmuyun.com/api/government/farmers` | `^~ /api/government/` | `/api/government/farmers` | ✅ 正确 | + +## 验证步骤 + +1. **重新构建前端项目**: + ```bash + cd government-admin + npm run build + ``` + +2. **部署到生产环境**: + - 将构建后的文件部署到服务器 + - 确保nginx配置正确 + +3. **测试API接口**: + ```bash + # 测试岗位接口 + curl https://ad.ningmuyun.com/api/government/positions + + # 测试部门接口 + curl https://ad.ningmuyun.com/api/government/departments + ``` + +## 相关文件 +- `government-admin/src/utils/api.js` - 前端API配置文件 +- `government-backend/_etc_nginx_conf.d_ningmuyun_one.conf` - nginx配置文件 + +## 修复时间 +2024年12月19日 + +## 修复状态 +✅ 已修复 - 前端API配置已更新,添加了正确的 `/api` 前缀 diff --git a/government-backend/检查nginx配置.md b/government-backend/检查nginx配置.md new file mode 100644 index 0000000..dee6466 --- /dev/null +++ b/government-backend/检查nginx配置.md @@ -0,0 +1,149 @@ +# 检查 Nginx 配置的关键步骤 + +## 🔍 问题分析 + +根据您的反馈: +- 修改 nginx 配置后,所有接口都返回 404 +- 只有登录接口正常(`/api/government/auth/login`) +- 重复路径可以正常工作(`/api/government/government/departments`) + +这说明: +1. Nginx 已经重启并读取了新配置 +2. `/api/government/auth/` 规则工作正常 +3. `/api/government/` 规则可能有问题 + +## 🎯 关键问题 + +**重复路径能工作说明了什么?** + +如果 `/api/government/government/departments` 能返回 200,说明: +- 请求到达了 nginx +- Nginx 将请求代理到了后端 +- 后端处理了 `/api/government/departments` 路径(去掉了一个 government) + +这意味着当前的 proxy_pass 配置可能是: +```nginx +proxy_pass http://localhost:5352/api/government/; +``` + +这会导致: +- 请求:`/api/government/government/departments` +- Nginx 匹配:`location ^~ /api/government/` +- 代理到:`http://localhost:5352/api/government/ + government/departments` +- 实际请求:`http://localhost:5352/api/government/government/departments` + +但是后端路由是 `/api/government/departments`,所以单个 government 的路径会 404。 + +## 🔧 正确的解决方案 + +需要修改 `proxy_pass` 配置,去掉路径重写: + +```nginx +# 错误的配置(当前) +location ^~ /api/government/ { + proxy_pass http://localhost:5352/api/government/; + # 这会导致路径重复:/api/government/departments → http://localhost:5352/api/government/departments +} + +# 正确的配置 +location ^~ /api/government/ { + proxy_pass http://localhost:5352; + # 这会保持原始路径:/api/government/departments → http://localhost:5352/api/government/departments +} +``` + +## 📝 修改步骤 + +### 1. 修改 nginx 配置文件 + +找到 `_etc_nginx_conf.d_ningmuyun_one.conf` 文件中的这一段: + +```nginx +# 政府API代理 - 处理其他政府相关接口 +location ^~ /api/government/ { + proxy_pass http://localhost:5352/api/government/; # ❌ 错误 + # ... 其他配置 +} +``` + +修改为: + +```nginx +# 政府API代理 - 处理其他政府相关接口 +location ^~ /api/government/ { + proxy_pass http://localhost:5352; # ✅ 正确 + # ... 其他配置 +} +``` + +### 2. 重启 nginx + +```bash +sudo nginx -t +sudo systemctl reload nginx +``` + +### 3. 验证修复 + +```bash +# 应该返回 200 +curl -X GET https://ad.ningmuyun.com/api/government/departments + +# 应该返回 404(因为路径不再重复) +curl -X GET https://ad.ningmuyun.com/api/government/government/departments +``` + +## 🎯 proxy_pass 尾部斜杠的区别 + +这是一个非常重要的 nginx 配置细节: + +### 有尾部斜杠 +```nginx +location ^~ /api/government/ { + proxy_pass http://localhost:5352/api/government/; +} +``` +- 请求:`/api/government/departments` +- 匹配部分:`/api/government/` +- 剩余部分:`departments` +- 代理到:`http://localhost:5352/api/government/departments` + +### 无尾部斜杠 +```nginx +location ^~ /api/government/ { + proxy_pass http://localhost:5352; +} +``` +- 请求:`/api/government/departments` +- 代理到:`http://localhost:5352/api/government/departments`(保持完整路径) + +## 📊 当前配置应该是 + +```nginx +# 政府认证API代理 +location ^~ /api/government/auth/ { + proxy_pass http://localhost:5352/api/auth/; # ✅ 正确(需要去掉 government) + # ... 其他配置 +} + +# 政府API代理 +location ^~ /api/government/ { + proxy_pass http://localhost:5352; # ✅ 正确(保持完整路径) + # ... 其他配置 +} +``` + +## 🚨 总结 + +修改配置文件,将: +```nginx +proxy_pass http://localhost:5352/api/government/; +``` + +改为: +```nginx +proxy_pass http://localhost:5352; +``` + +然后重启 nginx,问题应该就能解决了。 + diff --git a/government-backend/登录接口404错误修复说明.md b/government-backend/登录接口404错误修复说明.md new file mode 100644 index 0000000..bd106ab --- /dev/null +++ b/government-backend/登录接口404错误修复说明.md @@ -0,0 +1,126 @@ +# 政府端登录接口404错误修复说明 + +## 问题描述 +- **错误URL**: `https://ad.ningmuyun.com/api/government/auth/login` +- **错误状态**: 404 Not Found +- **影响范围**: 政府端管理系统登录功能 + +## 问题根因分析 + +### 1. 前端API调用路径 +- **前端调用**: `https://ad.ningmuyun.com/api/government/auth/login` +- **API定义**: `government-admin/src/utils/api.js` 第74行 + ```javascript + login: (data) => instance.post('/auth/login', data) + ``` +- **baseURL**: `http://localhost:5352/api` (开发环境) +- **实际请求**: `http://localhost:5352/api/auth/login` + +### 2. 后端路由配置 ✅ +- **认证路由**: `government-backend/routes/auth.js` 第6行 + ```javascript + router.post('/login', login) + ``` +- **应用路由注册**: `government-backend/app.js` 第39行 + ```javascript + app.use('/api/auth', require('./routes/auth')); + ``` +- **完整路径**: `/api/auth/login` + +### 3. Nginx配置问题 ❌ +**问题所在**: nginx配置中缺少政府认证API的路径匹配 + +**原始配置问题**: +- 只有 `/api/government/` 的代理配置 +- 缺少 `/api/government/auth/` 的专门代理配置 +- 导致 `/api/government/auth/login` 请求无法正确路由到后端的 `/api/auth/login` + +## 解决方案 + +### 修复nginx配置 +在 `government-backend/_etc_nginx_conf.d_ningmuyun_one.conf` 中添加政府认证API代理配置: + +```nginx +# 政府认证API代理 - 处理登录等认证接口 +location ^~ /api/government/auth/ { + proxy_pass http://localhost:5352/api/auth/; # 政府后端认证服务端口 + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # CORS配置 + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With' always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' 'https://ad.ningmuyun.com'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, X-Requested-With'; + add_header 'Access-Control-Allow-Credentials' 'true'; + add_header 'Content-Type' 'text/plain; charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } +} +``` + +### 路径映射说明 +- **前端请求**: `/api/government/auth/login` +- **nginx匹配**: `location ^~ /api/government/auth/` +- **代理转发**: `http://localhost:5352/api/auth/login` +- **后端处理**: `/api/auth/login` (authController.login) + +## 验证步骤 + +1. **重启nginx服务**: + ```bash + sudo nginx -t # 检查配置语法 + sudo systemctl reload nginx # 重新加载配置 + ``` + +2. **测试登录接口**: + ```bash + curl -X POST https://ad.ningmuyun.com/api/government/auth/login \ + -H "Content-Type: application/json" \ + -d '{"username":"test","password":"test"}' + ``` + +3. **检查前端登录功能**: + - 访问政府端管理系统登录页面 + - 输入正确的用户名和密码 + - 确认登录成功 + +## 相关文件 +- `government-backend/_etc_nginx_conf.d_ningmuyun_one.conf` - nginx配置文件 +- `government-backend/routes/auth.js` - 认证路由 +- `government-backend/controllers/authController.js` - 认证控制器 +- `government-admin/src/utils/api.js` - 前端API配置 +- `government-admin/src/stores/auth.js` - 前端认证状态管理 + +## 修复时间 +2024年12月19日 + +## 修复状态 +✅ 已修复 - nginx配置已更新,添加了政府认证API代理配置 + +## 重要说明 +**配置优先级**: 在nginx中,更具体的location规则会优先匹配。因此: +- `/api/government/auth/` 配置必须在 `/api/government/` 配置之前 +- 这样 `/api/government/auth/login` 会匹配到第一个规则,正确代理到 `/api/auth/login` +- 其他 `/api/government/` 开头的请求会匹配到第二个规则 + +## 测试方法 +运行测试脚本验证修复效果: +```bash +cd government-backend +node test-login-api.js +``` + +## 重启nginx命令 +```bash +sudo nginx -t # 检查配置语法 +sudo systemctl reload nginx # 重新加载配置 +``` diff --git a/government-mini-program/ARCHITECTURE.md b/government-mini-program/ARCHITECTURE.md deleted file mode 100644 index 397404e..0000000 --- a/government-mini-program/ARCHITECTURE.md +++ /dev/null @@ -1,213 +0,0 @@ -# 政府端小程序架构说明 - -## 整体架构 - -``` -┌─────────────────────────────────────────────────────────────┐ -│ 政府端小程序架构 │ -├─────────────────────────────────────────────────────────────┤ -│ 前端层 (Vue.js + uni-app) │ -│ ┌─────────────┬─────────────┬─────────────┬─────────────┐ │ -│ │ 首页组件 │ 登录组件 │ 看板组件 │ 管理组件 │ │ -│ │ Home.vue │ Login.vue │ Dashboard.vue│Supervision.vue│ │ -│ └─────────────┴─────────────┴─────────────┴─────────────┘ │ -├─────────────────────────────────────────────────────────────┤ -│ 服务层 (API Services) │ -│ ┌─────────────┬─────────────┬─────────────┬─────────────┐ │ -│ │ 认证服务 │ 看板服务 │ 监管服务 │ 审批服务 │ │ -│ │authService │dashboardSvc │supervisionSvc│approvalSvc │ │ -│ └─────────────┴─────────────┴─────────────┴─────────────┘ │ -├─────────────────────────────────────────────────────────────┤ -│ 工具层 (Utils) │ -│ ┌─────────────┬─────────────┬─────────────┬─────────────┐ │ -│ │ 认证工具 │ 请求工具 │ 路由守卫 │ 状态管理 │ │ -│ │ auth.js │ request.js │ router │ pinia │ │ -│ └─────────────┴─────────────┴─────────────┴─────────────┘ │ -├─────────────────────────────────────────────────────────────┤ -│ 后端API (Government Backend) │ -│ ┌─────────────┬─────────────┬─────────────┬─────────────┐ │ -│ │ 认证接口 │ 看板接口 │ 监管接口 │ 审批接口 │ │ -│ │ /api/auth │/api/visual │/api/superv │/api/approval│ │ -│ └─────────────┴─────────────┴─────────────┴─────────────┘ │ -└─────────────────────────────────────────────────────────────┘ -``` - -## 组件架构 - -### 1. 页面组件 (Pages) -``` -pages/ -├── index/ -│ └── index.vue # 首页 -├── login/ -│ └── login.vue # 登录页 -├── dashboard/ -│ └── dashboard.vue # 数据看板 -├── supervision/ -│ └── supervision.vue # 监管管理 -├── approval/ -│ └── approval.vue # 审批管理 -├── personnel/ -│ └── personnel.vue # 人员管理 -├── epidemic/ -│ └── epidemic.vue # 疫情监控 -├── service/ -│ └── service.vue # 服务管理 -├── warehouse/ -│ └── warehouse.vue # 仓库管理 -└── profile/ - └── profile.vue # 个人中心 -``` - -### 2. 业务组件 (Components) -``` -components/ -├── Home.vue # 首页组件 -├── Login.vue # 登录组件 -├── Dashboard.vue # 数据看板组件 -├── Supervision.vue # 监管管理组件 -├── Approval.vue # 审批管理组件 -├── Personnel.vue # 人员管理组件 -├── Epidemic.vue # 疫情监控组件 -├── Service.vue # 服务管理组件 -├── Warehouse.vue # 仓库管理组件 -└── Profile.vue # 个人中心组件 -``` - -### 3. 服务层 (Services) -``` -services/ -├── authService.js # 认证服务 -├── dashboardService.js # 看板服务 -├── supervisionService.js # 监管服务 -├── approvalService.js # 审批服务 -├── personnelService.js # 人员服务 -├── epidemicService.js # 疫情服务 -├── serviceService.js # 服务管理 -└── warehouseService.js # 仓库服务 -``` - -### 4. 工具层 (Utils) -``` -utils/ -├── auth.js # 认证工具 -└── request.js # 请求工具 -``` - -## 数据流架构 - -### 1. 用户认证流程 -``` -用户输入 → Login组件 → authService → 后端API → 返回Token → 存储到本地 → 路由跳转 -``` - -### 2. 数据获取流程 -``` -组件挂载 → 调用Service → request工具 → 后端API → 数据处理 → 更新组件状态 -``` - -### 3. 状态管理流程 -``` -用户操作 → 组件事件 → 调用API → 更新数据 → 重新渲染 → 用户反馈 -``` - -## 技术栈架构 - -### 前端技术栈 -- **框架**: Vue 2.6 + uni-app -- **状态管理**: Pinia -- **路由**: Vue Router -- **HTTP**: Axios -- **样式**: Sass/SCSS -- **构建**: Vue CLI + Vite - -### 后端技术栈 -- **框架**: Express.js -- **数据库**: MySQL (可选) -- **认证**: JWT -- **端口**: 5352 - -## 功能模块架构 - -### 1. 认证模块 -- 用户登录 -- Token管理 -- 权限控制 -- 路由守卫 - -### 2. 数据看板模块 -- 统计卡片 -- 图表展示 -- 实时数据 -- 预警信息 - -### 3. 管理模块 -- 监管管理 -- 审批管理 -- 人员管理 -- 疫情监控 -- 服务管理 -- 仓库管理 - -### 4. 个人中心模块 -- 用户信息 -- 设置管理 -- 退出登录 - -## 部署架构 - -### 开发环境 -``` -本地开发 → H5预览 → 微信开发者工具 → 真机调试 -``` - -### 生产环境 -``` -代码构建 → 服务器部署 → 域名配置 → 小程序发布 -``` - -## 安全架构 - -### 1. 前端安全 -- Token认证 -- 路由守卫 -- 输入验证 -- XSS防护 - -### 2. 后端安全 -- JWT认证 -- CORS配置 -- 请求验证 -- 错误处理 - -## 性能优化 - -### 1. 前端优化 -- 组件懒加载 -- 图片压缩 -- 代码分割 -- 缓存策略 - -### 2. 网络优化 -- 请求合并 -- 数据缓存 -- 错误重试 -- 超时处理 - -## 扩展性设计 - -### 1. 组件扩展 -- 模块化设计 -- 可复用组件 -- 配置化开发 -- 主题定制 - -### 2. 功能扩展 -- 插件机制 -- 模块热插拔 -- API版本管理 -- 数据迁移 - -## 总结 - -政府端小程序采用现代化的前端架构,具有良好的可维护性、可扩展性和用户体验。通过模块化设计和组件化开发,实现了功能的快速迭代和团队协作开发。 diff --git a/government-mini-program/COMPLETION_REPORT.md b/government-mini-program/COMPLETION_REPORT.md deleted file mode 100644 index 1eae617..0000000 --- a/government-mini-program/COMPLETION_REPORT.md +++ /dev/null @@ -1,219 +0,0 @@ -# 政府端小程序完成报告 - -## 项目概述 - -基于养殖端小程序和政府端后端代码,成功创建了一个功能完整的政府端微信小程序。该项目采用Vue.js + uni-app技术栈,提供全面的政府管理功能。 - -## 完成情况 - -### ✅ 已完成功能 - -#### 1. 项目基础架构 -- [x] 完整的Vue 2.6 + uni-app项目结构 -- [x] 多端支持(微信小程序、H5、App) -- [x] 响应式设计和移动端优化 -- [x] 模块化组件设计 -- [x] 完整的路由配置 - -#### 2. 用户认证系统 -- [x] 登录页面(用户名/密码) -- [x] 用户信息管理 -- [x] Token认证机制 -- [x] 路由守卫和权限控制 -- [x] 退出登录功能 - -#### 3. 核心功能模块 -- [x] **数据看板** - 统计卡片、图表展示、实时数据 -- [x] **监管管理** - 记录管理、搜索筛选、状态跟踪 -- [x] **审批管理** - 审批流程、状态管理、操作记录 -- [x] **人员管理** - 人员信息、部门管理、联系方式 -- [x] **疫情监控** - 疫情数据、预警系统、风险等级 -- [x] **服务管理** - 服务项目、状态管理、分类管理 -- [x] **仓库管理** - 仓库信息、容量管理、管理员信息 -- [x] **个人中心** - 用户设置、头像编辑、系统配置 - -#### 4. 技术特性 -- [x] 完整的API服务层 -- [x] 统一的请求处理 -- [x] 错误处理和用户提示 -- [x] 加载状态管理 -- [x] 下拉刷新功能 -- [x] 搜索和筛选功能 - -## 项目结构 - -``` -government-mini-program/ -├── src/ -│ ├── components/ # 9个核心业务组件 -│ ├── pages/ # 9个页面文件 -│ ├── services/ # 8个API服务文件 -│ ├── utils/ # 2个工具类文件 -│ ├── styles/ # 样式文件 -│ ├── router/ # 路由配置 -│ ├── App.vue # 根组件 -│ └── main.js # 入口文件 -├── public/ # 静态资源 -├── static/ # 小程序静态资源 -├── 配置文件 # 项目配置文件 -├── 启动脚本 # 开发环境启动脚本 -└── 文档 # 完整的项目文档 -``` - -## 技术实现 - -### 前端技术栈 -- **框架**: Vue 2.6 + uni-app -- **状态管理**: Pinia -- **路由**: Vue Router -- **HTTP请求**: Axios -- **样式**: Sass/SCSS -- **构建工具**: Vue CLI + Vite - -### 后端集成 -- **API基础地址**: http://localhost:5352/api -- **认证方式**: JWT Token -- **数据格式**: JSON -- **错误处理**: 统一错误码 - -## 功能特色 - -### 1. 用户体验 -- 现代化的UI设计 -- 流畅的交互体验 -- 响应式布局 -- 移动端优化 - -### 2. 功能完整性 -- 8个核心功能模块 -- 完整的CRUD操作 -- 搜索和筛选功能 -- 状态管理 - -### 3. 技术先进性 -- 组件化开发 -- 模块化架构 -- 可维护性强 -- 扩展性好 - -## 文件统计 - -### 代码文件 -- **Vue组件**: 18个 -- **JavaScript文件**: 10个 -- **样式文件**: 3个 -- **配置文件**: 8个 -- **文档文件**: 5个 - -### 代码行数 -- **总代码行数**: 约3000行 -- **Vue组件**: 约2000行 -- **JavaScript**: 约800行 -- **样式**: 约200行 - -## 部署说明 - -### 开发环境 -```bash -# 1. 安装依赖 -npm install - -# 2. 启动后端服务 -cd ../government-backend -npm start - -# 3. 启动前端服务 -cd ../government-mini-program -npm run dev:h5 -``` - -### 生产环境 -```bash -# 1. 构建H5版本 -npm run build:h5 - -# 2. 构建微信小程序 -npm run build:mp-weixin -``` - -## 使用指南 - -### 1. 快速开始 -1. 确保Node.js 16.20.2+已安装 -2. 启动后端服务(端口5352) -3. 进入项目目录执行 `npm install` -4. 执行 `npm run dev:h5` 启动开发服务器 -5. 访问 http://localhost:8080 - -### 2. 默认登录 -- 用户名: admin -- 密码: 123456 - -### 3. 功能导航 -- 首页: 数据概览和快捷功能 -- 数据看板: 统计图表和数据分析 -- 监管管理: 监管记录和检查管理 -- 审批管理: 审批流程和状态跟踪 -- 人员管理: 工作人员信息管理 -- 疫情监控: 疫情数据和预警 -- 服务管理: 政府服务项目管理 -- 仓库管理: 物资仓库管理 -- 个人中心: 用户设置和个人信息 - -## 项目优势 - -### 1. 完整性 -- 功能模块完整 -- 代码结构清晰 -- 文档齐全 -- 可直接使用 - -### 2. 可维护性 -- 模块化设计 -- 组件化开发 -- 代码规范 -- 注释完整 - -### 3. 可扩展性 -- 易于添加新功能 -- 支持多端发布 -- 配置灵活 -- 架构合理 - -### 4. 用户体验 -- 界面美观 -- 操作流畅 -- 响应迅速 -- 交互友好 - -## 后续建议 - -### 1. 功能扩展 -- 添加更多数据可视化图表 -- 实现消息推送功能 -- 添加文件上传和下载 -- 集成地图定位功能 - -### 2. 性能优化 -- 实现虚拟滚动 -- 添加图片懒加载 -- 优化网络请求 -- 实现离线缓存 - -### 3. 用户体验 -- 添加暗黑模式 -- 实现多语言支持 -- 添加手势操作 -- 优化动画效果 - -## 总结 - -政府端小程序项目已成功完成,具备以下特点: - -1. **功能完整**: 包含8个核心功能模块,满足政府管理需求 -2. **技术先进**: 采用现代化前端技术栈,代码质量高 -3. **易于使用**: 提供完整的文档和启动脚本 -4. **可扩展**: 模块化设计,易于维护和扩展 -5. **生产就绪**: 可直接用于生产环境 - -项目已准备好进行测试、部署和使用。所有核心功能都已实现,代码结构清晰,文档完整,可以立即投入使用。 diff --git a/government-mini-program/PROJECT_SUMMARY.md b/government-mini-program/PROJECT_SUMMARY.md deleted file mode 100644 index 04d92af..0000000 --- a/government-mini-program/PROJECT_SUMMARY.md +++ /dev/null @@ -1,252 +0,0 @@ -# 政府端小程序项目总结 - -## 项目概述 - -基于养殖端小程序和政府端后端代码,成功创建了一个完整的政府端微信小程序,提供全面的政府管理功能。 - -## 已完成功能 - -### 1. 基础架构 -- ✅ 完整的Vue 2.6 + uni-app项目结构 -- ✅ 响应式设计,支持多端发布(微信小程序、H5、App) -- ✅ 模块化组件设计,易于维护和扩展 -- ✅ 完整的路由配置和页面管理 - -### 2. 用户认证系统 -- ✅ 登录页面(用户名/密码登录) -- ✅ 用户信息管理 -- ✅ Token认证机制 -- ✅ 路由守卫和权限控制 - -### 3. 核心功能模块 - -#### 数据看板 (Dashboard) -- ✅ 数据概览卡片展示 -- ✅ 统计图表区域 -- ✅ 监管统计信息 -- ✅ 最近活动列表 - -#### 监管管理 (Supervision) -- ✅ 监管记录列表 -- ✅ 搜索和筛选功能 -- ✅ 新增/编辑/删除监管记录 -- ✅ 状态管理(待处理、进行中、已完成、已逾期) - -#### 审批管理 (Approval) -- ✅ 审批记录列表 -- ✅ 审批通过/拒绝功能 -- ✅ 审批状态跟踪 -- ✅ 申请人信息管理 - -#### 人员管理 (Personnel) -- ✅ 人员信息列表 -- ✅ 头像和基本信息展示 -- ✅ 部门角色管理 -- ✅ 联系方式管理 - -#### 疫情监控 (Epidemic) -- ✅ 疫情预警系统 -- ✅ 疫情数据统计 -- ✅ 疫情记录管理 -- ✅ 风险等级显示 - -#### 服务管理 (Service) -- ✅ 服务项目列表 -- ✅ 服务状态管理 -- ✅ 服务分类管理 -- ✅ 服务描述和详情 - -#### 仓库管理 (Warehouse) -- ✅ 仓库信息管理 -- ✅ 容量和位置信息 -- ✅ 管理员信息 -- ✅ 仓库状态跟踪 - -#### 个人中心 (Profile) -- ✅ 用户信息展示 -- ✅ 头像编辑功能 -- ✅ 设置菜单 -- ✅ 退出登录功能 - -### 4. 技术特性 -- ✅ 完整的API服务层 -- ✅ 统一的请求处理 -- ✅ 错误处理和用户提示 -- ✅ 加载状态管理 -- ✅ 下拉刷新功能 - -## 项目结构 - -``` -government-mini-program/ -├── src/ -│ ├── components/ # 核心组件 -│ │ ├── Home.vue # 首页 -│ │ ├── Login.vue # 登录 -│ │ ├── Dashboard.vue # 数据看板 -│ │ ├── Supervision.vue # 监管管理 -│ │ ├── Approval.vue # 审批管理 -│ │ ├── Personnel.vue # 人员管理 -│ │ ├── Epidemic.vue # 疫情监控 -│ │ ├── Service.vue # 服务管理 -│ │ ├── Warehouse.vue # 仓库管理 -│ │ └── Profile.vue # 个人中心 -│ ├── pages/ # 页面文件 -│ ├── services/ # API服务 -│ │ ├── authService.js -│ │ ├── dashboardService.js -│ │ ├── supervisionService.js -│ │ ├── approvalService.js -│ │ ├── personnelService.js -│ │ ├── epidemicService.js -│ │ ├── serviceService.js -│ │ └── warehouseService.js -│ ├── utils/ # 工具类 -│ │ ├── auth.js # 认证工具 -│ │ └── request.js # 请求工具 -│ ├── styles/ # 样式文件 -│ │ ├── variables.scss # 变量 -│ │ └── mixins.scss # 混入 -│ ├── router/ # 路由配置 -│ ├── App.vue # 根组件 -│ └── main.js # 入口文件 -├── public/ # 静态资源 -├── static/ # 小程序静态资源 -├── package.json # 项目配置 -├── pages.json # 页面配置 -├── manifest.json # 应用配置 -├── vue.config.js # Vue配置 -├── vite.config.js # Vite配置 -├── start-dev.bat # Windows启动脚本 -├── start-dev.sh # Linux/Mac启动脚本 -└── README.md # 项目说明 -``` - -## API接口集成 - -### 认证接口 -- `POST /api/auth/login` - 用户登录 -- `GET /api/auth/userinfo` - 获取用户信息 - -### 数据看板接口 -- `GET /api/visualization/data` - 获取可视化数据 -- `GET /api/supervision/stats` - 获取监管统计 -- `GET /api/approval/stats` - 获取审批统计 -- `GET /api/personnel/stats` - 获取人员统计 -- `GET /api/epidemic/stats` - 获取疫情统计 -- `GET /api/service/stats` - 获取服务统计 -- `GET /api/warehouse/stats` - 获取仓库统计 - -### 管理功能接口 -- 监管管理:`/api/supervision/*` -- 审批管理:`/api/approval/*` -- 人员管理:`/api/personnel/*` -- 疫情监控:`/api/epidemic/*` -- 服务管理:`/api/service/*` -- 仓库管理:`/api/warehouse/*` - -## 使用说明 - -### 1. 环境准备 -```bash -# 确保Node.js 16.20.2+已安装 -node --version - -# 确保后端服务运行在 http://localhost:5352 -``` - -### 2. 安装和启动 -```bash -# 进入项目目录 -cd government-mini-program - -# 安装依赖 -npm install - -# 启动开发服务器 -npm run dev:h5 -``` - -### 3. 微信小程序开发 -```bash -# 构建微信小程序 -npm run build:mp-weixin - -# 使用微信开发者工具打开 dist/mp-weixin 目录 -``` - -### 4. 默认登录信息 -- 用户名:admin -- 密码:123456 - -## 特色功能 - -### 1. 响应式设计 -- 适配不同屏幕尺寸 -- 支持横屏和竖屏模式 -- 优化的移动端交互体验 - -### 2. 模块化架构 -- 组件化开发,易于维护 -- 服务层分离,便于测试 -- 统一的样式和主题管理 - -### 3. 用户体验优化 -- 加载状态提示 -- 错误处理和用户反馈 -- 下拉刷新和上拉加载 -- 搜索和筛选功能 - -### 4. 数据可视化 -- 统计卡片展示 -- 图表数据展示 -- 实时数据更新 -- 预警信息提示 - -## 技术栈 - -- **前端框架**: Vue 2.6 + uni-app -- **UI组件**: 自定义组件 + Vant Weapp -- **状态管理**: Pinia -- **路由管理**: Vue Router -- **HTTP请求**: Axios -- **样式预处理**: Sass/SCSS -- **构建工具**: Vue CLI + Vite -- **开发语言**: JavaScript ES6+ - -## 部署说明 - -### H5部署 -1. 执行 `npm run build:h5` -2. 将 `dist` 目录上传到服务器 -3. 配置nginx或其他web服务器 - -### 微信小程序部署 -1. 使用微信开发者工具打开项目 -2. 配置小程序AppID -3. 点击上传,提交审核 -4. 审核通过后发布 - -## 后续扩展建议 - -### 1. 功能扩展 -- 添加更多数据可视化图表 -- 实现消息推送功能 -- 添加文件上传和下载 -- 集成地图定位功能 - -### 2. 性能优化 -- 实现虚拟滚动 -- 添加图片懒加载 -- 优化网络请求 -- 实现离线缓存 - -### 3. 用户体验 -- 添加暗黑模式 -- 实现多语言支持 -- 添加手势操作 -- 优化动画效果 - -## 总结 - -政府端小程序已成功创建,具备完整的政府管理功能,包括数据看板、监管管理、审批管理、人员管理、疫情监控、服务管理和仓库管理等核心模块。项目采用现代化的前端技术栈,具有良好的可维护性和扩展性,可以直接用于生产环境。 diff --git a/government-mini-program/QUICK_START.md b/government-mini-program/QUICK_START.md deleted file mode 100644 index f3866f2..0000000 --- a/government-mini-program/QUICK_START.md +++ /dev/null @@ -1,138 +0,0 @@ -# 政府端小程序快速开始指南 - -## 🚀 快速启动 - -### 1. 环境检查 -确保您的开发环境满足以下要求: -- Node.js 16.20.2 或更高版本 -- npm 8.0.0 或更高版本 -- 微信开发者工具(用于小程序开发) - -### 2. 后端服务 -确保政府端后端服务正在运行: -```bash -# 在 government-backend 目录下 -npm start -# 服务将在 http://localhost:5352 启动 -``` - -### 3. 启动小程序 -```bash -# 进入项目目录 -cd government-mini-program - -# 安装依赖 -npm install - -# 启动H5开发服务器 -npm run dev:h5 -``` - -### 4. 访问应用 -打开浏览器访问:http://localhost:8080 - -## 🔑 登录信息 - -使用以下默认账号登录: -- **用户名**: admin -- **密码**: 123456 - -## 📱 功能导航 - -### 主要功能模块 -1. **首页** - 数据概览和快捷功能 -2. **数据看板** - 统计图表和数据分析 -3. **监管管理** - 监管记录和检查管理 -4. **审批管理** - 审批流程和状态跟踪 -5. **人员管理** - 工作人员信息管理 -6. **疫情监控** - 疫情数据和预警 -7. **服务管理** - 政府服务项目管理 -8. **仓库管理** - 物资仓库管理 -9. **个人中心** - 用户设置和个人信息 - -### 快捷操作 -- **搜索**: 在列表页面使用搜索框快速查找 -- **筛选**: 点击筛选按钮进行条件筛选 -- **新增**: 点击右上角"+"按钮添加新记录 -- **编辑**: 点击列表项的编辑按钮 -- **删除**: 点击列表项的删除按钮 - -## 🛠️ 开发模式 - -### H5开发 -```bash -npm run dev:h5 -``` -- 支持热重载 -- 自动打开浏览器 -- 支持移动端调试 - -### 微信小程序开发 -```bash -# 构建小程序 -npm run build:mp-weixin - -# 使用微信开发者工具打开 dist/mp-weixin 目录 -``` - -### 生产构建 -```bash -# H5生产构建 -npm run build:h5 - -# 微信小程序生产构建 -npm run build:mp-weixin -``` - -## 🔧 配置说明 - -### API配置 -在 `src/utils/request.js` 中配置API基础地址: -```javascript -const BASE_URL = process.env.NODE_ENV === 'development' - ? 'http://localhost:5352/api' - : 'https://your-domain.com/api' -``` - -### 微信小程序配置 -在 `manifest.json` 中配置小程序信息: -```json -{ - "mp-weixin": { - "appid": "your-wechat-appid", - "setting": { - "urlCheck": false - } - } -} -``` - -## 📋 常见问题 - -### Q: 无法连接到后端服务 -A: 确保后端服务正在运行,检查端口5352是否被占用 - -### Q: 登录失败 -A: 检查用户名密码是否正确,确保后端认证接口正常 - -### Q: 页面显示异常 -A: 检查浏览器控制台错误信息,确保所有依赖已正确安装 - -### Q: 微信小程序无法预览 -A: 确保已配置正确的AppID,检查网络连接 - -## 🎯 下一步 - -1. **自定义配置**: 根据实际需求修改API地址和配置 -2. **添加功能**: 在现有基础上扩展新的功能模块 -3. **样式调整**: 根据设计稿调整UI样式和布局 -4. **数据对接**: 连接真实的后端API接口 -5. **测试部署**: 进行功能测试和生产环境部署 - -## 📞 技术支持 - -如有问题,请参考: -- 项目README.md文件 -- 项目PROJECT_SUMMARY.md文件 -- 微信小程序官方文档 -- Vue.js官方文档 diff --git a/government-mini-program/README.md b/government-mini-program/README.md index d321f04..7eaffb4 100644 --- a/government-mini-program/README.md +++ b/government-mini-program/README.md @@ -1,197 +1,157 @@ -# 政府端小程序 +# 政府端微信小程序 -基于Vue.js和uni-app开发的政府管理系统微信小程序,提供完整的政府监管、审批、人员管理等功能。 +## 项目简介 + +这是一个基于微信小程序开发的政府端管理系统,主要用于政府部门的养殖户管理和相关业务处理。 ## 功能特性 -### 核心功能 -- **数据看板**: 实时展示各类统计数据和分析图表 -- **监管管理**: 监管记录管理、检查任务分配、结果跟踪 -- **审批管理**: 各类申请审批流程管理 -- **人员管理**: 政府工作人员信息管理 -- **疫情监控**: 疫情数据监控和预警 -- **服务管理**: 政府服务项目管理 -- **仓库管理**: 物资仓库管理 +### 🏠 首页 +- **智能硬件设备管理** + - 项圈仓库 + - 耳标仓库 + - 脚环仓库 + - 主机仓库 -### 技术特性 -- 基于Vue 2.6 + uni-app框架 -- 支持微信小程序、H5、App多端发布 -- 响应式设计,适配各种屏幕尺寸 -- 模块化组件设计,易于维护和扩展 -- 完整的API接口集成 -- 用户认证和权限管理 +- **其它功能模块** + - 牲畜身份认证 + - 无纸化检疫 + - 检疫证查询 + - 金融保险监管 + - 屠宰场监管 + - 检疫站监管 + - 无纸化防疫 + - 防疫站监管 + +### 👥 养殖户管理 +- 养殖户信息列表 +- 搜索功能(按姓名、手机号) +- 添加/编辑/删除养殖户 +- 分页加载 +- 下拉刷新 + +### 👤 我的 +- 个人信息展示 +- 系统设置 +- 帮助中心 +- 关于我们 +- 退出登录 + +## 技术栈 + +- **框架**:微信小程序原生开发 +- **语言**:JavaScript、WXML、WXSS +- **工具**:微信开发者工具 ## 项目结构 ``` government-mini-program/ -├── src/ -│ ├── components/ # 组件目录 -│ │ ├── Home.vue # 首页组件 -│ │ ├── Login.vue # 登录组件 -│ │ ├── Dashboard.vue # 数据看板 -│ │ ├── Supervision.vue # 监管管理 -│ │ ├── Approval.vue # 审批管理 -│ │ ├── Personnel.vue # 人员管理 -│ │ ├── Epidemic.vue # 疫情监控 -│ │ ├── Service.vue # 服务管理 -│ │ ├── Warehouse.vue # 仓库管理 -│ │ └── Profile.vue # 个人中心 -│ ├── pages/ # 页面目录 -│ ├── services/ # API服务 -│ ├── utils/ # 工具类 -│ ├── styles/ # 样式文件 -│ ├── router/ # 路由配置 -│ ├── App.vue # 根组件 -│ └── main.js # 入口文件 -├── public/ # 静态资源 -├── package.json # 项目配置 -├── pages.json # 页面配置 -├── manifest.json # 应用配置 -└── vue.config.js # Vue配置 +├── app.js # 小程序入口文件 +├── app.json # 全局配置 +├── app.wxss # 全局样式 +├── pages/ # 页面目录 +│ ├── index/ # 首页 +│ │ ├── index.js +│ │ ├── index.json +│ │ ├── index.wxml +│ │ └── index.wxss +│ ├── farmer/ # 养殖户管理 +│ │ ├── farmer.js +│ │ ├── farmer.json +│ │ ├── farmer.wxml +│ │ └── farmer.wxss +│ └── profile/ # 我的 +│ ├── profile.js +│ ├── profile.json +│ ├── profile.wxml +│ └── profile.wxss +├── images/ # 图片资源 +├── sitemap.json # 站点地图 +├── project.config.json # 项目配置 +└── package.json # 包管理文件 ``` -## 开发环境 +## 快速开始 -### 环境要求 -- Node.js 16.20.2+ -- npm 8.0.0+ -- 微信开发者工具 +### 1. 环境准备 +- 安装微信开发者工具 +- 注册微信小程序账号 -### 安装依赖 -```bash -npm install -``` +### 2. 导入项目 +1. 打开微信开发者工具 +2. 选择"导入项目" +3. 选择项目根目录 +4. 填写AppID(测试可使用测试号) +5. 点击"确定" -### 开发模式 -```bash -# H5开发 -npm run dev:h5 +### 3. 运行项目 +- 在微信开发者工具中点击"编译" +- 在模拟器中查看效果 +- 使用真机调试测试实际效果 -# 微信小程序开发 -npm run dev:mp-weixin -``` +## 设计说明 -### 构建生产版本 -```bash -# H5构建 -npm run build:h5 +### 视觉设计 +- **主色调**:绿色 (#4CAF50) +- **背景色**:浅灰色 (#f5f5f5) +- **卡片样式**:圆角、阴影效果 +- **图标设计**:圆形背景、彩色配色 -# 微信小程序构建 -npm run build:mp-weixin -``` +### 布局特点 +- **顶部导航**:绿色背景,白色文字 +- **功能区域**:卡片式布局,网格排列 +- **底部导航**:3个标签页,图标+文字 +- **响应式**:适配不同屏幕尺寸 -## API接口 +## 开发说明 -### 认证接口 -- `POST /api/auth/login` - 用户登录 -- `GET /api/auth/userinfo` - 获取用户信息 +### 页面配置 +每个页面包含4个文件: +- `.js` - 页面逻辑 +- `.json` - 页面配置 +- `.wxml` - 页面结构 +- `.wxss` - 页面样式 -### 数据看板接口 -- `GET /api/visualization/data` - 获取可视化数据 -- `GET /api/supervision/stats` - 获取监管统计 -- `GET /api/approval/stats` - 获取审批统计 +### 数据管理 +- 使用Page的data属性管理页面数据 +- 通过setData方法更新数据 +- 支持下拉刷新和上拉加载 -### 监管管理接口 -- `GET /api/supervision/list` - 获取监管列表 -- `POST /api/supervision` - 创建监管记录 -- `PUT /api/supervision/:id` - 更新监管记录 -- `DELETE /api/supervision/:id` - 删除监管记录 - -### 审批管理接口 -- `GET /api/approval/list` - 获取审批列表 -- `POST /api/approval` - 创建审批 -- `POST /api/approval/:id/approve` - 审批通过 -- `POST /api/approval/:id/reject` - 审批拒绝 - -### 人员管理接口 -- `GET /api/personnel/list` - 获取人员列表 -- `POST /api/personnel` - 创建人员 -- `PUT /api/personnel/:id` - 更新人员 -- `DELETE /api/personnel/:id` - 删除人员 - -### 疫情监控接口 -- `GET /api/epidemic/list` - 获取疫情列表 -- `POST /api/epidemic` - 创建疫情记录 -- `GET /api/epidemic/stats` - 获取疫情统计 - -### 服务管理接口 -- `GET /api/service/list` - 获取服务列表 -- `POST /api/service` - 创建服务 -- `PUT /api/service/:id` - 更新服务 -- `DELETE /api/service/:id` - 删除服务 - -### 仓库管理接口 -- `GET /api/warehouse/list` - 获取仓库列表 -- `POST /api/warehouse` - 创建仓库 -- `PUT /api/warehouse/:id` - 更新仓库 -- `DELETE /api/warehouse/:id` - 删除仓库 - -## 配置说明 - -### 环境配置 -在项目根目录创建 `.env` 文件(或复制 `config.env` 为 `.env`): -``` -# API基础地址 -VUE_APP_API_BASE_URL=http://localhost:5352/api - -# 应用配置 -VUE_APP_TITLE=政府管理系统 -VUE_APP_VERSION=1.0.0 -``` - -### 微信小程序配置 -在 `manifest.json` 中配置小程序信息: -```json -{ - "mp-weixin": { - "appid": "your-wechat-appid", - "setting": { - "urlCheck": false, - "es6": true, - "postcss": true, - "minified": true - } - } -} -``` - -## 部署说明 - -### 微信小程序部署 -1. 使用微信开发者工具打开项目 -2. 配置小程序AppID -3. 点击上传,提交审核 -4. 审核通过后发布 - -### H5部署 -1. 执行 `npm run build:h5` -2. 将 `dist` 目录上传到服务器 -3. 配置nginx或其他web服务器 - -## 开发指南 - -### 添加新页面 -1. 在 `src/pages` 目录下创建页面文件夹 -2. 在 `pages.json` 中注册页面 -3. 在 `src/router/index.js` 中添加路由 - -### 添加新组件 -1. 在 `src/components` 目录下创建组件文件 -2. 在需要使用的页面中导入并使用 - -### 添加新API -1. 在 `src/services` 目录下创建服务文件 -2. 在 `src/utils/request.js` 中添加请求方法 -3. 在组件中调用API +### 事件处理 +- 使用bindtap绑定点击事件 +- 使用catchtap阻止事件冒泡 +- 支持表单输入和数据提交 ## 注意事项 -1. 确保后端API服务正常运行 -2. 检查网络请求配置和跨域设置 -3. 微信小程序需要配置合法域名 -4. 生产环境需要配置HTTPS +1. **图标资源**:当前使用占位符图标,建议替换为实际设计图标 +2. **API接口**:功能模块目前显示"开发中"提示,需要对接实际后端API +3. **权限控制**:根据实际需求添加用户权限验证 +4. **错误处理**:完善网络请求和异常情况的处理 +5. **性能优化**:图片压缩、代码分包等优化措施 -## 许可证 +## 后续开发 -MIT License +### 功能完善 +- [ ] 对接后端API接口 +- [ ] 添加用户登录认证 +- [ ] 完善权限管理系统 +- [ ] 添加数据统计功能 +- [ ] 实现消息推送 + +### 体验优化 +- [ ] 添加加载动画 +- [ ] 优化页面切换效果 +- [ ] 完善错误提示 +- [ ] 添加操作反馈 +- [ ] 支持暗色模式 + +## 联系方式 + +如有问题或建议,请联系开发团队。 + +--- + +**版本**:v1.0.0 +**更新时间**:2024年1月 diff --git a/government-mini-program/app.js b/government-mini-program/app.js index 55a0f51..1ed57c4 100644 --- a/government-mini-program/app.js +++ b/government-mini-program/app.js @@ -10,12 +10,10 @@ App({ wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, unionId - console.log('登录成功', res.code) } }) }, globalData: { - userInfo: null, - baseUrl: 'http://localhost:5352/api' + userInfo: null } }) diff --git a/government-mini-program/app.json b/government-mini-program/app.json index 6e81e0e..8c731aa 100644 --- a/government-mini-program/app.json +++ b/government-mini-program/app.json @@ -2,51 +2,46 @@ "pages": [ "pages/index/index", "pages/login/login", - "pages/dashboard/dashboard", - "pages/supervision/supervision", - "pages/approval/approval", - "pages/personnel/personnel", - "pages/epidemic/epidemic", - "pages/service/service", - "pages/warehouse/warehouse", - "pages/profile/profile" + "pages/farmers/farmers", + "pages/profile/profile", + "pages/statistics/statistics", + "pages/farmer/farmer", + "pages/notification/notification", + "pages/farmer/add/add", + "pages/farmer/edit/edit", + "pages/farmer/detail/detail", + "pages/notification/detail/detail" ], "window": { "backgroundTextStyle": "light", - "navigationBarBackgroundColor": "#1890ff", - "navigationBarTitleText": "政府管理系统", + "navigationBarBackgroundColor": "#2c5aa0", + "navigationBarTitleText": "政府监管端", "navigationBarTextStyle": "white", - "backgroundColor": "#f6f6f6" + "backgroundColor": "#f5f5f5" }, "tabBar": { - "color": "#7A7E83", - "selectedColor": "#1890ff", - "borderStyle": "black", + "color": "#999999", + "selectedColor": "#7CB342", "backgroundColor": "#ffffff", + "borderStyle": "black", "list": [ { "pagePath": "pages/index/index", + "text": "首页", "iconPath": "images/home.png", - "selectedIconPath": "images/home-active.png", - "text": "首页" + "selectedIconPath": "images/home-active.png" }, { - "pagePath": "pages/dashboard/dashboard", - "iconPath": "images/dashboard.png", - "selectedIconPath": "images/dashboard-active.png", - "text": "看板" - }, - { - "pagePath": "pages/supervision/supervision", - "iconPath": "images/supervision.png", - "selectedIconPath": "images/supervision-active.png", - "text": "监管" + "pagePath": "pages/farmers/farmers", + "text": "养殖户", + "iconPath": "images/farmer.png", + "selectedIconPath": "images/farmer-active.png" }, { "pagePath": "pages/profile/profile", + "text": "我的", "iconPath": "images/profile.png", - "selectedIconPath": "images/profile-active.png", - "text": "我的" + "selectedIconPath": "images/profile-active.png" } ] }, @@ -54,6 +49,5 @@ "request": 10000, "downloadFile": 10000 }, - "debug": true, - "sitemapLocation": "sitemap.json" + "debug": true } \ No newline at end of file diff --git a/government-mini-program/app.wxss b/government-mini-program/app.wxss index 5853bec..77c2213 100644 --- a/government-mini-program/app.wxss +++ b/government-mini-program/app.wxss @@ -11,147 +11,29 @@ /* 全局样式 */ page { - background-color: #f6f6f6; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif; -} - -/* 通用类 */ -.card { - background: #fff; - border-radius: 16rpx; - padding: 30rpx; - margin-bottom: 20rpx; - box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.1); -} - -.title { - font-size: 32rpx; - font-weight: 600; - color: #333; - margin-bottom: 20rpx; -} - -.subtitle { - font-size: 28rpx; - font-weight: 500; - color: #666; - margin-bottom: 16rpx; -} - -.text { - font-size: 26rpx; - color: #999; - line-height: 1.5; + background-color: #f5f5f5; + font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', SimSun, sans-serif; } +/* 通用按钮样式 */ .btn { - display: inline-block; - padding: 20rpx 40rpx; border-radius: 8rpx; - text-align: center; font-size: 28rpx; - border: none; - transition: all 0.3s; + padding: 20rpx 40rpx; } -.btn.primary { - background: #1890ff; - color: #fff; +/* 卡片样式 */ +.card { + background-color: #ffffff; + border-radius: 12rpx; + box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1); + margin: 20rpx; + padding: 30rpx; } -.btn.success { - background: #52c41a; - color: #fff; -} - -.btn.warning { - background: #faad14; - color: #fff; -} - -.btn.danger { - background: #ff4d4f; - color: #fff; -} - -.flex { - display: flex; -} - -.flex.center { - align-items: center; - justify-content: center; -} - -.flex.between { - justify-content: space-between; -} - -.flex.around { - justify-content: space-around; -} - -.flex.column { - flex-direction: column; -} - -/* 加载状态 */ -.loading { - display: flex; - align-items: center; - justify-content: center; - padding: 40rpx; - color: #999; -} - -/* 空状态 */ -.empty { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - padding: 80rpx 40rpx; - color: #999; -} - -.empty-icon { - font-size: 80rpx; - margin-bottom: 20rpx; -} - -.empty-text { - font-size: 28rpx; -} - -/* 列表项 */ -.list-item { - display: flex; - align-items: center; - padding: 30rpx 20rpx; - background: #fff; - border-bottom: 1rpx solid #f0f0f0; -} - -.list-item:last-child { - border-bottom: none; -} - -.item-content { - flex: 1; -} - -.item-title { - font-size: 30rpx; - color: #333; - margin-bottom: 8rpx; -} - -.item-desc { - font-size: 24rpx; - color: #999; -} - -.item-arrow { - font-size: 24rpx; - color: #ccc; +/* 分割线样式 */ +.divider { + height: 2rpx; + background-color: #e0e0e0; + margin: 20rpx 0; } diff --git a/government-mini-program/config.env b/government-mini-program/config.env deleted file mode 100644 index c69a2ac..0000000 --- a/government-mini-program/config.env +++ /dev/null @@ -1,19 +0,0 @@ -# API基础地址 -VUE_APP_API_BASE_URL=http://localhost:5352/api - -# 应用配置 -VUE_APP_TITLE=政府管理系统 -VUE_APP_VERSION=1.0.0 -VUE_APP_DESCRIPTION=政府管理系统微信小程序 - -# 微信小程序配置 -VUE_APP_WECHAT_APPID=wx1b9c7cd2d0e0bfd3 - -# 开发环境配置 -NODE_ENV=development - -# 端口配置 -PORT=8080 - -# 代理配置 -VUE_APP_PROXY_TARGET=http://localhost:5352 diff --git a/government-mini-program/config/api.js b/government-mini-program/config/api.js new file mode 100644 index 0000000..448218b --- /dev/null +++ b/government-mini-program/config/api.js @@ -0,0 +1,68 @@ +// API配置文件 +const config = { + // 后端服务器配置 + baseURL: 'https://ad.ningmuyun.com/api', + + // 请求超时时间 + timeout: 10000, + + // API端点配置 + endpoints: { + // 认证相关 + auth: { + login: '/government/auth/login', + logout: '/auth/logout', + userInfo: '/auth/userinfo' + }, + + // 养殖户管理 + farmer: { + list: '/government/farmers', + create: '/government/farmers', + update: '/government/farmers', + delete: '/government/farmers', + detail: '/government/farmers', + resetPassword: '/government/farmers/{id}/reset-password', + farmTypes: '/government/farm-types', + animalTypes: '/government/animal-types' + }, + + // 数据统计 + statistics: { + dataCenter: '/government/data-center', + marketPrice: '/government/market-price' + }, + + // 系统管理 + system: { + health: '/health' + }, + + // 设备管理 + device: { + warnings: '/device-warning', + smartCollars: '/government/collars', + smartEarmarks: '/smart-earmark', + smartHosts: '/smart-host' + }, + + // 疫情管理 + epidemic: { + records: '/epidemic-record', + activities: '/epidemic-activity', + vaccines: '/vaccine' + }, + + // 监管任务 + supervision: { + tasks: '/supervision' + }, + + // 审批流程 + approval: { + processes: '/approval-process' + } + } +}; + +module.exports = config; \ No newline at end of file diff --git a/government-mini-program/env.example b/government-mini-program/env.example deleted file mode 100644 index aa56cce..0000000 --- a/government-mini-program/env.example +++ /dev/null @@ -1,22 +0,0 @@ -# 环境配置示例文件 -# 复制此文件为 .env 并修改相应配置 - -# API基础地址 -VUE_APP_API_BASE_URL=http://localhost:5352/api - -# 应用配置 -VUE_APP_TITLE=政府管理系统 -VUE_APP_VERSION=1.0.0 -VUE_APP_DESCRIPTION=政府管理系统微信小程序 - -# 微信小程序配置 -VUE_APP_WECHAT_APPID=your-wechat-appid-here - -# 开发环境配置 -NODE_ENV=development - -# 端口配置 -PORT=8080 - -# 代理配置 -VUE_APP_PROXY_TARGET=http://localhost:5352 diff --git a/government-mini-program/images/dashboard-active.png b/government-mini-program/images/about.png similarity index 100% rename from government-mini-program/images/dashboard-active.png rename to government-mini-program/images/about.png diff --git a/government-mini-program/images/dashboard.png b/government-mini-program/images/ankle-ring.png similarity index 100% rename from government-mini-program/images/dashboard.png rename to government-mini-program/images/ankle-ring.png diff --git a/government-mini-program/images/logo.png b/government-mini-program/images/certificate.png similarity index 100% rename from government-mini-program/images/logo.png rename to government-mini-program/images/certificate.png diff --git a/government-mini-program/images/supervision-active.png b/government-mini-program/images/collar.png similarity index 100% rename from government-mini-program/images/supervision-active.png rename to government-mini-program/images/collar.png diff --git a/government-mini-program/images/supervision.png b/government-mini-program/images/ear-tag.png similarity index 100% rename from government-mini-program/images/supervision.png rename to government-mini-program/images/ear-tag.png diff --git a/government-mini-program/images/empty.png b/government-mini-program/images/empty.png new file mode 100644 index 0000000..0a289d9 --- /dev/null +++ b/government-mini-program/images/empty.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== diff --git a/government-mini-program/images/epidemic-station.png b/government-mini-program/images/epidemic-station.png new file mode 100644 index 0000000..0a289d9 --- /dev/null +++ b/government-mini-program/images/epidemic-station.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== diff --git a/government-mini-program/images/epidemic.png b/government-mini-program/images/epidemic.png new file mode 100644 index 0000000..0a289d9 --- /dev/null +++ b/government-mini-program/images/epidemic.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== diff --git a/government-mini-program/images/farmer-active.png b/government-mini-program/images/farmer-active.png new file mode 100644 index 0000000..37dc336 --- /dev/null +++ b/government-mini-program/images/farmer-active.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== \ No newline at end of file diff --git a/government-mini-program/images/farmer.png b/government-mini-program/images/farmer.png new file mode 100644 index 0000000..37dc336 --- /dev/null +++ b/government-mini-program/images/farmer.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== \ No newline at end of file diff --git a/government-mini-program/images/finance.png b/government-mini-program/images/finance.png new file mode 100644 index 0000000..0a289d9 --- /dev/null +++ b/government-mini-program/images/finance.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== diff --git a/government-mini-program/images/help.png b/government-mini-program/images/help.png new file mode 100644 index 0000000..0a289d9 --- /dev/null +++ b/government-mini-program/images/help.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== diff --git a/government-mini-program/images/host.png b/government-mini-program/images/host.png new file mode 100644 index 0000000..0a289d9 --- /dev/null +++ b/government-mini-program/images/host.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== diff --git a/government-mini-program/images/identity.png b/government-mini-program/images/identity.png new file mode 100644 index 0000000..0a289d9 --- /dev/null +++ b/government-mini-program/images/identity.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== diff --git a/government-mini-program/images/quarantine.png b/government-mini-program/images/quarantine.png new file mode 100644 index 0000000..0a289d9 --- /dev/null +++ b/government-mini-program/images/quarantine.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== diff --git a/government-mini-program/images/settings.png b/government-mini-program/images/settings.png new file mode 100644 index 0000000..0a289d9 --- /dev/null +++ b/government-mini-program/images/settings.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== diff --git a/government-mini-program/images/slaughter.png b/government-mini-program/images/slaughter.png new file mode 100644 index 0000000..0a289d9 --- /dev/null +++ b/government-mini-program/images/slaughter.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== diff --git a/government-mini-program/images/station.png b/government-mini-program/images/station.png new file mode 100644 index 0000000..0a289d9 --- /dev/null +++ b/government-mini-program/images/station.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== diff --git a/government-mini-program/images/user-info.png b/government-mini-program/images/user-info.png new file mode 100644 index 0000000..0a289d9 --- /dev/null +++ b/government-mini-program/images/user-info.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== diff --git a/government-mini-program/manifest.json b/government-mini-program/manifest.json deleted file mode 100644 index 03d3e9f..0000000 --- a/government-mini-program/manifest.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "name": "政府端小程序", - "appid": "wx1b9c7cd2d0e0bfd3", - "description": "政府管理系统微信小程序", - "versionName": "1.0.0", - "versionCode": "100", - "transformPx": false, - "mp-weixin": { - "appid": "wx1b9c7cd2d0e0bfd3", - "setting": { - "urlCheck": false, - "es6": true, - "postcss": true, - "minified": true - }, - "usingComponents": true, - "permission": { - "scope.userLocation": { - "desc": "你的位置信息将用于政府监管和地图展示" - } - }, - "optimization": { - "subPackages": true - } - }, - "vueVersion": "2", - "splashscreen": { - "alwaysShowBeforeRender": true, - "autoclose": false, - "waiting": true - }, - "app-plus": { - "usingComponents": true, - "nvueStyle": "flex", - "compilerVersion": 3, - "splashscreen": { - "alwaysShowBeforeRender": true, - "autoclose": false, - "waiting": true, - "delay": 0 - }, - "modules": {}, - "distribute": { - "android": { - "permissions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ] - }, - "ios": {} - } - }, - "quickapp": {}, - "h5": { - "router": { - "mode": "hash" - }, - "optimization": { - "treeShaking": { - "enable": true - } - } - } -} diff --git a/government-mini-program/miniprogram_npm/@dcloudio/uni-app/index.js b/government-mini-program/miniprogram_npm/@dcloudio/uni-app/index.js deleted file mode 100644 index 2808ea5..0000000 --- a/government-mini-program/miniprogram_npm/@dcloudio/uni-app/index.js +++ /dev/null @@ -1,392 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322045, function(require, module, exports) { - -Object.defineProperty(exports, "__esModule", { value: true }); -exports.onNavigationBarSearchInputClicked = exports.onNavigationBarSearchInputConfirmed = exports.onNavigationBarSearchInputChanged = exports.onBackPress = exports.onNavigationBarButtonTap = exports.onTabItemTap = exports.onResize = exports.onPageScroll = exports.onAddToFavorites = exports.onShareTimeline = exports.onShareAppMessage = exports.onReachBottom = exports.onPullDownRefresh = exports.onUnload = exports.onReady = exports.onLoad = exports.onInit = exports.onUniNViewMessage = exports.onThemeChange = exports.onUnhandledRejection = exports.onPageNotFound = exports.onError = exports.onLaunch = exports.onHide = exports.onShow = exports.initUtsPackageName = exports.initUtsClassName = exports.initUtsIndexClassName = exports.initUtsProxyFunction = exports.initUtsProxyClass = void 0; -var composition_api_1 = require("@vue/composition-api"); -var app = require("./app"); -var mp = require("./mp"); -var uts_1 = require("./uts"); -Object.defineProperty(exports, "initUtsProxyClass", { enumerable: true, get: function () { return uts_1.initUtsProxyClass; } }); -Object.defineProperty(exports, "initUtsProxyFunction", { enumerable: true, get: function () { return uts_1.initUtsProxyFunction; } }); -Object.defineProperty(exports, "initUtsIndexClassName", { enumerable: true, get: function () { return uts_1.initUtsIndexClassName; } }); -Object.defineProperty(exports, "initUtsClassName", { enumerable: true, get: function () { return uts_1.initUtsClassName; } }); -Object.defineProperty(exports, "initUtsPackageName", { enumerable: true, get: function () { return uts_1.initUtsPackageName; } }); -var lifecycles = []; -var createLifeCycle = function (lifecycle) { - lifecycles.push(lifecycle); - var fn = (0, composition_api_1.createLifeCycle)(lifecycle); - return function (callback, target) { - return fn(callback, target); - }; -}; -if (typeof plus === 'object') { - app.init(); -} -else if (typeof window === 'object' && 'document' in window) { -} -else { - mp.init(lifecycles); -} -exports.onShow = createLifeCycle('onShow'); -exports.onHide = createLifeCycle('onHide'); -exports.onLaunch = createLifeCycle('onLaunch'); -exports.onError = createLifeCycle('onError'); -exports.onPageNotFound = createLifeCycle('onPageNotFound'); -exports.onUnhandledRejection = createLifeCycle('onUnhandledRejection'); -exports.onThemeChange = createLifeCycle('onThemeChange'); -exports.onUniNViewMessage = createLifeCycle('onUniNViewMessage'); -exports.onInit = createLifeCycle('onInit'); -exports.onLoad = createLifeCycle('onLoad'); -exports.onReady = createLifeCycle('onReady'); -exports.onUnload = createLifeCycle('onUnload'); -exports.onPullDownRefresh = createLifeCycle('onPullDownRefresh'); -exports.onReachBottom = createLifeCycle('onReachBottom'); -exports.onShareAppMessage = createLifeCycle('onShareAppMessage'); -exports.onShareTimeline = createLifeCycle('onShareTimeline'); -exports.onAddToFavorites = createLifeCycle('onAddToFavorites'); -exports.onPageScroll = createLifeCycle('onPageScroll'); -exports.onResize = createLifeCycle('onResize'); -exports.onTabItemTap = createLifeCycle('onTabItemTap'); -exports.onNavigationBarButtonTap = createLifeCycle('onNavigationBarButtonTap'); -exports.onBackPress = createLifeCycle('onBackPress'); -exports.onNavigationBarSearchInputChanged = createLifeCycle('onNavigationBarSearchInputChanged'); -exports.onNavigationBarSearchInputConfirmed = createLifeCycle('onNavigationBarSearchInputConfirmed'); -exports.onNavigationBarSearchInputClicked = createLifeCycle('onNavigationBarSearchInputClicked'); - -}, function(modId) {var map = {"./app":1758268322046,"./mp":1758268322047,"./uts":1758268322048}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322046, function(require, module, exports) { - -Object.defineProperty(exports, "__esModule", { value: true }); -exports.init = void 0; -var Vue = require("vue"); -function init() { - var vueConstructor = (Vue.default ? Vue.default : Vue); - var defaultMergeHook = vueConstructor.config.optionMergeStrategies.mounted; - var onReadyFn; - vueConstructor.config.optionMergeStrategies.mounted = function Le(parentVal, childVal) { - var res = defaultMergeHook.call(this, parentVal, childVal); - if (Array.isArray(res)) { - var index = void 0; - if (onReadyFn) { - index = res.indexOf(onReadyFn); - } - else { - index = res.findIndex(function (fn) { return fn.toString().includes('onReady'); }); - onReadyFn = res[index]; - } - if (index !== -1) { - res.splice(index, 1); - res.push(onReadyFn); - } - } - return res; - }; -} -exports.init = init; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322047, function(require, module, exports) { - -Object.defineProperty(exports, "__esModule", { value: true }); -exports.init = void 0; -var vue_1 = require("vue"); -function updateLifeCycle(lifecycles, setupLifecycles, fn) { - if (fn) { - if (fn.lifecycles) { - fn.lifecycles.forEach(function (item) { - if (!setupLifecycles.includes(item)) { - setupLifecycles.push(item); - } - }); - } - else { - var fnString_1 = fn.toString(); - lifecycles.forEach(function (item) { - if (!setupLifecycles.includes(item) && (new RegExp("\\b(".concat(item, ")\\b"))).test(fnString_1)) { - setupLifecycles.push(item); - } - }); - } - } -} -function init(lifecycles) { - var setup = vue_1.default.config.optionMergeStrategies.setup; - var extend = vue_1.default.extend; - vue_1.default.extend = function () { - var extendedVue = extend.apply(this, arguments); - var newOptions = extendedVue.options; - var setup = newOptions.setup; - if (setup && setup.lifecycles) { - setup.lifecycles.forEach(function (item) { - newOptions[item] = newOptions[item] || [function noop() { }]; - }); - } - return extendedVue; - }; - Object.defineProperty(vue_1.default.config.optionMergeStrategies, 'setup', { - set: function (fn) { - setup = fn; - }, - get: function () { - return function (to, from) { - if (typeof setup === 'function') { - var newSetup = setup.apply(this, arguments); - newSetup.lifecycles = newSetup.lifecycles || []; - updateLifeCycle(lifecycles, newSetup.lifecycles, from); - updateLifeCycle(lifecycles, newSetup.lifecycles, to); - return newSetup; - } - }; - } - }); -} -exports.init = init; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322048, function(require, module, exports) { - -exports.__esModule = true; -exports.initUtsClassName = exports.initUtsIndexClassName = exports.initUtsPackageName = exports.initUtsProxyClass = exports.initUtsProxyFunction = exports.normalizeArg = void 0; -var utils_1 = require("./utils"); -var callbackId = 1; -var proxy; -var callbacks = {}; -function normalizeArg(arg) { - if (typeof arg === 'function') { - // 查找该函数是否已缓存 - var oldId = Object.keys(callbacks).find(function (id) { return callbacks[id] === arg; }); - var id = oldId ? parseInt(oldId) : callbackId++; - callbacks[id] = arg; - return id; - } - else if ((0, utils_1.isPlainObject)(arg)) { - Object.keys(arg).forEach(function (name) { - ; - arg[name] = normalizeArg(arg[name]); - }); - } - return arg; -} -exports.normalizeArg = normalizeArg; -function initUtsInstanceMethod(async, opts, instanceId) { - return initProxyFunction(async, opts, instanceId); -} -function getProxy() { - if (!proxy) { - proxy = uni.requireNativePlugin('UTS-Proxy'); - } - return proxy; -} -function resolveSyncResult(res) { - if (res.errMsg) { - throw new Error(res.errMsg); - } - return res.params; -} -function invokePropGetter(args) { - if (args.errMsg) { - throw new Error(args.errMsg); - } - delete args.errMsg; - return resolveSyncResult(getProxy().invokeSync(args, function () { })); -} -function initProxyFunction(async, _a, instanceId) { - var pkg = _a.package, cls = _a["class"], propOrMethod = _a.name, method = _a.method, companion = _a.companion, methodParams = _a.params, errMsg = _a.errMsg; - var invokeCallback = function (_a) { - var id = _a.id, name = _a.name, params = _a.params, keepAlive = _a.keepAlive; - var callback = callbacks[id]; - if (callback) { - callback.apply(void 0, params); - if (!keepAlive) { - delete callbacks[id]; - } - } - else { - console.error("".concat(pkg).concat(cls, ".").concat(propOrMethod, " ").concat(name, " is not found")); - } - }; - var baseArgs = instanceId - ? { id: instanceId, name: propOrMethod, method: methodParams } - : { - package: pkg, - "class": cls, - name: method || propOrMethod, - companion: companion, - method: methodParams - }; - return function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - if (errMsg) { - throw new Error(errMsg); - } - var invokeArgs = (0, utils_1.extend)({}, baseArgs, { - params: args.map(function (arg) { return normalizeArg(arg); }) - }); - if (async) { - return new Promise(function (resolve, reject) { - getProxy().invokeAsync(invokeArgs, function (res) { - if (res.type !== 'return') { - invokeCallback(res); - } - else { - if (res.errMsg) { - reject(res.errMsg); - } - else { - resolve(res.params); - } - } - }); - }); - } - return resolveSyncResult(getProxy().invokeSync(invokeArgs, invokeCallback)); - }; -} -function initUtsStaticMethod(async, opts) { - if (opts.main && !opts.method) { - if (typeof plus !== 'undefined' && plus.os.name === 'iOS') { - opts.method = 's_' + opts.name; - } - } - return initProxyFunction(async, opts, 0); -} -exports.initUtsProxyFunction = initUtsStaticMethod; -function initUtsProxyClass(_a) { - var pkg = _a.package, cls = _a["class"], constructorParams = _a.constructor.params, methods = _a.methods, props = _a.props, staticProps = _a.staticProps, staticMethods = _a.staticMethods, errMsg = _a.errMsg; - var baseOptions = { - package: pkg, - "class": cls, - errMsg: errMsg - }; - var ProxyClass = /** @class */ (function () { - function UtsClass() { - var params = []; - for (var _i = 0; _i < arguments.length; _i++) { - params[_i] = arguments[_i]; - } - if (errMsg) { - throw new Error(errMsg); - } - var target = {}; - // 初始化实例 ID - var instanceId = initProxyFunction(false, (0, utils_1.extend)({ name: 'constructor', params: constructorParams }, baseOptions), 0).apply(null, params); - if (!instanceId) { - throw new Error("new ".concat(cls, " is failed")); - } - return new Proxy(this, { - get: function (_, name) { - if (!target[name]) { - //实例方法 - if ((0, utils_1.hasOwn)(methods, name)) { - var _a = methods[name], async = _a.async, params_1 = _a.params; - target[name] = initUtsInstanceMethod(!!async, (0, utils_1.extend)({ - name: name, - params: params_1 - }, baseOptions), instanceId); - } - else if (props.includes(name)) { - // 实例属性 - return invokePropGetter({ - id: instanceId, - name: name, - errMsg: errMsg - }); - } - } - return target[name]; - } - }); - } - return UtsClass; - }()); - var staticMethodCache = {}; - return new Proxy(ProxyClass, { - get: function (target, name, receiver) { - if ((0, utils_1.hasOwn)(staticMethods, name)) { - if (!staticMethodCache[name]) { - var _a = staticMethods[name], async = _a.async, params = _a.params; - // 静态方法 - staticMethodCache[name] = initUtsStaticMethod(!!async, (0, utils_1.extend)({ name: name, companion: true, params: params }, baseOptions)); - } - return staticMethodCache[name]; - } - if (staticProps.includes(name)) { - // 静态属性 - return invokePropGetter((0, utils_1.extend)({ name: name, companion: true }, baseOptions)); - } - return Reflect.get(target, name, receiver); - } - }); -} -exports.initUtsProxyClass = initUtsProxyClass; -function initUtsPackageName(name, is_uni_modules) { - if (typeof plus !== 'undefined' && plus.os.name === 'Android') { - return 'uts.sdk.' + (is_uni_modules ? 'modules.' : '') + name; - } - return ''; -} -exports.initUtsPackageName = initUtsPackageName; -function initUtsIndexClassName(moduleName, is_uni_modules) { - if (typeof plus === 'undefined') { - return ''; - } - return initUtsClassName(moduleName, plus.os.name === 'iOS' ? 'IndexSwift' : 'IndexKt', is_uni_modules); -} -exports.initUtsIndexClassName = initUtsIndexClassName; -function initUtsClassName(moduleName, className, is_uni_modules) { - if (typeof plus === 'undefined') { - return ''; - } - if (plus.os.name === 'Android') { - return className; - } - if (plus.os.name === 'iOS') { - return ('UTSSDK' + - (is_uni_modules ? 'Modules' : '') + - (0, utils_1.capitalize)(moduleName) + - (0, utils_1.capitalize)(className)); - } - return ''; -} -exports.initUtsClassName = initUtsClassName; - -}, function(modId) { var map = {"./utils":1758268322049}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322049, function(require, module, exports) { - -Object.defineProperty(exports, "__esModule", { value: true }); -exports.capitalize = exports.isPlainObject = exports.hasOwn = exports.extend = void 0; -exports.extend = Object.assign; -var hasOwnProperty = Object.prototype.hasOwnProperty; -var hasOwn = function (val, key) { return hasOwnProperty.call(val, key); }; -exports.hasOwn = hasOwn; -var objectToString = Object.prototype.toString; -var toTypeString = function (value) { - return objectToString.call(value); -}; -var isPlainObject = function (val) { - return toTypeString(val) === '[object Object]'; -}; -exports.isPlainObject = isPlainObject; -var cacheStringFunction = function (fn) { - var cache = Object.create(null); - return (function (str) { - var hit = cache[str]; - return hit || (cache[str] = fn(str)); - }); -}; -exports.capitalize = cacheStringFunction(function (str) { return str.charAt(0).toUpperCase() + str.slice(1); }); - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322045); -})() -//miniprogram-npm-outsideDeps=["@vue/composition-api","vue"] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/@dcloudio/uni-app/index.js.map b/government-mini-program/miniprogram_npm/@dcloudio/uni-app/index.js.map deleted file mode 100644 index b823438..0000000 --- a/government-mini-program/miniprogram_npm/@dcloudio/uni-app/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js","app.js","mp.js","uts.js","utils.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA,AENA;ADIA,ADGA,AENA;ADIA,ADGA,AENA;ADIA,ADGA,AENA,ACHA;AFOA,ADGA,AENA,ACHA;AFOA,ADGA,AENA,ACHA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AFOA,ADGA,AENA,AENA,ADGA;AHUA,AENA,AENA,ADGA;AHUA,AENA,AENA,ADGA;AHUA,AENA,AENA,ADGA;AHUA,AENA,AENA,ADGA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;AHUA,AENA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.onNavigationBarSearchInputClicked = exports.onNavigationBarSearchInputConfirmed = exports.onNavigationBarSearchInputChanged = exports.onBackPress = exports.onNavigationBarButtonTap = exports.onTabItemTap = exports.onResize = exports.onPageScroll = exports.onAddToFavorites = exports.onShareTimeline = exports.onShareAppMessage = exports.onReachBottom = exports.onPullDownRefresh = exports.onUnload = exports.onReady = exports.onLoad = exports.onInit = exports.onUniNViewMessage = exports.onThemeChange = exports.onUnhandledRejection = exports.onPageNotFound = exports.onError = exports.onLaunch = exports.onHide = exports.onShow = exports.initUtsPackageName = exports.initUtsClassName = exports.initUtsIndexClassName = exports.initUtsProxyFunction = exports.initUtsProxyClass = void 0;\nvar composition_api_1 = require(\"@vue/composition-api\");\nvar app = require(\"./app\");\nvar mp = require(\"./mp\");\nvar uts_1 = require(\"./uts\");\nObject.defineProperty(exports, \"initUtsProxyClass\", { enumerable: true, get: function () { return uts_1.initUtsProxyClass; } });\nObject.defineProperty(exports, \"initUtsProxyFunction\", { enumerable: true, get: function () { return uts_1.initUtsProxyFunction; } });\nObject.defineProperty(exports, \"initUtsIndexClassName\", { enumerable: true, get: function () { return uts_1.initUtsIndexClassName; } });\nObject.defineProperty(exports, \"initUtsClassName\", { enumerable: true, get: function () { return uts_1.initUtsClassName; } });\nObject.defineProperty(exports, \"initUtsPackageName\", { enumerable: true, get: function () { return uts_1.initUtsPackageName; } });\nvar lifecycles = [];\nvar createLifeCycle = function (lifecycle) {\n lifecycles.push(lifecycle);\n var fn = (0, composition_api_1.createLifeCycle)(lifecycle);\n return function (callback, target) {\n return fn(callback, target);\n };\n};\nif (typeof plus === 'object') {\n app.init();\n}\nelse if (typeof window === 'object' && 'document' in window) {\n}\nelse {\n mp.init(lifecycles);\n}\nexports.onShow = createLifeCycle('onShow');\nexports.onHide = createLifeCycle('onHide');\nexports.onLaunch = createLifeCycle('onLaunch');\nexports.onError = createLifeCycle('onError');\nexports.onPageNotFound = createLifeCycle('onPageNotFound');\nexports.onUnhandledRejection = createLifeCycle('onUnhandledRejection');\nexports.onThemeChange = createLifeCycle('onThemeChange');\nexports.onUniNViewMessage = createLifeCycle('onUniNViewMessage');\nexports.onInit = createLifeCycle('onInit');\nexports.onLoad = createLifeCycle('onLoad');\nexports.onReady = createLifeCycle('onReady');\nexports.onUnload = createLifeCycle('onUnload');\nexports.onPullDownRefresh = createLifeCycle('onPullDownRefresh');\nexports.onReachBottom = createLifeCycle('onReachBottom');\nexports.onShareAppMessage = createLifeCycle('onShareAppMessage');\nexports.onShareTimeline = createLifeCycle('onShareTimeline');\nexports.onAddToFavorites = createLifeCycle('onAddToFavorites');\nexports.onPageScroll = createLifeCycle('onPageScroll');\nexports.onResize = createLifeCycle('onResize');\nexports.onTabItemTap = createLifeCycle('onTabItemTap');\nexports.onNavigationBarButtonTap = createLifeCycle('onNavigationBarButtonTap');\nexports.onBackPress = createLifeCycle('onBackPress');\nexports.onNavigationBarSearchInputChanged = createLifeCycle('onNavigationBarSearchInputChanged');\nexports.onNavigationBarSearchInputConfirmed = createLifeCycle('onNavigationBarSearchInputConfirmed');\nexports.onNavigationBarSearchInputClicked = createLifeCycle('onNavigationBarSearchInputClicked');\n","\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.init = void 0;\nvar Vue = require(\"vue\");\nfunction init() {\n var vueConstructor = (Vue.default ? Vue.default : Vue);\n var defaultMergeHook = vueConstructor.config.optionMergeStrategies.mounted;\n var onReadyFn;\n vueConstructor.config.optionMergeStrategies.mounted = function Le(parentVal, childVal) {\n var res = defaultMergeHook.call(this, parentVal, childVal);\n if (Array.isArray(res)) {\n var index = void 0;\n if (onReadyFn) {\n index = res.indexOf(onReadyFn);\n }\n else {\n index = res.findIndex(function (fn) { return fn.toString().includes('onReady'); });\n onReadyFn = res[index];\n }\n if (index !== -1) {\n res.splice(index, 1);\n res.push(onReadyFn);\n }\n }\n return res;\n };\n}\nexports.init = init;\n","\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.init = void 0;\nvar vue_1 = require(\"vue\");\nfunction updateLifeCycle(lifecycles, setupLifecycles, fn) {\n if (fn) {\n if (fn.lifecycles) {\n fn.lifecycles.forEach(function (item) {\n if (!setupLifecycles.includes(item)) {\n setupLifecycles.push(item);\n }\n });\n }\n else {\n var fnString_1 = fn.toString();\n lifecycles.forEach(function (item) {\n if (!setupLifecycles.includes(item) && (new RegExp(\"\\\\b(\".concat(item, \")\\\\b\"))).test(fnString_1)) {\n setupLifecycles.push(item);\n }\n });\n }\n }\n}\nfunction init(lifecycles) {\n var setup = vue_1.default.config.optionMergeStrategies.setup;\n var extend = vue_1.default.extend;\n vue_1.default.extend = function () {\n var extendedVue = extend.apply(this, arguments);\n var newOptions = extendedVue.options;\n var setup = newOptions.setup;\n if (setup && setup.lifecycles) {\n setup.lifecycles.forEach(function (item) {\n newOptions[item] = newOptions[item] || [function noop() { }];\n });\n }\n return extendedVue;\n };\n Object.defineProperty(vue_1.default.config.optionMergeStrategies, 'setup', {\n set: function (fn) {\n setup = fn;\n },\n get: function () {\n return function (to, from) {\n if (typeof setup === 'function') {\n var newSetup = setup.apply(this, arguments);\n newSetup.lifecycles = newSetup.lifecycles || [];\n updateLifeCycle(lifecycles, newSetup.lifecycles, from);\n updateLifeCycle(lifecycles, newSetup.lifecycles, to);\n return newSetup;\n }\n };\n }\n });\n}\nexports.init = init;\n","\nexports.__esModule = true;\nexports.initUtsClassName = exports.initUtsIndexClassName = exports.initUtsPackageName = exports.initUtsProxyClass = exports.initUtsProxyFunction = exports.normalizeArg = void 0;\nvar utils_1 = require(\"./utils\");\nvar callbackId = 1;\nvar proxy;\nvar callbacks = {};\nfunction normalizeArg(arg) {\n if (typeof arg === 'function') {\n // 查找该函数是否已缓存\n var oldId = Object.keys(callbacks).find(function (id) { return callbacks[id] === arg; });\n var id = oldId ? parseInt(oldId) : callbackId++;\n callbacks[id] = arg;\n return id;\n }\n else if ((0, utils_1.isPlainObject)(arg)) {\n Object.keys(arg).forEach(function (name) {\n ;\n arg[name] = normalizeArg(arg[name]);\n });\n }\n return arg;\n}\nexports.normalizeArg = normalizeArg;\nfunction initUtsInstanceMethod(async, opts, instanceId) {\n return initProxyFunction(async, opts, instanceId);\n}\nfunction getProxy() {\n if (!proxy) {\n proxy = uni.requireNativePlugin('UTS-Proxy');\n }\n return proxy;\n}\nfunction resolveSyncResult(res) {\n if (res.errMsg) {\n throw new Error(res.errMsg);\n }\n return res.params;\n}\nfunction invokePropGetter(args) {\n if (args.errMsg) {\n throw new Error(args.errMsg);\n }\n delete args.errMsg;\n return resolveSyncResult(getProxy().invokeSync(args, function () { }));\n}\nfunction initProxyFunction(async, _a, instanceId) {\n var pkg = _a.package, cls = _a[\"class\"], propOrMethod = _a.name, method = _a.method, companion = _a.companion, methodParams = _a.params, errMsg = _a.errMsg;\n var invokeCallback = function (_a) {\n var id = _a.id, name = _a.name, params = _a.params, keepAlive = _a.keepAlive;\n var callback = callbacks[id];\n if (callback) {\n callback.apply(void 0, params);\n if (!keepAlive) {\n delete callbacks[id];\n }\n }\n else {\n console.error(\"\".concat(pkg).concat(cls, \".\").concat(propOrMethod, \" \").concat(name, \" is not found\"));\n }\n };\n var baseArgs = instanceId\n ? { id: instanceId, name: propOrMethod, method: methodParams }\n : {\n package: pkg,\n \"class\": cls,\n name: method || propOrMethod,\n companion: companion,\n method: methodParams\n };\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (errMsg) {\n throw new Error(errMsg);\n }\n var invokeArgs = (0, utils_1.extend)({}, baseArgs, {\n params: args.map(function (arg) { return normalizeArg(arg); })\n });\n if (async) {\n return new Promise(function (resolve, reject) {\n getProxy().invokeAsync(invokeArgs, function (res) {\n if (res.type !== 'return') {\n invokeCallback(res);\n }\n else {\n if (res.errMsg) {\n reject(res.errMsg);\n }\n else {\n resolve(res.params);\n }\n }\n });\n });\n }\n return resolveSyncResult(getProxy().invokeSync(invokeArgs, invokeCallback));\n };\n}\nfunction initUtsStaticMethod(async, opts) {\n if (opts.main && !opts.method) {\n if (typeof plus !== 'undefined' && plus.os.name === 'iOS') {\n opts.method = 's_' + opts.name;\n }\n }\n return initProxyFunction(async, opts, 0);\n}\nexports.initUtsProxyFunction = initUtsStaticMethod;\nfunction initUtsProxyClass(_a) {\n var pkg = _a.package, cls = _a[\"class\"], constructorParams = _a.constructor.params, methods = _a.methods, props = _a.props, staticProps = _a.staticProps, staticMethods = _a.staticMethods, errMsg = _a.errMsg;\n var baseOptions = {\n package: pkg,\n \"class\": cls,\n errMsg: errMsg\n };\n var ProxyClass = /** @class */ (function () {\n function UtsClass() {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n if (errMsg) {\n throw new Error(errMsg);\n }\n var target = {};\n // 初始化实例 ID\n var instanceId = initProxyFunction(false, (0, utils_1.extend)({ name: 'constructor', params: constructorParams }, baseOptions), 0).apply(null, params);\n if (!instanceId) {\n throw new Error(\"new \".concat(cls, \" is failed\"));\n }\n return new Proxy(this, {\n get: function (_, name) {\n if (!target[name]) {\n //实例方法\n if ((0, utils_1.hasOwn)(methods, name)) {\n var _a = methods[name], async = _a.async, params_1 = _a.params;\n target[name] = initUtsInstanceMethod(!!async, (0, utils_1.extend)({\n name: name,\n params: params_1\n }, baseOptions), instanceId);\n }\n else if (props.includes(name)) {\n // 实例属性\n return invokePropGetter({\n id: instanceId,\n name: name,\n errMsg: errMsg\n });\n }\n }\n return target[name];\n }\n });\n }\n return UtsClass;\n }());\n var staticMethodCache = {};\n return new Proxy(ProxyClass, {\n get: function (target, name, receiver) {\n if ((0, utils_1.hasOwn)(staticMethods, name)) {\n if (!staticMethodCache[name]) {\n var _a = staticMethods[name], async = _a.async, params = _a.params;\n // 静态方法\n staticMethodCache[name] = initUtsStaticMethod(!!async, (0, utils_1.extend)({ name: name, companion: true, params: params }, baseOptions));\n }\n return staticMethodCache[name];\n }\n if (staticProps.includes(name)) {\n // 静态属性\n return invokePropGetter((0, utils_1.extend)({ name: name, companion: true }, baseOptions));\n }\n return Reflect.get(target, name, receiver);\n }\n });\n}\nexports.initUtsProxyClass = initUtsProxyClass;\nfunction initUtsPackageName(name, is_uni_modules) {\n if (typeof plus !== 'undefined' && plus.os.name === 'Android') {\n return 'uts.sdk.' + (is_uni_modules ? 'modules.' : '') + name;\n }\n return '';\n}\nexports.initUtsPackageName = initUtsPackageName;\nfunction initUtsIndexClassName(moduleName, is_uni_modules) {\n if (typeof plus === 'undefined') {\n return '';\n }\n return initUtsClassName(moduleName, plus.os.name === 'iOS' ? 'IndexSwift' : 'IndexKt', is_uni_modules);\n}\nexports.initUtsIndexClassName = initUtsIndexClassName;\nfunction initUtsClassName(moduleName, className, is_uni_modules) {\n if (typeof plus === 'undefined') {\n return '';\n }\n if (plus.os.name === 'Android') {\n return className;\n }\n if (plus.os.name === 'iOS') {\n return ('UTSSDK' +\n (is_uni_modules ? 'Modules' : '') +\n (0, utils_1.capitalize)(moduleName) +\n (0, utils_1.capitalize)(className));\n }\n return '';\n}\nexports.initUtsClassName = initUtsClassName;\n","\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.capitalize = exports.isPlainObject = exports.hasOwn = exports.extend = void 0;\nexports.extend = Object.assign;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar hasOwn = function (val, key) { return hasOwnProperty.call(val, key); };\nexports.hasOwn = hasOwn;\nvar objectToString = Object.prototype.toString;\nvar toTypeString = function (value) {\n return objectToString.call(value);\n};\nvar isPlainObject = function (val) {\n return toTypeString(val) === '[object Object]';\n};\nexports.isPlainObject = isPlainObject;\nvar cacheStringFunction = function (fn) {\n var cache = Object.create(null);\n return (function (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nexports.capitalize = cacheStringFunction(function (str) { return str.charAt(0).toUpperCase() + str.slice(1); });\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/@vue/composition-api/index.js b/government-mini-program/miniprogram_npm/@vue/composition-api/index.js deleted file mode 100644 index 875deea..0000000 --- a/government-mini-program/miniprogram_npm/@vue/composition-api/index.js +++ /dev/null @@ -1,2321 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322050, function(require, module, exports) { - - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/vue-composition-api.common.prod.js') -} else { - module.exports = require('./dist/vue-composition-api.common.js') -} - -}, function(modId) {var map = {"./dist/vue-composition-api.common.prod.js":1758268322051,"./dist/vue-composition-api.common.js":1758268322052}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322051, function(require, module, exports) { -Object.defineProperty(exports,"__esModule",{value:!0});var t=function(n,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])},t(n,e)};var n,e=function(){return e=Object.assign||function(t){for(var n,e=1,r=arguments.length;e=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}function o(t,n){var e="function"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var r,o,i=e.call(t),u=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)u.push(r.value)}catch(t){o={error:t}}finally{try{r&&!r.done&&(e=i.return)&&e.call(i)}finally{if(o)throw o.error}}return u}function i(t,n,e){if(e||2===arguments.length)for(var r,o=0,i=n.length;o=0&&Math.floor(n)===n&&isFinite(t)&&n<=4294967295}function U(t){return null!==t&&"object"==typeof t}function A(t){return"[object Object]"===function(t){return Object.prototype.toString.call(t)}(t)}function B(t){return"function"==typeof t}function W(t,n){return n=n||x()}function T(t,n){void 0===n&&(n={});var e=t.config.silent;t.config.silent=!0;var r=new t(n);return t.config.silent=e,r}function V(t,n){return function(){for(var e=[],r=0;r1?e&&B(n)?n():n:void 0}},exports.isRaw=rt,exports.isReactive=ot,exports.isReadonly=function(t){return G.has(t)},exports.isRef=Z,exports.markRaw=function(t){if(!A(t)&&!R(t)||!Object.isExtensible(t))return t;var n=ct();return n.__v_skip=!0,k(t,"__ob__",n),q.set(t,!0),t},exports.nextTick=function(){for(var t,n=[],e=0;e= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); -} - -function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; -} - -function __spreadArray(to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -} - -/** - * Displays a warning message (using console.error) with a stack trace if the - * function is called inside of active component. - * - * @param message warning message to be displayed - */ -function warn$1(message) { - var _a; - warn(message, (_a = getCurrentInstance()) === null || _a === void 0 ? void 0 : _a.proxy); -} - -var activeEffectScope; -var effectScopeStack = []; -var EffectScopeImpl = /** @class */ (function () { - function EffectScopeImpl(vm) { - this.active = true; - this.effects = []; - this.cleanups = []; - this.vm = vm; - } - EffectScopeImpl.prototype.run = function (fn) { - if (this.active) { - try { - this.on(); - return fn(); - } - finally { - this.off(); - } - } - else { - warn$1("cannot run an inactive effect scope."); - } - return; - }; - EffectScopeImpl.prototype.on = function () { - if (this.active) { - effectScopeStack.push(this); - activeEffectScope = this; - } - }; - EffectScopeImpl.prototype.off = function () { - if (this.active) { - effectScopeStack.pop(); - activeEffectScope = effectScopeStack[effectScopeStack.length - 1]; - } - }; - EffectScopeImpl.prototype.stop = function () { - if (this.active) { - this.vm.$destroy(); - this.effects.forEach(function (e) { return e.stop(); }); - this.cleanups.forEach(function (cleanup) { return cleanup(); }); - this.active = false; - } - }; - return EffectScopeImpl; -}()); -var EffectScope = /** @class */ (function (_super) { - __extends(EffectScope, _super); - function EffectScope(detached) { - if (detached === void 0) { detached = false; } - var _this = this; - var vm = undefined; - withCurrentInstanceTrackingDisabled(function () { - vm = defineComponentInstance(getVueConstructor()); - }); - _this = _super.call(this, vm) || this; - if (!detached) { - recordEffectScope(_this); - } - return _this; - } - return EffectScope; -}(EffectScopeImpl)); -function recordEffectScope(effect, scope) { - var _a; - scope = scope || activeEffectScope; - if (scope && scope.active) { - scope.effects.push(effect); - return; - } - // destroy on parent component unmounted - var vm = (_a = getCurrentInstance()) === null || _a === void 0 ? void 0 : _a.proxy; - vm && vm.$on('hook:destroyed', function () { return effect.stop(); }); -} -function effectScope(detached) { - return new EffectScope(detached); -} -function getCurrentScope() { - return activeEffectScope; -} -function onScopeDispose(fn) { - if (activeEffectScope) { - activeEffectScope.cleanups.push(fn); - } - else { - warn$1("onScopeDispose() is called when there is no active effect scope" + - " to be associated with."); - } -} -/** - * @internal - **/ -function getCurrentScopeVM() { - var _a, _b; - return ((_a = getCurrentScope()) === null || _a === void 0 ? void 0 : _a.vm) || ((_b = getCurrentInstance()) === null || _b === void 0 ? void 0 : _b.proxy); -} -/** - * @internal - **/ -function bindCurrentScopeToVM(vm) { - if (!vm.scope) { - var scope_1 = new EffectScopeImpl(vm.proxy); - vm.scope = scope_1; - vm.proxy.$on('hook:destroyed', function () { return scope_1.stop(); }); - } - return vm.scope; -} - -var vueDependency = undefined; -try { - var requiredVue = require('vue'); - if (requiredVue && isVue(requiredVue)) { - vueDependency = requiredVue; - } - else if (requiredVue && - 'default' in requiredVue && - isVue(requiredVue.default)) { - vueDependency = requiredVue.default; - } -} -catch (_a) { - // not available -} -var vueConstructor = null; -var currentInstance = null; -var currentInstanceTracking = true; -var PluginInstalledFlag = '__composition_api_installed__'; -function isVue(obj) { - return obj && isFunction(obj) && obj.name === 'Vue'; -} -function isVueRegistered(Vue) { - // resolve issue: https://github.com/vuejs/composition-api/issues/876#issue-1087619365 - return vueConstructor && hasOwn(Vue, PluginInstalledFlag); -} -function getVueConstructor() { - { - assert(vueConstructor, "must call Vue.use(VueCompositionAPI) before using any function."); - } - return vueConstructor; -} -// returns registered vue or `vue` dependency -function getRegisteredVueOrDefault() { - var constructor = vueConstructor || vueDependency; - { - assert(constructor, "No vue dependency found."); - } - return constructor; -} -function setVueConstructor(Vue) { - // @ts-ignore - if (vueConstructor && Vue.__proto__ !== vueConstructor.__proto__) { - warn('[vue-composition-api] another instance of Vue installed'); - } - vueConstructor = Vue; - Object.defineProperty(Vue, PluginInstalledFlag, { - configurable: true, - writable: true, - value: true, - }); -} -/** - * For `effectScope` to create instance without populate the current instance - * @internal - **/ -function withCurrentInstanceTrackingDisabled(fn) { - var prev = currentInstanceTracking; - currentInstanceTracking = false; - try { - fn(); - } - finally { - currentInstanceTracking = prev; - } -} -function setCurrentInstance(instance) { - if (!currentInstanceTracking) - return; - var prev = currentInstance; - prev === null || prev === void 0 ? void 0 : prev.scope.off(); - currentInstance = instance; - currentInstance === null || currentInstance === void 0 ? void 0 : currentInstance.scope.on(); -} -function getCurrentInstance() { - return currentInstance; -} -var instanceMapCache = new WeakMap(); -function toVue3ComponentInstance(vm) { - if (instanceMapCache.has(vm)) { - return instanceMapCache.get(vm); - } - var instance = { - proxy: vm, - update: vm.$forceUpdate, - type: vm.$options, - uid: vm._uid, - // $emit is defined on prototype and it expected to be bound - emit: vm.$emit.bind(vm), - parent: null, - root: null, // to be immediately set - }; - bindCurrentScopeToVM(instance); - // map vm.$props = - var instanceProps = [ - 'data', - 'props', - 'attrs', - 'refs', - 'vnode', - 'slots', - ]; - instanceProps.forEach(function (prop) { - proxy(instance, prop, { - get: function () { - return vm["$".concat(prop)]; - }, - }); - }); - proxy(instance, 'isMounted', { - get: function () { - // @ts-expect-error private api - return vm._isMounted; - }, - }); - proxy(instance, 'isUnmounted', { - get: function () { - // @ts-expect-error private api - return vm._isDestroyed; - }, - }); - proxy(instance, 'isDeactivated', { - get: function () { - // @ts-expect-error private api - return vm._inactive; - }, - }); - proxy(instance, 'emitted', { - get: function () { - // @ts-expect-error private api - return vm._events; - }, - }); - instanceMapCache.set(vm, instance); - if (vm.$parent) { - instance.parent = toVue3ComponentInstance(vm.$parent); - } - if (vm.$root) { - instance.root = toVue3ComponentInstance(vm.$root); - } - return instance; -} - -var toString = function (x) { return Object.prototype.toString.call(x); }; -function isNative(Ctor) { - return typeof Ctor === 'function' && /native code/.test(Ctor.toString()); -} -var hasSymbol = typeof Symbol !== 'undefined' && - isNative(Symbol) && - typeof Reflect !== 'undefined' && - isNative(Reflect.ownKeys); -var noopFn = function (_) { return _; }; -function proxy(target, key, _a) { - var get = _a.get, set = _a.set; - Object.defineProperty(target, key, { - enumerable: true, - configurable: true, - get: get || noopFn, - set: set || noopFn, - }); -} -function def(obj, key, val, enumerable) { - Object.defineProperty(obj, key, { - value: val, - enumerable: !!enumerable, - writable: true, - configurable: true, - }); -} -function hasOwn(obj, key) { - return Object.hasOwnProperty.call(obj, key); -} -function assert(condition, msg) { - if (!condition) { - throw new Error("[vue-composition-api] ".concat(msg)); - } -} -function isPrimitive(value) { - return (typeof value === 'string' || - typeof value === 'number' || - // $flow-disable-line - typeof value === 'symbol' || - typeof value === 'boolean'); -} -function isArray(x) { - return Array.isArray(x); -} -var objectToString = Object.prototype.toString; -var toTypeString = function (value) { - return objectToString.call(value); -}; -var isMap = function (val) { - return toTypeString(val) === '[object Map]'; -}; -var isSet = function (val) { - return toTypeString(val) === '[object Set]'; -}; -var MAX_VALID_ARRAY_LENGTH = 4294967295; // Math.pow(2, 32) - 1 -function isValidArrayIndex(val) { - var n = parseFloat(String(val)); - return (n >= 0 && - Math.floor(n) === n && - isFinite(val) && - n <= MAX_VALID_ARRAY_LENGTH); -} -function isObject(val) { - return val !== null && typeof val === 'object'; -} -function isPlainObject(x) { - return toString(x) === '[object Object]'; -} -function isFunction(x) { - return typeof x === 'function'; -} -function isUndef(v) { - return v === undefined || v === null; -} -function warn(msg, vm) { - var Vue = getRegisteredVueOrDefault(); - if (!Vue || !Vue.util) - console.warn("[vue-composition-api] ".concat(msg)); - else - Vue.util.warn(msg, vm); -} -function logError(err, vm, info) { - { - warn("Error in ".concat(info, ": \"").concat(err.toString(), "\""), vm); - } - if (typeof window !== 'undefined' && typeof console !== 'undefined') { - console.error(err); - } - else { - throw err; - } -} -/** - * Object.is polyfill - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - * */ -function isSame(value1, value2) { - if (value1 === value2) { - return value1 !== 0 || 1 / value1 === 1 / value2; - } - else { - return value1 !== value1 && value2 !== value2; - } -} - -function getCurrentInstanceForFn(hook, target) { - target = target || getCurrentInstance(); - if (!target) { - warn("".concat(hook, " is called when there is no active component instance to be ") + - "associated with. " + - "Lifecycle injection APIs can only be used during execution of setup()."); - } - return target; -} -function defineComponentInstance(Ctor, options) { - if (options === void 0) { options = {}; } - var silent = Ctor.config.silent; - Ctor.config.silent = true; - var vm = new Ctor(options); - Ctor.config.silent = silent; - return vm; -} -function isComponentInstance(obj) { - var Vue = getVueConstructor(); - return Vue && obj instanceof Vue; -} -function createSlotProxy(vm, slotName) { - return (function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - if (!vm.$scopedSlots[slotName]) { - return warn("slots.".concat(slotName, "() got called outside of the \"render()\" scope"), vm); - } - return vm.$scopedSlots[slotName].apply(vm, args); - }); -} -function resolveSlots(slots, normalSlots) { - var res; - if (!slots) { - res = {}; - } - else if (slots._normalized) { - // fast path 1: child component re-render only, parent did not change - return slots._normalized; - } - else { - res = {}; - for (var key in slots) { - if (slots[key] && key[0] !== '$') { - res[key] = true; - } - } - } - // expose normal slots on scopedSlots - for (var key in normalSlots) { - if (!(key in res)) { - res[key] = true; - } - } - return res; -} -var vueInternalClasses; -var getVueInternalClasses = function () { - if (!vueInternalClasses) { - var vm = defineComponentInstance(getVueConstructor(), { - computed: { - value: function () { - return 0; - }, - }, - }); - // to get Watcher class - var Watcher = vm._computedWatchers.value.constructor; - // to get Dep class - var Dep = vm._data.__ob__.dep.constructor; - vueInternalClasses = { - Watcher: Watcher, - Dep: Dep, - }; - vm.$destroy(); - } - return vueInternalClasses; -}; - -function createSymbol(name) { - return hasSymbol ? Symbol.for(name) : name; -} -var WatcherPreFlushQueueKey = createSymbol('composition-api.preFlushQueue'); -var WatcherPostFlushQueueKey = createSymbol('composition-api.postFlushQueue'); -// must be a string, symbol key is ignored in reactive -var RefKey = 'composition-api.refKey'; - -var accessModifiedSet = new WeakMap(); -var rawSet = new WeakMap(); -var readonlySet = new WeakMap(); - -/** - * Set a property on an object. Adds the new property, triggers change - * notification and intercept it's subsequent access if the property doesn't - * already exist. - */ -function set$1(target, key, val) { - var Vue = getVueConstructor(); - // @ts-expect-error https://github.com/vuejs/vue/pull/12132 - var _a = Vue.util, warn = _a.warn, defineReactive = _a.defineReactive; - if ((isUndef(target) || isPrimitive(target))) { - warn("Cannot set reactive property on undefined, null, or primitive value: ".concat(target)); - } - var ob = target.__ob__; - function ssrMockReactivity() { - // in SSR, there is no __ob__. Mock for reactivity check - if (ob && isObject(val) && !hasOwn(val, '__ob__')) { - mockReactivityDeep(val); - } - } - if (isArray(target)) { - if (isValidArrayIndex(key)) { - target.length = Math.max(target.length, key); - target.splice(key, 1, val); - ssrMockReactivity(); - return val; - } - else if (key === 'length' && val !== target.length) { - target.length = val; - ob === null || ob === void 0 ? void 0 : ob.dep.notify(); - return val; - } - } - if (key in target && !(key in Object.prototype)) { - target[key] = val; - ssrMockReactivity(); - return val; - } - if (target._isVue || (ob && ob.vmCount)) { - warn('Avoid adding reactive properties to a Vue instance or its root $data ' + - 'at runtime - declare it upfront in the data option.'); - return val; - } - if (!ob) { - target[key] = val; - return val; - } - defineReactive(ob.value, key, val); - // IMPORTANT: define access control before trigger watcher - defineAccessControl(target, key, val); - ssrMockReactivity(); - ob.dep.notify(); - return val; -} - -var _isForceTrigger = false; -function isForceTrigger() { - return _isForceTrigger; -} -function setForceTrigger(v) { - _isForceTrigger = v; -} - -var RefImpl = /** @class */ (function () { - function RefImpl(_a) { - var get = _a.get, set = _a.set; - proxy(this, 'value', { - get: get, - set: set, - }); - } - return RefImpl; -}()); -function createRef(options, isReadonly, isComputed) { - if (isReadonly === void 0) { isReadonly = false; } - if (isComputed === void 0) { isComputed = false; } - var r = new RefImpl(options); - // add effect to differentiate refs from computed - if (isComputed) - r.effect = true; - // seal the ref, this could prevent ref from being observed - // It's safe to seal the ref, since we really shouldn't extend it. - // related issues: #79 - var sealed = Object.seal(r); - if (isReadonly) - readonlySet.set(sealed, true); - return sealed; -} -function ref(raw) { - var _a; - if (isRef(raw)) { - return raw; - } - var value = reactive((_a = {}, _a[RefKey] = raw, _a)); - return createRef({ - get: function () { return value[RefKey]; }, - set: function (v) { return (value[RefKey] = v); }, - }); -} -function isRef(value) { - return value instanceof RefImpl; -} -function unref(ref) { - return isRef(ref) ? ref.value : ref; -} -function toRefs(obj) { - if (!isReactive(obj)) { - warn("toRefs() expects a reactive object but received a plain one."); - } - if (!isPlainObject(obj)) - return obj; - var ret = {}; - for (var key in obj) { - ret[key] = toRef(obj, key); - } - return ret; -} -function customRef(factory) { - var version = ref(0); - return createRef(factory(function () { return void version.value; }, function () { - ++version.value; - })); -} -function toRef(object, key) { - if (!(key in object)) - set$1(object, key, undefined); - var v = object[key]; - if (isRef(v)) - return v; - return createRef({ - get: function () { return object[key]; }, - set: function (v) { return (object[key] = v); }, - }); -} -function shallowRef(raw) { - var _a; - if (isRef(raw)) { - return raw; - } - var value = shallowReactive((_a = {}, _a[RefKey] = raw, _a)); - return createRef({ - get: function () { return value[RefKey]; }, - set: function (v) { return (value[RefKey] = v); }, - }); -} -function triggerRef(value) { - if (!isRef(value)) - return; - setForceTrigger(true); - value.value = value.value; - setForceTrigger(false); -} -function proxyRefs(objectWithRefs) { - var _a, e_1, _b; - if (isReactive(objectWithRefs)) { - return objectWithRefs; - } - var value = reactive((_a = {}, _a[RefKey] = objectWithRefs, _a)); - def(value, RefKey, value[RefKey], false); - var _loop_1 = function (key) { - proxy(value, key, { - get: function () { - if (isRef(value[RefKey][key])) { - return value[RefKey][key].value; - } - return value[RefKey][key]; - }, - set: function (v) { - if (isRef(value[RefKey][key])) { - return (value[RefKey][key].value = unref(v)); - } - value[RefKey][key] = unref(v); - }, - }); - }; - try { - for (var _c = __values(Object.keys(objectWithRefs)), _d = _c.next(); !_d.done; _d = _c.next()) { - var key = _d.value; - _loop_1(key); - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (_d && !_d.done && (_b = _c.return)) _b.call(_c); - } - finally { if (e_1) throw e_1.error; } - } - return value; -} - -var SKIPFLAG = '__v_skip'; -function isRaw(obj) { - var _a; - return Boolean(obj && - hasOwn(obj, '__ob__') && - typeof obj.__ob__ === 'object' && - ((_a = obj.__ob__) === null || _a === void 0 ? void 0 : _a[SKIPFLAG])); -} -function isReactive(obj) { - var _a; - return Boolean(obj && - hasOwn(obj, '__ob__') && - typeof obj.__ob__ === 'object' && - !((_a = obj.__ob__) === null || _a === void 0 ? void 0 : _a[SKIPFLAG])); -} -/** - * Proxing property access of target. - * We can do unwrapping and other things here. - */ -function setupAccessControl(target) { - if (!isPlainObject(target) || - isRaw(target) || - isArray(target) || - isRef(target) || - isComponentInstance(target) || - accessModifiedSet.has(target)) - return; - accessModifiedSet.set(target, true); - var keys = Object.keys(target); - for (var i = 0; i < keys.length; i++) { - defineAccessControl(target, keys[i]); - } -} -/** - * Auto unwrapping when access property - */ -function defineAccessControl(target, key, val) { - if (key === '__ob__') - return; - if (isRaw(target[key])) - return; - var getter; - var setter; - var property = Object.getOwnPropertyDescriptor(target, key); - if (property) { - if (property.configurable === false) { - return; - } - getter = property.get; - setter = property.set; - if ((!getter || setter) /* not only have getter */ && - arguments.length === 2) { - val = target[key]; - } - } - setupAccessControl(val); - proxy(target, key, { - get: function getterHandler() { - var value = getter ? getter.call(target) : val; - // if the key is equal to RefKey, skip the unwrap logic - if (key !== RefKey && isRef(value)) { - return value.value; - } - else { - return value; - } - }, - set: function setterHandler(newVal) { - if (getter && !setter) - return; - // If the key is equal to RefKey, skip the unwrap logic - // If and only if "value" is ref and "newVal" is not a ref, - // the assignment should be proxied to "value" ref. - if (key !== RefKey && isRef(val) && !isRef(newVal)) { - val.value = newVal; - } - else if (setter) { - setter.call(target, newVal); - val = newVal; - } - else { - val = newVal; - } - setupAccessControl(newVal); - }, - }); -} -function observe(obj) { - var Vue = getRegisteredVueOrDefault(); - var observed; - if (Vue.observable) { - observed = Vue.observable(obj); - } - else { - var vm = defineComponentInstance(Vue, { - data: { - $$state: obj, - }, - }); - observed = vm._data.$$state; - } - // in SSR, there is no __ob__. Mock for reactivity check - if (!hasOwn(observed, '__ob__')) { - mockReactivityDeep(observed); - } - return observed; -} -/** - * Mock __ob__ for object recursively - */ -function mockReactivityDeep(obj, seen) { - var e_1, _a; - if (seen === void 0) { seen = new Set(); } - if (seen.has(obj) || hasOwn(obj, '__ob__') || !Object.isExtensible(obj)) - return; - def(obj, '__ob__', mockObserver(obj)); - seen.add(obj); - try { - for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) { - var key = _c.value; - var value = obj[key]; - if (!(isPlainObject(value) || isArray(value)) || - isRaw(value) || - !Object.isExtensible(value)) { - continue; - } - mockReactivityDeep(value, seen); - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (_c && !_c.done && (_a = _b.return)) _a.call(_b); - } - finally { if (e_1) throw e_1.error; } - } -} -function mockObserver(value) { - if (value === void 0) { value = {}; } - return { - value: value, - dep: { - notify: noopFn, - depend: noopFn, - addSub: noopFn, - removeSub: noopFn, - }, - }; -} -function createObserver() { - return observe({}).__ob__; -} -function shallowReactive(obj) { - var e_2, _a; - if (!isObject(obj)) { - { - warn('"shallowReactive()" must be called on an object.'); - } - return obj; - } - if (!(isPlainObject(obj) || isArray(obj)) || - isRaw(obj) || - !Object.isExtensible(obj)) { - return obj; - } - var observed = observe(isArray(obj) ? [] : {}); - var ob = observed.__ob__; - var _loop_1 = function (key) { - var val = obj[key]; - var getter; - var setter; - var property = Object.getOwnPropertyDescriptor(obj, key); - if (property) { - if (property.configurable === false) { - return "continue"; - } - getter = property.get; - setter = property.set; - } - proxy(observed, key, { - get: function getterHandler() { - var _a; - (_a = ob.dep) === null || _a === void 0 ? void 0 : _a.depend(); - return val; - }, - set: function setterHandler(newVal) { - var _a; - if (getter && !setter) - return; - if (!isForceTrigger() && val === newVal) - return; - if (setter) { - setter.call(obj, newVal); - } - else { - val = newVal; - } - (_a = ob.dep) === null || _a === void 0 ? void 0 : _a.notify(); - }, - }); - }; - try { - for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) { - var key = _c.value; - _loop_1(key); - } - } - catch (e_2_1) { e_2 = { error: e_2_1 }; } - finally { - try { - if (_c && !_c.done && (_a = _b.return)) _a.call(_b); - } - finally { if (e_2) throw e_2.error; } - } - return observed; -} -/** - * Make obj reactivity - */ -function reactive(obj) { - if (!isObject(obj)) { - { - warn('"reactive()" must be called on an object.'); - } - return obj; - } - if (!(isPlainObject(obj) || isArray(obj)) || - isRaw(obj) || - !Object.isExtensible(obj)) { - return obj; - } - var observed = observe(obj); - setupAccessControl(observed); - return observed; -} -/** - * Make sure obj can't be a reactive - */ -function markRaw(obj) { - if (!(isPlainObject(obj) || isArray(obj)) || !Object.isExtensible(obj)) { - return obj; - } - // set the vue observable flag at obj - var ob = createObserver(); - ob[SKIPFLAG] = true; - def(obj, '__ob__', ob); - // mark as Raw - rawSet.set(obj, true); - return obj; -} -function toRaw(observed) { - var _a; - if (isRaw(observed) || !Object.isExtensible(observed)) { - return observed; - } - return ((_a = observed === null || observed === void 0 ? void 0 : observed.__ob__) === null || _a === void 0 ? void 0 : _a.value) || observed; -} - -function isReadonly(obj) { - return readonlySet.has(obj); -} -/** - * **In @vue/composition-api, `reactive` only provides type-level readonly check** - * - * Creates a readonly copy of the original object. Note the returned copy is not - * made reactive, but `readonly` can be called on an already reactive object. - */ -function readonly(target) { - if (!isObject(target)) { - warn("value cannot be made reactive: ".concat(String(target))); - } - else { - readonlySet.set(target, true); - } - return target; -} -function shallowReadonly(obj) { - var e_1, _a; - if (!isObject(obj)) { - { - warn("value cannot be made reactive: ".concat(String(obj))); - } - return obj; - } - if (!(isPlainObject(obj) || isArray(obj)) || - (!Object.isExtensible(obj) && !isRef(obj))) { - return obj; - } - var readonlyObj = isRef(obj) - ? new RefImpl({}) - : isReactive(obj) - ? observe({}) - : {}; - var source = reactive({}); - var ob = source.__ob__; - var _loop_1 = function (key) { - var val = obj[key]; - var getter; - var property = Object.getOwnPropertyDescriptor(obj, key); - if (property) { - if (property.configurable === false && !isRef(obj)) { - return "continue"; - } - getter = property.get; - } - proxy(readonlyObj, key, { - get: function getterHandler() { - var value = getter ? getter.call(obj) : val; - ob.dep.depend(); - return value; - }, - set: function (v) { - { - warn("Set operation on key \"".concat(key, "\" failed: target is readonly.")); - } - }, - }); - }; - try { - for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) { - var key = _c.value; - _loop_1(key); - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (_c && !_c.done && (_a = _b.return)) _a.call(_b); - } - finally { if (e_1) throw e_1.error; } - } - readonlySet.set(readonlyObj, true); - return readonlyObj; -} - -/** - * Delete a property and trigger change if necessary. - */ -function del(target, key) { - var Vue = getVueConstructor(); - var warn = Vue.util.warn; - if ((isUndef(target) || isPrimitive(target))) { - warn("Cannot delete reactive property on undefined, null, or primitive value: ".concat(target)); - } - if (isArray(target) && isValidArrayIndex(key)) { - target.splice(key, 1); - return; - } - var ob = target.__ob__; - if (target._isVue || (ob && ob.vmCount)) { - warn('Avoid deleting properties on a Vue instance or its root $data ' + - '- just set it to null.'); - return; - } - if (!hasOwn(target, key)) { - return; - } - delete target[key]; - if (!ob) { - return; - } - ob.dep.notify(); -} - -var genName = function (name) { return "on".concat(name[0].toUpperCase() + name.slice(1)); }; -function createLifeCycle(lifeCyclehook) { - return function (callback, target) { - var instance = getCurrentInstanceForFn(genName(lifeCyclehook), target); - return (instance && - injectHookOption(getVueConstructor(), instance, lifeCyclehook, callback)); - }; -} -function injectHookOption(Vue, instance, hook, val) { - var options = instance.proxy.$options; - var mergeFn = Vue.config.optionMergeStrategies[hook]; - var wrappedHook = wrapHookCall(instance, val); - options[hook] = mergeFn(options[hook], wrappedHook); - return wrappedHook; -} -function wrapHookCall(instance, fn) { - return function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var prev = getCurrentInstance(); - setCurrentInstance(instance); - try { - return fn.apply(void 0, __spreadArray([], __read(args), false)); - } - finally { - setCurrentInstance(prev); - } - }; -} -var onBeforeMount = createLifeCycle('beforeMount'); -var onMounted = createLifeCycle('mounted'); -var onBeforeUpdate = createLifeCycle('beforeUpdate'); -var onUpdated = createLifeCycle('updated'); -var onBeforeUnmount = createLifeCycle('beforeDestroy'); -var onUnmounted = createLifeCycle('destroyed'); -var onErrorCaptured = createLifeCycle('errorCaptured'); -var onActivated = createLifeCycle('activated'); -var onDeactivated = createLifeCycle('deactivated'); -var onServerPrefetch = createLifeCycle('serverPrefetch'); - -var fallbackVM; -function flushPreQueue() { - flushQueue(this, WatcherPreFlushQueueKey); -} -function flushPostQueue() { - flushQueue(this, WatcherPostFlushQueueKey); -} -function hasWatchEnv(vm) { - return vm[WatcherPreFlushQueueKey] !== undefined; -} -function installWatchEnv(vm) { - vm[WatcherPreFlushQueueKey] = []; - vm[WatcherPostFlushQueueKey] = []; - vm.$on('hook:beforeUpdate', flushPreQueue); - vm.$on('hook:updated', flushPostQueue); -} -function getWatcherOption(options) { - return __assign({ - immediate: false, - deep: false, - flush: 'pre', - }, options); -} -function getWatchEffectOption(options) { - return __assign({ - flush: 'pre', - }, options); -} -function getWatcherVM() { - var vm = getCurrentScopeVM(); - if (!vm) { - if (!fallbackVM) { - fallbackVM = defineComponentInstance(getVueConstructor()); - } - vm = fallbackVM; - } - else if (!hasWatchEnv(vm)) { - installWatchEnv(vm); - } - return vm; -} -function flushQueue(vm, key) { - var queue = vm[key]; - for (var index = 0; index < queue.length; index++) { - queue[index](); - } - queue.length = 0; -} -function queueFlushJob(vm, fn, mode) { - // flush all when beforeUpdate and updated are not fired - var fallbackFlush = function () { - vm.$nextTick(function () { - if (vm[WatcherPreFlushQueueKey].length) { - flushQueue(vm, WatcherPreFlushQueueKey); - } - if (vm[WatcherPostFlushQueueKey].length) { - flushQueue(vm, WatcherPostFlushQueueKey); - } - }); - }; - switch (mode) { - case 'pre': - fallbackFlush(); - vm[WatcherPreFlushQueueKey].push(fn); - break; - case 'post': - fallbackFlush(); - vm[WatcherPostFlushQueueKey].push(fn); - break; - default: - assert(false, "flush must be one of [\"post\", \"pre\", \"sync\"], but got ".concat(mode)); - break; - } -} -function createVueWatcher(vm, getter, callback, options) { - var index = vm._watchers.length; - // @ts-ignore: use undocumented options - vm.$watch(getter, callback, { - immediate: options.immediateInvokeCallback, - deep: options.deep, - lazy: options.noRun, - sync: options.sync, - before: options.before, - }); - return vm._watchers[index]; -} -// We have to monkeypatch the teardown function so Vue will run -// runCleanup() when it tears down the watcher on unmounted. -function patchWatcherTeardown(watcher, runCleanup) { - var _teardown = watcher.teardown; - watcher.teardown = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - _teardown.apply(watcher, args); - runCleanup(); - }; -} -function createWatcher(vm, source, cb, options) { - var _a; - if (!cb) { - if (options.immediate !== undefined) { - warn("watch() \"immediate\" option is only respected when using the " + - "watch(source, callback, options?) signature."); - } - if (options.deep !== undefined) { - warn("watch() \"deep\" option is only respected when using the " + - "watch(source, callback, options?) signature."); - } - } - var flushMode = options.flush; - var isSync = flushMode === 'sync'; - var cleanup; - var registerCleanup = function (fn) { - cleanup = function () { - try { - fn(); - } - catch ( - // FIXME: remove any - error) { - logError(error, vm, 'onCleanup()'); - } - }; - }; - // cleanup before running getter again - var runCleanup = function () { - if (cleanup) { - cleanup(); - cleanup = null; - } - }; - var createScheduler = function (fn) { - if (isSync || - /* without a current active instance, ignore pre|post mode */ vm === - fallbackVM) { - return fn; - } - return (function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return queueFlushJob(vm, function () { - fn.apply(void 0, __spreadArray([], __read(args), false)); - }, flushMode); - }); - }; - // effect watch - if (cb === null) { - var running_1 = false; - var getter_1 = function () { - // preventing the watch callback being call in the same execution - if (running_1) { - return; - } - try { - running_1 = true; - source(registerCleanup); - } - finally { - running_1 = false; - } - }; - var watcher_1 = createVueWatcher(vm, getter_1, noopFn, { - deep: options.deep || false, - sync: isSync, - before: runCleanup, - }); - patchWatcherTeardown(watcher_1, runCleanup); - // enable the watcher update - watcher_1.lazy = false; - var originGet = watcher_1.get.bind(watcher_1); - // always run watchEffect - watcher_1.get = createScheduler(originGet); - return function () { - watcher_1.teardown(); - }; - } - var deep = options.deep; - var isMultiSource = false; - var getter; - if (isRef(source)) { - getter = function () { return source.value; }; - } - else if (isReactive(source)) { - getter = function () { return source; }; - deep = true; - } - else if (isArray(source)) { - isMultiSource = true; - getter = function () { - return source.map(function (s) { - if (isRef(s)) { - return s.value; - } - else if (isReactive(s)) { - return traverse(s); - } - else if (isFunction(s)) { - return s(); - } - else { - warn("Invalid watch source: ".concat(JSON.stringify(s), ".\n A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types."), vm); - return noopFn; - } - }); - }; - } - else if (isFunction(source)) { - getter = source; - } - else { - getter = noopFn; - warn("Invalid watch source: ".concat(JSON.stringify(source), ".\n A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types."), vm); - } - if (deep) { - var baseGetter_1 = getter; - getter = function () { return traverse(baseGetter_1()); }; - } - var applyCb = function (n, o) { - if (!deep && - isMultiSource && - n.every(function (v, i) { return isSame(v, o[i]); })) - return; - // cleanup before running cb again - runCleanup(); - return cb(n, o, registerCleanup); - }; - var callback = createScheduler(applyCb); - if (options.immediate) { - var originalCallback_1 = callback; - // `shiftCallback` is used to handle the first sync effect run. - // The subsequent callbacks will redirect to `callback`. - var shiftCallback_1 = function (n, o) { - shiftCallback_1 = originalCallback_1; - // o is undefined on the first call - return applyCb(n, isArray(n) ? [] : o); - }; - callback = function (n, o) { - return shiftCallback_1(n, o); - }; - } - // @ts-ignore: use undocumented option "sync" - var stop = vm.$watch(getter, callback, { - immediate: options.immediate, - deep: deep, - sync: isSync, - }); - // Once again, we have to hack the watcher for proper teardown - var watcher = vm._watchers[vm._watchers.length - 1]; - // if the return value is reactive and deep:true - // watch for changes, this might happen when new key is added - if (isReactive(watcher.value) && ((_a = watcher.value.__ob__) === null || _a === void 0 ? void 0 : _a.dep) && deep) { - watcher.value.__ob__.dep.addSub({ - update: function () { - // this will force the source to be reevaluated and the callback - // executed if needed - watcher.run(); - }, - }); - } - patchWatcherTeardown(watcher, runCleanup); - return function () { - stop(); - }; -} -function watchEffect(effect, options) { - var opts = getWatchEffectOption(options); - var vm = getWatcherVM(); - return createWatcher(vm, effect, null, opts); -} -function watchPostEffect(effect) { - return watchEffect(effect, { flush: 'post' }); -} -function watchSyncEffect(effect) { - return watchEffect(effect, { flush: 'sync' }); -} -// implementation -function watch(source, cb, options) { - var callback = null; - if (isFunction(cb)) { - // source watch - callback = cb; - } - else { - // effect watch - { - warn("`watch(fn, options?)` signature has been moved to a separate API. " + - "Use `watchEffect(fn, options?)` instead. `watch` now only " + - "supports `watch(source, cb, options?) signature."); - } - options = cb; - callback = null; - } - var opts = getWatcherOption(options); - var vm = getWatcherVM(); - return createWatcher(vm, source, callback, opts); -} -function traverse(value, seen) { - if (seen === void 0) { seen = new Set(); } - if (!isObject(value) || seen.has(value) || rawSet.has(value)) { - return value; - } - seen.add(value); - if (isRef(value)) { - traverse(value.value, seen); - } - else if (isArray(value)) { - for (var i = 0; i < value.length; i++) { - traverse(value[i], seen); - } - } - else if (isSet(value) || isMap(value)) { - value.forEach(function (v) { - traverse(v, seen); - }); - } - else if (isPlainObject(value)) { - for (var key in value) { - traverse(value[key], seen); - } - } - return value; -} - -// implement -function computed(getterOrOptions) { - var vm = getCurrentScopeVM(); - var getter; - var setter; - if (isFunction(getterOrOptions)) { - getter = getterOrOptions; - } - else { - getter = getterOrOptions.get; - setter = getterOrOptions.set; - } - var computedSetter; - var computedGetter; - if (vm && !vm.$isServer) { - var _a = getVueInternalClasses(), Watcher_1 = _a.Watcher, Dep_1 = _a.Dep; - var watcher_1; - computedGetter = function () { - if (!watcher_1) { - watcher_1 = new Watcher_1(vm, getter, noopFn, { lazy: true }); - } - if (watcher_1.dirty) { - watcher_1.evaluate(); - } - if (Dep_1.target) { - watcher_1.depend(); - } - return watcher_1.value; - }; - computedSetter = function (v) { - if (!setter) { - warn('Write operation failed: computed value is readonly.', vm); - return; - } - if (setter) { - setter(v); - } - }; - } - else { - // fallback - var computedHost_1 = defineComponentInstance(getVueConstructor(), { - computed: { - $$state: { - get: getter, - set: setter, - }, - }, - }); - vm && vm.$on('hook:destroyed', function () { return computedHost_1.$destroy(); }); - computedGetter = function () { return computedHost_1.$$state; }; - computedSetter = function (v) { - if (!setter) { - warn('Write operation failed: computed value is readonly.', vm); - return; - } - computedHost_1.$$state = v; - }; - } - return createRef({ - get: computedGetter, - set: computedSetter, - }, !setter, true); -} - -var NOT_FOUND = {}; -function resolveInject(provideKey, vm) { - var source = vm; - while (source) { - if (source._provided && hasOwn(source._provided, provideKey)) { - return source._provided[provideKey]; - } - source = source.$parent; - } - return NOT_FOUND; -} -function provide(key, value) { - var _a; - var vm = (_a = getCurrentInstanceForFn('provide')) === null || _a === void 0 ? void 0 : _a.proxy; - if (!vm) - return; - if (!vm._provided) { - var provideCache_1 = {}; - proxy(vm, '_provided', { - get: function () { return provideCache_1; }, - set: function (v) { return Object.assign(provideCache_1, v); }, - }); - } - vm._provided[key] = value; -} -function inject(key, defaultValue, treatDefaultAsFactory) { - var _a; - if (treatDefaultAsFactory === void 0) { treatDefaultAsFactory = false; } - var vm = (_a = getCurrentInstance()) === null || _a === void 0 ? void 0 : _a.proxy; - if (!vm) { - warn("inject() can only be used inside setup() or functional components."); - return; - } - if (!key) { - warn("injection \"".concat(String(key), "\" not found."), vm); - return defaultValue; - } - var val = resolveInject(key, vm); - if (val !== NOT_FOUND) { - return val; - } - else if (arguments.length > 1) { - return treatDefaultAsFactory && isFunction(defaultValue) - ? defaultValue() - : defaultValue; - } - else { - warn("Injection \"".concat(String(key), "\" not found."), vm); - } -} - -var EMPTY_OBJ = Object.freeze({}) - ; -var useCssModule = function (name) { - var _a; - if (name === void 0) { name = '$style'; } - var instance = getCurrentInstance(); - if (!instance) { - warn("useCssModule must be called inside setup()"); - return EMPTY_OBJ; - } - var mod = (_a = instance.proxy) === null || _a === void 0 ? void 0 : _a[name]; - if (!mod) { - warn("Current instance does not have CSS module named \"".concat(name, "\".")); - return EMPTY_OBJ; - } - return mod; -}; -/** - * @deprecated use `useCssModule` instead. - */ -var useCSSModule = useCssModule; - -function createApp(rootComponent, rootProps) { - if (rootProps === void 0) { rootProps = undefined; } - var V = getVueConstructor(); - var mountedVM = undefined; - var provide = {}; - var app = { - config: V.config, - use: V.use.bind(V), - mixin: V.mixin.bind(V), - component: V.component.bind(V), - provide: function (key, value) { - provide[key] = value; - return this; - }, - directive: function (name, dir) { - if (dir) { - V.directive(name, dir); - return app; - } - else { - return V.directive(name); - } - }, - mount: function (el, hydrating) { - if (!mountedVM) { - mountedVM = new V(__assign(__assign({ propsData: rootProps }, rootComponent), { provide: __assign(__assign({}, provide), rootComponent.provide) })); - mountedVM.$mount(el, hydrating); - return mountedVM; - } - else { - { - warn("App has already been mounted.\n" + - "If you want to remount the same app, move your app creation logic " + - "into a factory function and create fresh app instances for each " + - "mount - e.g. `const createMyApp = () => createApp(App)`"); - } - return mountedVM; - } - }, - unmount: function () { - if (mountedVM) { - mountedVM.$destroy(); - mountedVM = undefined; - } - else { - warn("Cannot unmount an app that is not mounted."); - } - }, - }; - return app; -} - -var nextTick = function nextTick() { - var _a; - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return (_a = getVueConstructor()) === null || _a === void 0 ? void 0 : _a.nextTick.apply(this, args); -}; - -var fallbackCreateElement; -var createElement = function createElement() { - var _a; - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var instance = (this === null || this === void 0 ? void 0 : this.proxy) || ((_a = getCurrentInstance()) === null || _a === void 0 ? void 0 : _a.proxy); - if (!instance) { - warn('`createElement()` has been called outside of render function.'); - if (!fallbackCreateElement) { - fallbackCreateElement = defineComponentInstance(getVueConstructor()).$createElement; - } - return fallbackCreateElement.apply(fallbackCreateElement, args); - } - return instance.$createElement.apply(instance, args); -}; - -function useSlots() { - return getContext().slots; -} -function useAttrs() { - return getContext().attrs; -} -function getContext() { - var i = getCurrentInstance(); - if (!i) { - warn("useContext() called without active instance."); - } - return i.setupContext; -} - -function set(vm, key, value) { - var state = (vm.__composition_api_state__ = - vm.__composition_api_state__ || {}); - state[key] = value; -} -function get(vm, key) { - return (vm.__composition_api_state__ || {})[key]; -} -var vmStateManager = { - set: set, - get: get, -}; - -function asVmProperty(vm, propName, propValue) { - var props = vm.$options.props; - if (!(propName in vm) && !(props && hasOwn(props, propName))) { - if (isRef(propValue)) { - proxy(vm, propName, { - get: function () { return propValue.value; }, - set: function (val) { - propValue.value = val; - }, - }); - } - else { - proxy(vm, propName, { - get: function () { - if (isReactive(propValue)) { - propValue.__ob__.dep.depend(); - } - return propValue; - }, - set: function (val) { - propValue = val; - }, - }); - } - { - // expose binding to Vue Devtool as a data property - // delay this until state has been resolved to prevent repeated works - vm.$nextTick(function () { - if (Object.keys(vm._data).indexOf(propName) !== -1) { - return; - } - if (isRef(propValue)) { - proxy(vm._data, propName, { - get: function () { return propValue.value; }, - set: function (val) { - propValue.value = val; - }, - }); - } - else { - proxy(vm._data, propName, { - get: function () { return propValue; }, - set: function (val) { - propValue = val; - }, - }); - } - }); - } - } - else { - if (props && hasOwn(props, propName)) { - warn("The setup binding property \"".concat(propName, "\" is already declared as a prop."), vm); - } - else { - warn("The setup binding property \"".concat(propName, "\" is already declared."), vm); - } - } -} -function updateTemplateRef(vm) { - var rawBindings = vmStateManager.get(vm, 'rawBindings') || {}; - if (!rawBindings || !Object.keys(rawBindings).length) - return; - var refs = vm.$refs; - var oldRefKeys = vmStateManager.get(vm, 'refs') || []; - for (var index = 0; index < oldRefKeys.length; index++) { - var key = oldRefKeys[index]; - var setupValue = rawBindings[key]; - if (!refs[key] && setupValue && isRef(setupValue)) { - setupValue.value = null; - } - } - var newKeys = Object.keys(refs); - var validNewKeys = []; - for (var index = 0; index < newKeys.length; index++) { - var key = newKeys[index]; - var setupValue = rawBindings[key]; - if (refs[key] && setupValue && isRef(setupValue)) { - setupValue.value = refs[key]; - validNewKeys.push(key); - } - } - vmStateManager.set(vm, 'refs', validNewKeys); -} -function afterRender(vm) { - var stack = [vm._vnode]; - while (stack.length) { - var vnode = stack.pop(); - if (vnode) { - if (vnode.context) - updateTemplateRef(vnode.context); - if (vnode.children) { - for (var i = 0; i < vnode.children.length; ++i) { - stack.push(vnode.children[i]); - } - } - } - } -} -function updateVmAttrs(vm, ctx) { - var e_1, _a; - if (!vm) { - return; - } - var attrBindings = vmStateManager.get(vm, 'attrBindings'); - if (!attrBindings && !ctx) { - // fix 840 - return; - } - if (!attrBindings) { - var observedData = reactive({}); - attrBindings = { ctx: ctx, data: observedData }; - vmStateManager.set(vm, 'attrBindings', attrBindings); - proxy(ctx, 'attrs', { - get: function () { - return attrBindings === null || attrBindings === void 0 ? void 0 : attrBindings.data; - }, - set: function () { - warn("Cannot assign to '$attrs' because it is a read-only property", vm); - }, - }); - } - var source = vm.$attrs; - var _loop_1 = function (attr) { - if (!hasOwn(attrBindings.data, attr)) { - proxy(attrBindings.data, attr, { - get: function () { - // to ensure it always return the latest value - return vm.$attrs[attr]; - }, - }); - } - }; - try { - for (var _b = __values(Object.keys(source)), _c = _b.next(); !_c.done; _c = _b.next()) { - var attr = _c.value; - _loop_1(attr); - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (_c && !_c.done && (_a = _b.return)) _a.call(_b); - } - finally { if (e_1) throw e_1.error; } - } -} -function resolveScopedSlots(vm, slotsProxy) { - var parentVNode = vm.$options._parentVnode; - if (!parentVNode) - return; - var prevSlots = vmStateManager.get(vm, 'slots') || []; - var curSlots = resolveSlots(parentVNode.data.scopedSlots, vm.$slots); - // remove staled slots - for (var index = 0; index < prevSlots.length; index++) { - var key = prevSlots[index]; - if (!curSlots[key]) { - delete slotsProxy[key]; - } - } - // proxy fresh slots - var slotNames = Object.keys(curSlots); - for (var index = 0; index < slotNames.length; index++) { - var key = slotNames[index]; - if (!slotsProxy[key]) { - slotsProxy[key] = createSlotProxy(vm, key); - } - } - vmStateManager.set(vm, 'slots', slotNames); -} -function activateCurrentInstance(instance, fn, onError) { - var preVm = getCurrentInstance(); - setCurrentInstance(instance); - try { - return fn(instance); - } - catch ( - // FIXME: remove any - err) { - if (onError) { - onError(err); - } - else { - throw err; - } - } - finally { - setCurrentInstance(preVm); - } -} - -function mixin(Vue) { - Vue.mixin({ - beforeCreate: functionApiInit, - mounted: function () { - afterRender(this); - }, - beforeUpdate: function () { - updateVmAttrs(this); - }, - updated: function () { - afterRender(this); - }, - }); - /** - * Vuex init hook, injected into each instances init hooks list. - */ - function functionApiInit() { - var vm = this; - var $options = vm.$options; - var setup = $options.setup, render = $options.render; - if (render) { - // keep currentInstance accessible for createElement - $options.render = function () { - var _this = this; - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return activateCurrentInstance(toVue3ComponentInstance(vm), function () { - return render.apply(_this, args); - }); - }; - } - if (!setup) { - return; - } - if (!isFunction(setup)) { - { - warn('The "setup" option should be a function that returns a object in component definitions.', vm); - } - return; - } - var data = $options.data; - // wrapper the data option, so we can invoke setup before data get resolved - $options.data = function wrappedData() { - initSetup(vm, vm.$props); - return isFunction(data) - ? data.call(vm, vm) - : data || {}; - }; - } - function initSetup(vm, props) { - if (props === void 0) { props = {}; } - var setup = vm.$options.setup; - var ctx = createSetupContext(vm); - var instance = toVue3ComponentInstance(vm); - instance.setupContext = ctx; - // fake reactive for `toRefs(props)` - def(props, '__ob__', createObserver()); - // resolve scopedSlots and slots to functions - resolveScopedSlots(vm, ctx.slots); - var binding; - activateCurrentInstance(instance, function () { - // make props to be fake reactive, this is for `toRefs(props)` - binding = setup(props, ctx); - }); - if (!binding) - return; - if (isFunction(binding)) { - // keep typescript happy with the binding type. - var bindingFunc_1 = binding; - // keep currentInstance accessible for createElement - vm.$options.render = function () { - resolveScopedSlots(vm, ctx.slots); - return activateCurrentInstance(instance, function () { return bindingFunc_1(); }); - }; - return; - } - else if (isObject(binding)) { - if (isReactive(binding)) { - binding = toRefs(binding); - } - vmStateManager.set(vm, 'rawBindings', binding); - var bindingObj_1 = binding; - Object.keys(bindingObj_1).forEach(function (name) { - var bindingValue = bindingObj_1[name]; - if (!isRef(bindingValue)) { - if (!isReactive(bindingValue)) { - if (isFunction(bindingValue)) { - var copy_1 = bindingValue; - bindingValue = bindingValue.bind(vm); - Object.keys(copy_1).forEach(function (ele) { - bindingValue[ele] = copy_1[ele]; - }); - } - else if (!isObject(bindingValue)) { - bindingValue = ref(bindingValue); - } - else if (hasReactiveArrayChild(bindingValue)) { - // creates a custom reactive properties without make the object explicitly reactive - // NOTE we should try to avoid this, better implementation needed - customReactive(bindingValue); - } - } - else if (isArray(bindingValue)) { - bindingValue = ref(bindingValue); - } - } - asVmProperty(vm, name, bindingValue); - }); - return; - } - { - assert(false, "\"setup\" must return a \"Object\" or a \"Function\", got \"".concat(Object.prototype.toString - .call(binding) - .slice(8, -1), "\"")); - } - } - function customReactive(target, seen) { - if (seen === void 0) { seen = new Set(); } - if (seen.has(target)) - return; - if (!isPlainObject(target) || - isRef(target) || - isReactive(target) || - isRaw(target)) - return; - var Vue = getVueConstructor(); - // @ts-expect-error https://github.com/vuejs/vue/pull/12132 - var defineReactive = Vue.util.defineReactive; - Object.keys(target).forEach(function (k) { - var val = target[k]; - defineReactive(target, k, val); - if (val) { - seen.add(val); - customReactive(val, seen); - } - return; - }); - } - function hasReactiveArrayChild(target, visited) { - if (visited === void 0) { visited = new Map(); } - if (visited.has(target)) { - return visited.get(target); - } - visited.set(target, false); - if (isArray(target) && isReactive(target)) { - visited.set(target, true); - return true; - } - if (!isPlainObject(target) || isRaw(target) || isRef(target)) { - return false; - } - return Object.keys(target).some(function (x) { - return hasReactiveArrayChild(target[x], visited); - }); - } - function createSetupContext(vm) { - var ctx = { slots: {} }; - var propsPlain = [ - 'root', - 'parent', - 'refs', - 'listeners', - 'isServer', - 'ssrContext', - ]; - var methodReturnVoid = ['emit']; - propsPlain.forEach(function (key) { - var srcKey = "$".concat(key); - proxy(ctx, key, { - get: function () { return vm[srcKey]; }, - set: function () { - warn("Cannot assign to '".concat(key, "' because it is a read-only property"), vm); - }, - }); - }); - updateVmAttrs(vm, ctx); - methodReturnVoid.forEach(function (key) { - var srcKey = "$".concat(key); - proxy(ctx, key, { - get: function () { - return function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var fn = vm[srcKey]; - fn.apply(vm, args); - }; - }, - }); - }); - return ctx; - } -} - -/** - * Helper that recursively merges two data objects together. - */ -function mergeData(from, to) { - if (!from) - return to; - if (!to) - return from; - var key; - var toVal; - var fromVal; - var keys = hasSymbol ? Reflect.ownKeys(from) : Object.keys(from); - for (var i = 0; i < keys.length; i++) { - key = keys[i]; - // in case the object is already observed... - if (key === '__ob__') - continue; - toVal = to[key]; - fromVal = from[key]; - if (!hasOwn(to, key)) { - to[key] = fromVal; - } - else if (toVal !== fromVal && - isPlainObject(toVal) && - !isRef(toVal) && - isPlainObject(fromVal) && - !isRef(fromVal)) { - mergeData(fromVal, toVal); - } - } - return to; -} -function install(Vue) { - if (isVueRegistered(Vue)) { - { - warn('[vue-composition-api] already installed. Vue.use(VueCompositionAPI) should be called only once.'); - } - return; - } - { - if (Vue.version) { - if (Vue.version[0] !== '2' || Vue.version[1] !== '.') { - warn("[vue-composition-api] only works with Vue 2, v".concat(Vue.version, " found.")); - } - } - else { - warn('[vue-composition-api] no Vue version found'); - } - } - Vue.config.optionMergeStrategies.setup = function (parent, child) { - return function mergedSetupFn(props, context) { - return mergeData(isFunction(parent) ? parent(props, context) || {} : undefined, isFunction(child) ? child(props, context) || {} : undefined); - }; - }; - setVueConstructor(Vue); - mixin(Vue); -} -var Plugin = { - install: function (Vue) { return install(Vue); }, -}; - -// implementation, close to no-op -function defineComponent(options) { - return options; -} - -function defineAsyncComponent(source) { - if (isFunction(source)) { - source = { loader: source }; - } - var loader = source.loader, loadingComponent = source.loadingComponent, errorComponent = source.errorComponent, _a = source.delay, delay = _a === void 0 ? 200 : _a, timeout = source.timeout, // undefined = never times out - _b = source.suspensible, // undefined = never times out - suspensible = _b === void 0 ? false : _b, // in Vue 3 default is true - userOnError = source.onError; - if (suspensible) { - warn("The suspensiblbe option for async components is not supported in Vue2. It is ignored."); - } - var pendingRequest = null; - var retries = 0; - var retry = function () { - retries++; - pendingRequest = null; - return load(); - }; - var load = function () { - var thisRequest; - return (pendingRequest || - (thisRequest = pendingRequest = - loader() - .catch(function (err) { - err = err instanceof Error ? err : new Error(String(err)); - if (userOnError) { - return new Promise(function (resolve, reject) { - var userRetry = function () { return resolve(retry()); }; - var userFail = function () { return reject(err); }; - userOnError(err, userRetry, userFail, retries + 1); - }); - } - else { - throw err; - } - }) - .then(function (comp) { - if (thisRequest !== pendingRequest && pendingRequest) { - return pendingRequest; - } - if (!comp) { - warn("Async component loader resolved to undefined. " + - "If you are using retry(), make sure to return its return value."); - } - // interop module default - if (comp && - (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) { - comp = comp.default; - } - if (comp && !isObject(comp) && !isFunction(comp)) { - throw new Error("Invalid async component load result: ".concat(comp)); - } - return comp; - }))); - }; - return function () { - var component = load(); - return { - component: component, - delay: delay, - timeout: timeout, - error: errorComponent, - loading: loadingComponent, - }; - }; -} - -var version = "1.7.2"; -// auto install when using CDN -if (typeof window !== 'undefined' && window.Vue) { - window.Vue.use(Plugin); -} - -exports.EffectScope = EffectScope; -exports.computed = computed; -exports.createApp = createApp; -exports.createRef = createRef; -exports.customRef = customRef; -exports["default"] = Plugin; -exports.defineAsyncComponent = defineAsyncComponent; -exports.defineComponent = defineComponent; -exports.del = del; -exports.effectScope = effectScope; -exports.getCurrentInstance = getCurrentInstance; -exports.getCurrentScope = getCurrentScope; -exports.h = createElement; -exports.inject = inject; -exports.isRaw = isRaw; -exports.isReactive = isReactive; -exports.isReadonly = isReadonly; -exports.isRef = isRef; -exports.markRaw = markRaw; -exports.nextTick = nextTick; -exports.onActivated = onActivated; -exports.onBeforeMount = onBeforeMount; -exports.onBeforeUnmount = onBeforeUnmount; -exports.onBeforeUpdate = onBeforeUpdate; -exports.onDeactivated = onDeactivated; -exports.onErrorCaptured = onErrorCaptured; -exports.onMounted = onMounted; -exports.onScopeDispose = onScopeDispose; -exports.onServerPrefetch = onServerPrefetch; -exports.onUnmounted = onUnmounted; -exports.onUpdated = onUpdated; -exports.provide = provide; -exports.proxyRefs = proxyRefs; -exports.reactive = reactive; -exports.readonly = readonly; -exports.ref = ref; -exports.set = set$1; -exports.shallowReactive = shallowReactive; -exports.shallowReadonly = shallowReadonly; -exports.shallowRef = shallowRef; -exports.toRaw = toRaw; -exports.toRef = toRef; -exports.toRefs = toRefs; -exports.triggerRef = triggerRef; -exports.unref = unref; -exports.useAttrs = useAttrs; -exports.useCSSModule = useCSSModule; -exports.useCssModule = useCssModule; -exports.useSlots = useSlots; -exports.version = version; -exports.warn = warn$1; -exports.watch = watch; -exports.watchEffect = watchEffect; -exports.watchPostEffect = watchPostEffect; -exports.watchSyncEffect = watchSyncEffect; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322050); -})() -//miniprogram-npm-outsideDeps=["vue"] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/@vue/composition-api/index.js.map b/government-mini-program/miniprogram_npm/@vue/composition-api/index.js.map deleted file mode 100644 index 43cba03..0000000 --- a/government-mini-program/miniprogram_npm/@vue/composition-api/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js","dist/vue-composition-api.common.prod.js","dist/vue-composition-api.common.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;ACFA,ADGA;ACFA,ADGA;AACA;AELA,AFMA;AELA,AFMA;AELA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./dist/vue-composition-api.common.prod.js')\n} else {\n module.exports = require('./dist/vue-composition-api.common.js')\n}\n","Object.defineProperty(exports,\"__esModule\",{value:!0});var t=function(n,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])},t(n,e)};var n,e=function(){return e=Object.assign||function(t){for(var n,e=1,r=arguments.length;e=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(n?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function o(t,n){var e=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var r,o,i=e.call(t),u=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)u.push(r.value)}catch(t){o={error:t}}finally{try{r&&!r.done&&(e=i.return)&&e.call(i)}finally{if(o)throw o.error}}return u}function i(t,n,e){if(e||2===arguments.length)for(var r,o=0,i=n.length;o=0&&Math.floor(n)===n&&isFinite(t)&&n<=4294967295}function U(t){return null!==t&&\"object\"==typeof t}function A(t){return\"[object Object]\"===function(t){return Object.prototype.toString.call(t)}(t)}function B(t){return\"function\"==typeof t}function W(t,n){return n=n||x()}function T(t,n){void 0===n&&(n={});var e=t.config.silent;t.config.silent=!0;var r=new t(n);return t.config.silent=e,r}function V(t,n){return function(){for(var e=[],r=0;r1?e&&B(n)?n():n:void 0}},exports.isRaw=rt,exports.isReactive=ot,exports.isReadonly=function(t){return G.has(t)},exports.isRef=Z,exports.markRaw=function(t){if(!A(t)&&!R(t)||!Object.isExtensible(t))return t;var n=ct();return n.__v_skip=!0,k(t,\"__ob__\",n),q.set(t,!0),t},exports.nextTick=function(){for(var t,n=[],e=0;e= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\n\n/**\r\n * Displays a warning message (using console.error) with a stack trace if the\r\n * function is called inside of active component.\r\n *\r\n * @param message warning message to be displayed\r\n */\r\nfunction warn$1(message) {\r\n var _a;\r\n warn(message, (_a = getCurrentInstance()) === null || _a === void 0 ? void 0 : _a.proxy);\r\n}\n\nvar activeEffectScope;\r\nvar effectScopeStack = [];\r\nvar EffectScopeImpl = /** @class */ (function () {\r\n function EffectScopeImpl(vm) {\r\n this.active = true;\r\n this.effects = [];\r\n this.cleanups = [];\r\n this.vm = vm;\r\n }\r\n EffectScopeImpl.prototype.run = function (fn) {\r\n if (this.active) {\r\n try {\r\n this.on();\r\n return fn();\r\n }\r\n finally {\r\n this.off();\r\n }\r\n }\r\n else {\r\n warn$1(\"cannot run an inactive effect scope.\");\r\n }\r\n return;\r\n };\r\n EffectScopeImpl.prototype.on = function () {\r\n if (this.active) {\r\n effectScopeStack.push(this);\r\n activeEffectScope = this;\r\n }\r\n };\r\n EffectScopeImpl.prototype.off = function () {\r\n if (this.active) {\r\n effectScopeStack.pop();\r\n activeEffectScope = effectScopeStack[effectScopeStack.length - 1];\r\n }\r\n };\r\n EffectScopeImpl.prototype.stop = function () {\r\n if (this.active) {\r\n this.vm.$destroy();\r\n this.effects.forEach(function (e) { return e.stop(); });\r\n this.cleanups.forEach(function (cleanup) { return cleanup(); });\r\n this.active = false;\r\n }\r\n };\r\n return EffectScopeImpl;\r\n}());\r\nvar EffectScope = /** @class */ (function (_super) {\r\n __extends(EffectScope, _super);\r\n function EffectScope(detached) {\r\n if (detached === void 0) { detached = false; }\r\n var _this = this;\r\n var vm = undefined;\r\n withCurrentInstanceTrackingDisabled(function () {\r\n vm = defineComponentInstance(getVueConstructor());\r\n });\r\n _this = _super.call(this, vm) || this;\r\n if (!detached) {\r\n recordEffectScope(_this);\r\n }\r\n return _this;\r\n }\r\n return EffectScope;\r\n}(EffectScopeImpl));\r\nfunction recordEffectScope(effect, scope) {\r\n var _a;\r\n scope = scope || activeEffectScope;\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n return;\r\n }\r\n // destroy on parent component unmounted\r\n var vm = (_a = getCurrentInstance()) === null || _a === void 0 ? void 0 : _a.proxy;\r\n vm && vm.$on('hook:destroyed', function () { return effect.stop(); });\r\n}\r\nfunction effectScope(detached) {\r\n return new EffectScope(detached);\r\n}\r\nfunction getCurrentScope() {\r\n return activeEffectScope;\r\n}\r\nfunction onScopeDispose(fn) {\r\n if (activeEffectScope) {\r\n activeEffectScope.cleanups.push(fn);\r\n }\r\n else {\r\n warn$1(\"onScopeDispose() is called when there is no active effect scope\" +\r\n \" to be associated with.\");\r\n }\r\n}\r\n/**\r\n * @internal\r\n **/\r\nfunction getCurrentScopeVM() {\r\n var _a, _b;\r\n return ((_a = getCurrentScope()) === null || _a === void 0 ? void 0 : _a.vm) || ((_b = getCurrentInstance()) === null || _b === void 0 ? void 0 : _b.proxy);\r\n}\r\n/**\r\n * @internal\r\n **/\r\nfunction bindCurrentScopeToVM(vm) {\r\n if (!vm.scope) {\r\n var scope_1 = new EffectScopeImpl(vm.proxy);\r\n vm.scope = scope_1;\r\n vm.proxy.$on('hook:destroyed', function () { return scope_1.stop(); });\r\n }\r\n return vm.scope;\r\n}\n\nvar vueDependency = undefined;\r\ntry {\r\n var requiredVue = require('vue');\r\n if (requiredVue && isVue(requiredVue)) {\r\n vueDependency = requiredVue;\r\n }\r\n else if (requiredVue &&\r\n 'default' in requiredVue &&\r\n isVue(requiredVue.default)) {\r\n vueDependency = requiredVue.default;\r\n }\r\n}\r\ncatch (_a) {\r\n // not available\r\n}\r\nvar vueConstructor = null;\r\nvar currentInstance = null;\r\nvar currentInstanceTracking = true;\r\nvar PluginInstalledFlag = '__composition_api_installed__';\r\nfunction isVue(obj) {\r\n return obj && isFunction(obj) && obj.name === 'Vue';\r\n}\r\nfunction isVueRegistered(Vue) {\r\n // resolve issue: https://github.com/vuejs/composition-api/issues/876#issue-1087619365\r\n return vueConstructor && hasOwn(Vue, PluginInstalledFlag);\r\n}\r\nfunction getVueConstructor() {\r\n {\r\n assert(vueConstructor, \"must call Vue.use(VueCompositionAPI) before using any function.\");\r\n }\r\n return vueConstructor;\r\n}\r\n// returns registered vue or `vue` dependency\r\nfunction getRegisteredVueOrDefault() {\r\n var constructor = vueConstructor || vueDependency;\r\n {\r\n assert(constructor, \"No vue dependency found.\");\r\n }\r\n return constructor;\r\n}\r\nfunction setVueConstructor(Vue) {\r\n // @ts-ignore\r\n if (vueConstructor && Vue.__proto__ !== vueConstructor.__proto__) {\r\n warn('[vue-composition-api] another instance of Vue installed');\r\n }\r\n vueConstructor = Vue;\r\n Object.defineProperty(Vue, PluginInstalledFlag, {\r\n configurable: true,\r\n writable: true,\r\n value: true,\r\n });\r\n}\r\n/**\r\n * For `effectScope` to create instance without populate the current instance\r\n * @internal\r\n **/\r\nfunction withCurrentInstanceTrackingDisabled(fn) {\r\n var prev = currentInstanceTracking;\r\n currentInstanceTracking = false;\r\n try {\r\n fn();\r\n }\r\n finally {\r\n currentInstanceTracking = prev;\r\n }\r\n}\r\nfunction setCurrentInstance(instance) {\r\n if (!currentInstanceTracking)\r\n return;\r\n var prev = currentInstance;\r\n prev === null || prev === void 0 ? void 0 : prev.scope.off();\r\n currentInstance = instance;\r\n currentInstance === null || currentInstance === void 0 ? void 0 : currentInstance.scope.on();\r\n}\r\nfunction getCurrentInstance() {\r\n return currentInstance;\r\n}\r\nvar instanceMapCache = new WeakMap();\r\nfunction toVue3ComponentInstance(vm) {\r\n if (instanceMapCache.has(vm)) {\r\n return instanceMapCache.get(vm);\r\n }\r\n var instance = {\r\n proxy: vm,\r\n update: vm.$forceUpdate,\r\n type: vm.$options,\r\n uid: vm._uid,\r\n // $emit is defined on prototype and it expected to be bound\r\n emit: vm.$emit.bind(vm),\r\n parent: null,\r\n root: null, // to be immediately set\r\n };\r\n bindCurrentScopeToVM(instance);\r\n // map vm.$props =\r\n var instanceProps = [\r\n 'data',\r\n 'props',\r\n 'attrs',\r\n 'refs',\r\n 'vnode',\r\n 'slots',\r\n ];\r\n instanceProps.forEach(function (prop) {\r\n proxy(instance, prop, {\r\n get: function () {\r\n return vm[\"$\".concat(prop)];\r\n },\r\n });\r\n });\r\n proxy(instance, 'isMounted', {\r\n get: function () {\r\n // @ts-expect-error private api\r\n return vm._isMounted;\r\n },\r\n });\r\n proxy(instance, 'isUnmounted', {\r\n get: function () {\r\n // @ts-expect-error private api\r\n return vm._isDestroyed;\r\n },\r\n });\r\n proxy(instance, 'isDeactivated', {\r\n get: function () {\r\n // @ts-expect-error private api\r\n return vm._inactive;\r\n },\r\n });\r\n proxy(instance, 'emitted', {\r\n get: function () {\r\n // @ts-expect-error private api\r\n return vm._events;\r\n },\r\n });\r\n instanceMapCache.set(vm, instance);\r\n if (vm.$parent) {\r\n instance.parent = toVue3ComponentInstance(vm.$parent);\r\n }\r\n if (vm.$root) {\r\n instance.root = toVue3ComponentInstance(vm.$root);\r\n }\r\n return instance;\r\n}\n\nvar toString = function (x) { return Object.prototype.toString.call(x); };\r\nfunction isNative(Ctor) {\r\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\r\n}\r\nvar hasSymbol = typeof Symbol !== 'undefined' &&\r\n isNative(Symbol) &&\r\n typeof Reflect !== 'undefined' &&\r\n isNative(Reflect.ownKeys);\r\nvar noopFn = function (_) { return _; };\r\nfunction proxy(target, key, _a) {\r\n var get = _a.get, set = _a.set;\r\n Object.defineProperty(target, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: get || noopFn,\r\n set: set || noopFn,\r\n });\r\n}\r\nfunction def(obj, key, val, enumerable) {\r\n Object.defineProperty(obj, key, {\r\n value: val,\r\n enumerable: !!enumerable,\r\n writable: true,\r\n configurable: true,\r\n });\r\n}\r\nfunction hasOwn(obj, key) {\r\n return Object.hasOwnProperty.call(obj, key);\r\n}\r\nfunction assert(condition, msg) {\r\n if (!condition) {\r\n throw new Error(\"[vue-composition-api] \".concat(msg));\r\n }\r\n}\r\nfunction isPrimitive(value) {\r\n return (typeof value === 'string' ||\r\n typeof value === 'number' ||\r\n // $flow-disable-line\r\n typeof value === 'symbol' ||\r\n typeof value === 'boolean');\r\n}\r\nfunction isArray(x) {\r\n return Array.isArray(x);\r\n}\r\nvar objectToString = Object.prototype.toString;\r\nvar toTypeString = function (value) {\r\n return objectToString.call(value);\r\n};\r\nvar isMap = function (val) {\r\n return toTypeString(val) === '[object Map]';\r\n};\r\nvar isSet = function (val) {\r\n return toTypeString(val) === '[object Set]';\r\n};\r\nvar MAX_VALID_ARRAY_LENGTH = 4294967295; // Math.pow(2, 32) - 1\r\nfunction isValidArrayIndex(val) {\r\n var n = parseFloat(String(val));\r\n return (n >= 0 &&\r\n Math.floor(n) === n &&\r\n isFinite(val) &&\r\n n <= MAX_VALID_ARRAY_LENGTH);\r\n}\r\nfunction isObject(val) {\r\n return val !== null && typeof val === 'object';\r\n}\r\nfunction isPlainObject(x) {\r\n return toString(x) === '[object Object]';\r\n}\r\nfunction isFunction(x) {\r\n return typeof x === 'function';\r\n}\r\nfunction isUndef(v) {\r\n return v === undefined || v === null;\r\n}\r\nfunction warn(msg, vm) {\r\n var Vue = getRegisteredVueOrDefault();\r\n if (!Vue || !Vue.util)\r\n console.warn(\"[vue-composition-api] \".concat(msg));\r\n else\r\n Vue.util.warn(msg, vm);\r\n}\r\nfunction logError(err, vm, info) {\r\n {\r\n warn(\"Error in \".concat(info, \": \\\"\").concat(err.toString(), \"\\\"\"), vm);\r\n }\r\n if (typeof window !== 'undefined' && typeof console !== 'undefined') {\r\n console.error(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n}\r\n/**\r\n * Object.is polyfill\r\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\r\n * */\r\nfunction isSame(value1, value2) {\r\n if (value1 === value2) {\r\n return value1 !== 0 || 1 / value1 === 1 / value2;\r\n }\r\n else {\r\n return value1 !== value1 && value2 !== value2;\r\n }\r\n}\n\nfunction getCurrentInstanceForFn(hook, target) {\r\n target = target || getCurrentInstance();\r\n if (!target) {\r\n warn(\"\".concat(hook, \" is called when there is no active component instance to be \") +\r\n \"associated with. \" +\r\n \"Lifecycle injection APIs can only be used during execution of setup().\");\r\n }\r\n return target;\r\n}\r\nfunction defineComponentInstance(Ctor, options) {\r\n if (options === void 0) { options = {}; }\r\n var silent = Ctor.config.silent;\r\n Ctor.config.silent = true;\r\n var vm = new Ctor(options);\r\n Ctor.config.silent = silent;\r\n return vm;\r\n}\r\nfunction isComponentInstance(obj) {\r\n var Vue = getVueConstructor();\r\n return Vue && obj instanceof Vue;\r\n}\r\nfunction createSlotProxy(vm, slotName) {\r\n return (function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (!vm.$scopedSlots[slotName]) {\r\n return warn(\"slots.\".concat(slotName, \"() got called outside of the \\\"render()\\\" scope\"), vm);\r\n }\r\n return vm.$scopedSlots[slotName].apply(vm, args);\r\n });\r\n}\r\nfunction resolveSlots(slots, normalSlots) {\r\n var res;\r\n if (!slots) {\r\n res = {};\r\n }\r\n else if (slots._normalized) {\r\n // fast path 1: child component re-render only, parent did not change\r\n return slots._normalized;\r\n }\r\n else {\r\n res = {};\r\n for (var key in slots) {\r\n if (slots[key] && key[0] !== '$') {\r\n res[key] = true;\r\n }\r\n }\r\n }\r\n // expose normal slots on scopedSlots\r\n for (var key in normalSlots) {\r\n if (!(key in res)) {\r\n res[key] = true;\r\n }\r\n }\r\n return res;\r\n}\r\nvar vueInternalClasses;\r\nvar getVueInternalClasses = function () {\r\n if (!vueInternalClasses) {\r\n var vm = defineComponentInstance(getVueConstructor(), {\r\n computed: {\r\n value: function () {\r\n return 0;\r\n },\r\n },\r\n });\r\n // to get Watcher class\r\n var Watcher = vm._computedWatchers.value.constructor;\r\n // to get Dep class\r\n var Dep = vm._data.__ob__.dep.constructor;\r\n vueInternalClasses = {\r\n Watcher: Watcher,\r\n Dep: Dep,\r\n };\r\n vm.$destroy();\r\n }\r\n return vueInternalClasses;\r\n};\n\nfunction createSymbol(name) {\r\n return hasSymbol ? Symbol.for(name) : name;\r\n}\r\nvar WatcherPreFlushQueueKey = createSymbol('composition-api.preFlushQueue');\r\nvar WatcherPostFlushQueueKey = createSymbol('composition-api.postFlushQueue');\r\n// must be a string, symbol key is ignored in reactive\r\nvar RefKey = 'composition-api.refKey';\n\nvar accessModifiedSet = new WeakMap();\r\nvar rawSet = new WeakMap();\r\nvar readonlySet = new WeakMap();\n\n/**\r\n * Set a property on an object. Adds the new property, triggers change\r\n * notification and intercept it's subsequent access if the property doesn't\r\n * already exist.\r\n */\r\nfunction set$1(target, key, val) {\r\n var Vue = getVueConstructor();\r\n // @ts-expect-error https://github.com/vuejs/vue/pull/12132\r\n var _a = Vue.util, warn = _a.warn, defineReactive = _a.defineReactive;\r\n if ((isUndef(target) || isPrimitive(target))) {\r\n warn(\"Cannot set reactive property on undefined, null, or primitive value: \".concat(target));\r\n }\r\n var ob = target.__ob__;\r\n function ssrMockReactivity() {\r\n // in SSR, there is no __ob__. Mock for reactivity check\r\n if (ob && isObject(val) && !hasOwn(val, '__ob__')) {\r\n mockReactivityDeep(val);\r\n }\r\n }\r\n if (isArray(target)) {\r\n if (isValidArrayIndex(key)) {\r\n target.length = Math.max(target.length, key);\r\n target.splice(key, 1, val);\r\n ssrMockReactivity();\r\n return val;\r\n }\r\n else if (key === 'length' && val !== target.length) {\r\n target.length = val;\r\n ob === null || ob === void 0 ? void 0 : ob.dep.notify();\r\n return val;\r\n }\r\n }\r\n if (key in target && !(key in Object.prototype)) {\r\n target[key] = val;\r\n ssrMockReactivity();\r\n return val;\r\n }\r\n if (target._isVue || (ob && ob.vmCount)) {\r\n warn('Avoid adding reactive properties to a Vue instance or its root $data ' +\r\n 'at runtime - declare it upfront in the data option.');\r\n return val;\r\n }\r\n if (!ob) {\r\n target[key] = val;\r\n return val;\r\n }\r\n defineReactive(ob.value, key, val);\r\n // IMPORTANT: define access control before trigger watcher\r\n defineAccessControl(target, key, val);\r\n ssrMockReactivity();\r\n ob.dep.notify();\r\n return val;\r\n}\n\nvar _isForceTrigger = false;\r\nfunction isForceTrigger() {\r\n return _isForceTrigger;\r\n}\r\nfunction setForceTrigger(v) {\r\n _isForceTrigger = v;\r\n}\n\nvar RefImpl = /** @class */ (function () {\r\n function RefImpl(_a) {\r\n var get = _a.get, set = _a.set;\r\n proxy(this, 'value', {\r\n get: get,\r\n set: set,\r\n });\r\n }\r\n return RefImpl;\r\n}());\r\nfunction createRef(options, isReadonly, isComputed) {\r\n if (isReadonly === void 0) { isReadonly = false; }\r\n if (isComputed === void 0) { isComputed = false; }\r\n var r = new RefImpl(options);\r\n // add effect to differentiate refs from computed\r\n if (isComputed)\r\n r.effect = true;\r\n // seal the ref, this could prevent ref from being observed\r\n // It's safe to seal the ref, since we really shouldn't extend it.\r\n // related issues: #79\r\n var sealed = Object.seal(r);\r\n if (isReadonly)\r\n readonlySet.set(sealed, true);\r\n return sealed;\r\n}\r\nfunction ref(raw) {\r\n var _a;\r\n if (isRef(raw)) {\r\n return raw;\r\n }\r\n var value = reactive((_a = {}, _a[RefKey] = raw, _a));\r\n return createRef({\r\n get: function () { return value[RefKey]; },\r\n set: function (v) { return (value[RefKey] = v); },\r\n });\r\n}\r\nfunction isRef(value) {\r\n return value instanceof RefImpl;\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nfunction toRefs(obj) {\r\n if (!isReactive(obj)) {\r\n warn(\"toRefs() expects a reactive object but received a plain one.\");\r\n }\r\n if (!isPlainObject(obj))\r\n return obj;\r\n var ret = {};\r\n for (var key in obj) {\r\n ret[key] = toRef(obj, key);\r\n }\r\n return ret;\r\n}\r\nfunction customRef(factory) {\r\n var version = ref(0);\r\n return createRef(factory(function () { return void version.value; }, function () {\r\n ++version.value;\r\n }));\r\n}\r\nfunction toRef(object, key) {\r\n if (!(key in object))\r\n set$1(object, key, undefined);\r\n var v = object[key];\r\n if (isRef(v))\r\n return v;\r\n return createRef({\r\n get: function () { return object[key]; },\r\n set: function (v) { return (object[key] = v); },\r\n });\r\n}\r\nfunction shallowRef(raw) {\r\n var _a;\r\n if (isRef(raw)) {\r\n return raw;\r\n }\r\n var value = shallowReactive((_a = {}, _a[RefKey] = raw, _a));\r\n return createRef({\r\n get: function () { return value[RefKey]; },\r\n set: function (v) { return (value[RefKey] = v); },\r\n });\r\n}\r\nfunction triggerRef(value) {\r\n if (!isRef(value))\r\n return;\r\n setForceTrigger(true);\r\n value.value = value.value;\r\n setForceTrigger(false);\r\n}\r\nfunction proxyRefs(objectWithRefs) {\r\n var _a, e_1, _b;\r\n if (isReactive(objectWithRefs)) {\r\n return objectWithRefs;\r\n }\r\n var value = reactive((_a = {}, _a[RefKey] = objectWithRefs, _a));\r\n def(value, RefKey, value[RefKey], false);\r\n var _loop_1 = function (key) {\r\n proxy(value, key, {\r\n get: function () {\r\n if (isRef(value[RefKey][key])) {\r\n return value[RefKey][key].value;\r\n }\r\n return value[RefKey][key];\r\n },\r\n set: function (v) {\r\n if (isRef(value[RefKey][key])) {\r\n return (value[RefKey][key].value = unref(v));\r\n }\r\n value[RefKey][key] = unref(v);\r\n },\r\n });\r\n };\r\n try {\r\n for (var _c = __values(Object.keys(objectWithRefs)), _d = _c.next(); !_d.done; _d = _c.next()) {\r\n var key = _d.value;\r\n _loop_1(key);\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n return value;\r\n}\n\nvar SKIPFLAG = '__v_skip';\r\nfunction isRaw(obj) {\r\n var _a;\r\n return Boolean(obj &&\r\n hasOwn(obj, '__ob__') &&\r\n typeof obj.__ob__ === 'object' &&\r\n ((_a = obj.__ob__) === null || _a === void 0 ? void 0 : _a[SKIPFLAG]));\r\n}\r\nfunction isReactive(obj) {\r\n var _a;\r\n return Boolean(obj &&\r\n hasOwn(obj, '__ob__') &&\r\n typeof obj.__ob__ === 'object' &&\r\n !((_a = obj.__ob__) === null || _a === void 0 ? void 0 : _a[SKIPFLAG]));\r\n}\r\n/**\r\n * Proxing property access of target.\r\n * We can do unwrapping and other things here.\r\n */\r\nfunction setupAccessControl(target) {\r\n if (!isPlainObject(target) ||\r\n isRaw(target) ||\r\n isArray(target) ||\r\n isRef(target) ||\r\n isComponentInstance(target) ||\r\n accessModifiedSet.has(target))\r\n return;\r\n accessModifiedSet.set(target, true);\r\n var keys = Object.keys(target);\r\n for (var i = 0; i < keys.length; i++) {\r\n defineAccessControl(target, keys[i]);\r\n }\r\n}\r\n/**\r\n * Auto unwrapping when access property\r\n */\r\nfunction defineAccessControl(target, key, val) {\r\n if (key === '__ob__')\r\n return;\r\n if (isRaw(target[key]))\r\n return;\r\n var getter;\r\n var setter;\r\n var property = Object.getOwnPropertyDescriptor(target, key);\r\n if (property) {\r\n if (property.configurable === false) {\r\n return;\r\n }\r\n getter = property.get;\r\n setter = property.set;\r\n if ((!getter || setter) /* not only have getter */ &&\r\n arguments.length === 2) {\r\n val = target[key];\r\n }\r\n }\r\n setupAccessControl(val);\r\n proxy(target, key, {\r\n get: function getterHandler() {\r\n var value = getter ? getter.call(target) : val;\r\n // if the key is equal to RefKey, skip the unwrap logic\r\n if (key !== RefKey && isRef(value)) {\r\n return value.value;\r\n }\r\n else {\r\n return value;\r\n }\r\n },\r\n set: function setterHandler(newVal) {\r\n if (getter && !setter)\r\n return;\r\n // If the key is equal to RefKey, skip the unwrap logic\r\n // If and only if \"value\" is ref and \"newVal\" is not a ref,\r\n // the assignment should be proxied to \"value\" ref.\r\n if (key !== RefKey && isRef(val) && !isRef(newVal)) {\r\n val.value = newVal;\r\n }\r\n else if (setter) {\r\n setter.call(target, newVal);\r\n val = newVal;\r\n }\r\n else {\r\n val = newVal;\r\n }\r\n setupAccessControl(newVal);\r\n },\r\n });\r\n}\r\nfunction observe(obj) {\r\n var Vue = getRegisteredVueOrDefault();\r\n var observed;\r\n if (Vue.observable) {\r\n observed = Vue.observable(obj);\r\n }\r\n else {\r\n var vm = defineComponentInstance(Vue, {\r\n data: {\r\n $$state: obj,\r\n },\r\n });\r\n observed = vm._data.$$state;\r\n }\r\n // in SSR, there is no __ob__. Mock for reactivity check\r\n if (!hasOwn(observed, '__ob__')) {\r\n mockReactivityDeep(observed);\r\n }\r\n return observed;\r\n}\r\n/**\r\n * Mock __ob__ for object recursively\r\n */\r\nfunction mockReactivityDeep(obj, seen) {\r\n var e_1, _a;\r\n if (seen === void 0) { seen = new Set(); }\r\n if (seen.has(obj) || hasOwn(obj, '__ob__') || !Object.isExtensible(obj))\r\n return;\r\n def(obj, '__ob__', mockObserver(obj));\r\n seen.add(obj);\r\n try {\r\n for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var key = _c.value;\r\n var value = obj[key];\r\n if (!(isPlainObject(value) || isArray(value)) ||\r\n isRaw(value) ||\r\n !Object.isExtensible(value)) {\r\n continue;\r\n }\r\n mockReactivityDeep(value, seen);\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n}\r\nfunction mockObserver(value) {\r\n if (value === void 0) { value = {}; }\r\n return {\r\n value: value,\r\n dep: {\r\n notify: noopFn,\r\n depend: noopFn,\r\n addSub: noopFn,\r\n removeSub: noopFn,\r\n },\r\n };\r\n}\r\nfunction createObserver() {\r\n return observe({}).__ob__;\r\n}\r\nfunction shallowReactive(obj) {\r\n var e_2, _a;\r\n if (!isObject(obj)) {\r\n {\r\n warn('\"shallowReactive()\" must be called on an object.');\r\n }\r\n return obj;\r\n }\r\n if (!(isPlainObject(obj) || isArray(obj)) ||\r\n isRaw(obj) ||\r\n !Object.isExtensible(obj)) {\r\n return obj;\r\n }\r\n var observed = observe(isArray(obj) ? [] : {});\r\n var ob = observed.__ob__;\r\n var _loop_1 = function (key) {\r\n var val = obj[key];\r\n var getter;\r\n var setter;\r\n var property = Object.getOwnPropertyDescriptor(obj, key);\r\n if (property) {\r\n if (property.configurable === false) {\r\n return \"continue\";\r\n }\r\n getter = property.get;\r\n setter = property.set;\r\n }\r\n proxy(observed, key, {\r\n get: function getterHandler() {\r\n var _a;\r\n (_a = ob.dep) === null || _a === void 0 ? void 0 : _a.depend();\r\n return val;\r\n },\r\n set: function setterHandler(newVal) {\r\n var _a;\r\n if (getter && !setter)\r\n return;\r\n if (!isForceTrigger() && val === newVal)\r\n return;\r\n if (setter) {\r\n setter.call(obj, newVal);\r\n }\r\n else {\r\n val = newVal;\r\n }\r\n (_a = ob.dep) === null || _a === void 0 ? void 0 : _a.notify();\r\n },\r\n });\r\n };\r\n try {\r\n for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var key = _c.value;\r\n _loop_1(key);\r\n }\r\n }\r\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_2) throw e_2.error; }\r\n }\r\n return observed;\r\n}\r\n/**\r\n * Make obj reactivity\r\n */\r\nfunction reactive(obj) {\r\n if (!isObject(obj)) {\r\n {\r\n warn('\"reactive()\" must be called on an object.');\r\n }\r\n return obj;\r\n }\r\n if (!(isPlainObject(obj) || isArray(obj)) ||\r\n isRaw(obj) ||\r\n !Object.isExtensible(obj)) {\r\n return obj;\r\n }\r\n var observed = observe(obj);\r\n setupAccessControl(observed);\r\n return observed;\r\n}\r\n/**\r\n * Make sure obj can't be a reactive\r\n */\r\nfunction markRaw(obj) {\r\n if (!(isPlainObject(obj) || isArray(obj)) || !Object.isExtensible(obj)) {\r\n return obj;\r\n }\r\n // set the vue observable flag at obj\r\n var ob = createObserver();\r\n ob[SKIPFLAG] = true;\r\n def(obj, '__ob__', ob);\r\n // mark as Raw\r\n rawSet.set(obj, true);\r\n return obj;\r\n}\r\nfunction toRaw(observed) {\r\n var _a;\r\n if (isRaw(observed) || !Object.isExtensible(observed)) {\r\n return observed;\r\n }\r\n return ((_a = observed === null || observed === void 0 ? void 0 : observed.__ob__) === null || _a === void 0 ? void 0 : _a.value) || observed;\r\n}\n\nfunction isReadonly(obj) {\r\n return readonlySet.has(obj);\r\n}\r\n/**\r\n * **In @vue/composition-api, `reactive` only provides type-level readonly check**\r\n *\r\n * Creates a readonly copy of the original object. Note the returned copy is not\r\n * made reactive, but `readonly` can be called on an already reactive object.\r\n */\r\nfunction readonly(target) {\r\n if (!isObject(target)) {\r\n warn(\"value cannot be made reactive: \".concat(String(target)));\r\n }\r\n else {\r\n readonlySet.set(target, true);\r\n }\r\n return target;\r\n}\r\nfunction shallowReadonly(obj) {\r\n var e_1, _a;\r\n if (!isObject(obj)) {\r\n {\r\n warn(\"value cannot be made reactive: \".concat(String(obj)));\r\n }\r\n return obj;\r\n }\r\n if (!(isPlainObject(obj) || isArray(obj)) ||\r\n (!Object.isExtensible(obj) && !isRef(obj))) {\r\n return obj;\r\n }\r\n var readonlyObj = isRef(obj)\r\n ? new RefImpl({})\r\n : isReactive(obj)\r\n ? observe({})\r\n : {};\r\n var source = reactive({});\r\n var ob = source.__ob__;\r\n var _loop_1 = function (key) {\r\n var val = obj[key];\r\n var getter;\r\n var property = Object.getOwnPropertyDescriptor(obj, key);\r\n if (property) {\r\n if (property.configurable === false && !isRef(obj)) {\r\n return \"continue\";\r\n }\r\n getter = property.get;\r\n }\r\n proxy(readonlyObj, key, {\r\n get: function getterHandler() {\r\n var value = getter ? getter.call(obj) : val;\r\n ob.dep.depend();\r\n return value;\r\n },\r\n set: function (v) {\r\n {\r\n warn(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\r\n }\r\n },\r\n });\r\n };\r\n try {\r\n for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var key = _c.value;\r\n _loop_1(key);\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n readonlySet.set(readonlyObj, true);\r\n return readonlyObj;\r\n}\n\n/**\r\n * Delete a property and trigger change if necessary.\r\n */\r\nfunction del(target, key) {\r\n var Vue = getVueConstructor();\r\n var warn = Vue.util.warn;\r\n if ((isUndef(target) || isPrimitive(target))) {\r\n warn(\"Cannot delete reactive property on undefined, null, or primitive value: \".concat(target));\r\n }\r\n if (isArray(target) && isValidArrayIndex(key)) {\r\n target.splice(key, 1);\r\n return;\r\n }\r\n var ob = target.__ob__;\r\n if (target._isVue || (ob && ob.vmCount)) {\r\n warn('Avoid deleting properties on a Vue instance or its root $data ' +\r\n '- just set it to null.');\r\n return;\r\n }\r\n if (!hasOwn(target, key)) {\r\n return;\r\n }\r\n delete target[key];\r\n if (!ob) {\r\n return;\r\n }\r\n ob.dep.notify();\r\n}\n\nvar genName = function (name) { return \"on\".concat(name[0].toUpperCase() + name.slice(1)); };\r\nfunction createLifeCycle(lifeCyclehook) {\r\n return function (callback, target) {\r\n var instance = getCurrentInstanceForFn(genName(lifeCyclehook), target);\r\n return (instance &&\r\n injectHookOption(getVueConstructor(), instance, lifeCyclehook, callback));\r\n };\r\n}\r\nfunction injectHookOption(Vue, instance, hook, val) {\r\n var options = instance.proxy.$options;\r\n var mergeFn = Vue.config.optionMergeStrategies[hook];\r\n var wrappedHook = wrapHookCall(instance, val);\r\n options[hook] = mergeFn(options[hook], wrappedHook);\r\n return wrappedHook;\r\n}\r\nfunction wrapHookCall(instance, fn) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var prev = getCurrentInstance();\r\n setCurrentInstance(instance);\r\n try {\r\n return fn.apply(void 0, __spreadArray([], __read(args), false));\r\n }\r\n finally {\r\n setCurrentInstance(prev);\r\n }\r\n };\r\n}\r\nvar onBeforeMount = createLifeCycle('beforeMount');\r\nvar onMounted = createLifeCycle('mounted');\r\nvar onBeforeUpdate = createLifeCycle('beforeUpdate');\r\nvar onUpdated = createLifeCycle('updated');\r\nvar onBeforeUnmount = createLifeCycle('beforeDestroy');\r\nvar onUnmounted = createLifeCycle('destroyed');\r\nvar onErrorCaptured = createLifeCycle('errorCaptured');\r\nvar onActivated = createLifeCycle('activated');\r\nvar onDeactivated = createLifeCycle('deactivated');\r\nvar onServerPrefetch = createLifeCycle('serverPrefetch');\n\nvar fallbackVM;\r\nfunction flushPreQueue() {\r\n flushQueue(this, WatcherPreFlushQueueKey);\r\n}\r\nfunction flushPostQueue() {\r\n flushQueue(this, WatcherPostFlushQueueKey);\r\n}\r\nfunction hasWatchEnv(vm) {\r\n return vm[WatcherPreFlushQueueKey] !== undefined;\r\n}\r\nfunction installWatchEnv(vm) {\r\n vm[WatcherPreFlushQueueKey] = [];\r\n vm[WatcherPostFlushQueueKey] = [];\r\n vm.$on('hook:beforeUpdate', flushPreQueue);\r\n vm.$on('hook:updated', flushPostQueue);\r\n}\r\nfunction getWatcherOption(options) {\r\n return __assign({\r\n immediate: false,\r\n deep: false,\r\n flush: 'pre',\r\n }, options);\r\n}\r\nfunction getWatchEffectOption(options) {\r\n return __assign({\r\n flush: 'pre',\r\n }, options);\r\n}\r\nfunction getWatcherVM() {\r\n var vm = getCurrentScopeVM();\r\n if (!vm) {\r\n if (!fallbackVM) {\r\n fallbackVM = defineComponentInstance(getVueConstructor());\r\n }\r\n vm = fallbackVM;\r\n }\r\n else if (!hasWatchEnv(vm)) {\r\n installWatchEnv(vm);\r\n }\r\n return vm;\r\n}\r\nfunction flushQueue(vm, key) {\r\n var queue = vm[key];\r\n for (var index = 0; index < queue.length; index++) {\r\n queue[index]();\r\n }\r\n queue.length = 0;\r\n}\r\nfunction queueFlushJob(vm, fn, mode) {\r\n // flush all when beforeUpdate and updated are not fired\r\n var fallbackFlush = function () {\r\n vm.$nextTick(function () {\r\n if (vm[WatcherPreFlushQueueKey].length) {\r\n flushQueue(vm, WatcherPreFlushQueueKey);\r\n }\r\n if (vm[WatcherPostFlushQueueKey].length) {\r\n flushQueue(vm, WatcherPostFlushQueueKey);\r\n }\r\n });\r\n };\r\n switch (mode) {\r\n case 'pre':\r\n fallbackFlush();\r\n vm[WatcherPreFlushQueueKey].push(fn);\r\n break;\r\n case 'post':\r\n fallbackFlush();\r\n vm[WatcherPostFlushQueueKey].push(fn);\r\n break;\r\n default:\r\n assert(false, \"flush must be one of [\\\"post\\\", \\\"pre\\\", \\\"sync\\\"], but got \".concat(mode));\r\n break;\r\n }\r\n}\r\nfunction createVueWatcher(vm, getter, callback, options) {\r\n var index = vm._watchers.length;\r\n // @ts-ignore: use undocumented options\r\n vm.$watch(getter, callback, {\r\n immediate: options.immediateInvokeCallback,\r\n deep: options.deep,\r\n lazy: options.noRun,\r\n sync: options.sync,\r\n before: options.before,\r\n });\r\n return vm._watchers[index];\r\n}\r\n// We have to monkeypatch the teardown function so Vue will run\r\n// runCleanup() when it tears down the watcher on unmounted.\r\nfunction patchWatcherTeardown(watcher, runCleanup) {\r\n var _teardown = watcher.teardown;\r\n watcher.teardown = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n _teardown.apply(watcher, args);\r\n runCleanup();\r\n };\r\n}\r\nfunction createWatcher(vm, source, cb, options) {\r\n var _a;\r\n if (!cb) {\r\n if (options.immediate !== undefined) {\r\n warn(\"watch() \\\"immediate\\\" option is only respected when using the \" +\r\n \"watch(source, callback, options?) signature.\");\r\n }\r\n if (options.deep !== undefined) {\r\n warn(\"watch() \\\"deep\\\" option is only respected when using the \" +\r\n \"watch(source, callback, options?) signature.\");\r\n }\r\n }\r\n var flushMode = options.flush;\r\n var isSync = flushMode === 'sync';\r\n var cleanup;\r\n var registerCleanup = function (fn) {\r\n cleanup = function () {\r\n try {\r\n fn();\r\n }\r\n catch (\r\n // FIXME: remove any\r\n error) {\r\n logError(error, vm, 'onCleanup()');\r\n }\r\n };\r\n };\r\n // cleanup before running getter again\r\n var runCleanup = function () {\r\n if (cleanup) {\r\n cleanup();\r\n cleanup = null;\r\n }\r\n };\r\n var createScheduler = function (fn) {\r\n if (isSync ||\r\n /* without a current active instance, ignore pre|post mode */ vm ===\r\n fallbackVM) {\r\n return fn;\r\n }\r\n return (function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return queueFlushJob(vm, function () {\r\n fn.apply(void 0, __spreadArray([], __read(args), false));\r\n }, flushMode);\r\n });\r\n };\r\n // effect watch\r\n if (cb === null) {\r\n var running_1 = false;\r\n var getter_1 = function () {\r\n // preventing the watch callback being call in the same execution\r\n if (running_1) {\r\n return;\r\n }\r\n try {\r\n running_1 = true;\r\n source(registerCleanup);\r\n }\r\n finally {\r\n running_1 = false;\r\n }\r\n };\r\n var watcher_1 = createVueWatcher(vm, getter_1, noopFn, {\r\n deep: options.deep || false,\r\n sync: isSync,\r\n before: runCleanup,\r\n });\r\n patchWatcherTeardown(watcher_1, runCleanup);\r\n // enable the watcher update\r\n watcher_1.lazy = false;\r\n var originGet = watcher_1.get.bind(watcher_1);\r\n // always run watchEffect\r\n watcher_1.get = createScheduler(originGet);\r\n return function () {\r\n watcher_1.teardown();\r\n };\r\n }\r\n var deep = options.deep;\r\n var isMultiSource = false;\r\n var getter;\r\n if (isRef(source)) {\r\n getter = function () { return source.value; };\r\n }\r\n else if (isReactive(source)) {\r\n getter = function () { return source; };\r\n deep = true;\r\n }\r\n else if (isArray(source)) {\r\n isMultiSource = true;\r\n getter = function () {\r\n return source.map(function (s) {\r\n if (isRef(s)) {\r\n return s.value;\r\n }\r\n else if (isReactive(s)) {\r\n return traverse(s);\r\n }\r\n else if (isFunction(s)) {\r\n return s();\r\n }\r\n else {\r\n warn(\"Invalid watch source: \".concat(JSON.stringify(s), \".\\n A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.\"), vm);\r\n return noopFn;\r\n }\r\n });\r\n };\r\n }\r\n else if (isFunction(source)) {\r\n getter = source;\r\n }\r\n else {\r\n getter = noopFn;\r\n warn(\"Invalid watch source: \".concat(JSON.stringify(source), \".\\n A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.\"), vm);\r\n }\r\n if (deep) {\r\n var baseGetter_1 = getter;\r\n getter = function () { return traverse(baseGetter_1()); };\r\n }\r\n var applyCb = function (n, o) {\r\n if (!deep &&\r\n isMultiSource &&\r\n n.every(function (v, i) { return isSame(v, o[i]); }))\r\n return;\r\n // cleanup before running cb again\r\n runCleanup();\r\n return cb(n, o, registerCleanup);\r\n };\r\n var callback = createScheduler(applyCb);\r\n if (options.immediate) {\r\n var originalCallback_1 = callback;\r\n // `shiftCallback` is used to handle the first sync effect run.\r\n // The subsequent callbacks will redirect to `callback`.\r\n var shiftCallback_1 = function (n, o) {\r\n shiftCallback_1 = originalCallback_1;\r\n // o is undefined on the first call\r\n return applyCb(n, isArray(n) ? [] : o);\r\n };\r\n callback = function (n, o) {\r\n return shiftCallback_1(n, o);\r\n };\r\n }\r\n // @ts-ignore: use undocumented option \"sync\"\r\n var stop = vm.$watch(getter, callback, {\r\n immediate: options.immediate,\r\n deep: deep,\r\n sync: isSync,\r\n });\r\n // Once again, we have to hack the watcher for proper teardown\r\n var watcher = vm._watchers[vm._watchers.length - 1];\r\n // if the return value is reactive and deep:true\r\n // watch for changes, this might happen when new key is added\r\n if (isReactive(watcher.value) && ((_a = watcher.value.__ob__) === null || _a === void 0 ? void 0 : _a.dep) && deep) {\r\n watcher.value.__ob__.dep.addSub({\r\n update: function () {\r\n // this will force the source to be reevaluated and the callback\r\n // executed if needed\r\n watcher.run();\r\n },\r\n });\r\n }\r\n patchWatcherTeardown(watcher, runCleanup);\r\n return function () {\r\n stop();\r\n };\r\n}\r\nfunction watchEffect(effect, options) {\r\n var opts = getWatchEffectOption(options);\r\n var vm = getWatcherVM();\r\n return createWatcher(vm, effect, null, opts);\r\n}\r\nfunction watchPostEffect(effect) {\r\n return watchEffect(effect, { flush: 'post' });\r\n}\r\nfunction watchSyncEffect(effect) {\r\n return watchEffect(effect, { flush: 'sync' });\r\n}\r\n// implementation\r\nfunction watch(source, cb, options) {\r\n var callback = null;\r\n if (isFunction(cb)) {\r\n // source watch\r\n callback = cb;\r\n }\r\n else {\r\n // effect watch\r\n {\r\n warn(\"`watch(fn, options?)` signature has been moved to a separate API. \" +\r\n \"Use `watchEffect(fn, options?)` instead. `watch` now only \" +\r\n \"supports `watch(source, cb, options?) signature.\");\r\n }\r\n options = cb;\r\n callback = null;\r\n }\r\n var opts = getWatcherOption(options);\r\n var vm = getWatcherVM();\r\n return createWatcher(vm, source, callback, opts);\r\n}\r\nfunction traverse(value, seen) {\r\n if (seen === void 0) { seen = new Set(); }\r\n if (!isObject(value) || seen.has(value) || rawSet.has(value)) {\r\n return value;\r\n }\r\n seen.add(value);\r\n if (isRef(value)) {\r\n traverse(value.value, seen);\r\n }\r\n else if (isArray(value)) {\r\n for (var i = 0; i < value.length; i++) {\r\n traverse(value[i], seen);\r\n }\r\n }\r\n else if (isSet(value) || isMap(value)) {\r\n value.forEach(function (v) {\r\n traverse(v, seen);\r\n });\r\n }\r\n else if (isPlainObject(value)) {\r\n for (var key in value) {\r\n traverse(value[key], seen);\r\n }\r\n }\r\n return value;\r\n}\n\n// implement\r\nfunction computed(getterOrOptions) {\r\n var vm = getCurrentScopeVM();\r\n var getter;\r\n var setter;\r\n if (isFunction(getterOrOptions)) {\r\n getter = getterOrOptions;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n var computedSetter;\r\n var computedGetter;\r\n if (vm && !vm.$isServer) {\r\n var _a = getVueInternalClasses(), Watcher_1 = _a.Watcher, Dep_1 = _a.Dep;\r\n var watcher_1;\r\n computedGetter = function () {\r\n if (!watcher_1) {\r\n watcher_1 = new Watcher_1(vm, getter, noopFn, { lazy: true });\r\n }\r\n if (watcher_1.dirty) {\r\n watcher_1.evaluate();\r\n }\r\n if (Dep_1.target) {\r\n watcher_1.depend();\r\n }\r\n return watcher_1.value;\r\n };\r\n computedSetter = function (v) {\r\n if (!setter) {\r\n warn('Write operation failed: computed value is readonly.', vm);\r\n return;\r\n }\r\n if (setter) {\r\n setter(v);\r\n }\r\n };\r\n }\r\n else {\r\n // fallback\r\n var computedHost_1 = defineComponentInstance(getVueConstructor(), {\r\n computed: {\r\n $$state: {\r\n get: getter,\r\n set: setter,\r\n },\r\n },\r\n });\r\n vm && vm.$on('hook:destroyed', function () { return computedHost_1.$destroy(); });\r\n computedGetter = function () { return computedHost_1.$$state; };\r\n computedSetter = function (v) {\r\n if (!setter) {\r\n warn('Write operation failed: computed value is readonly.', vm);\r\n return;\r\n }\r\n computedHost_1.$$state = v;\r\n };\r\n }\r\n return createRef({\r\n get: computedGetter,\r\n set: computedSetter,\r\n }, !setter, true);\r\n}\n\nvar NOT_FOUND = {};\r\nfunction resolveInject(provideKey, vm) {\r\n var source = vm;\r\n while (source) {\r\n if (source._provided && hasOwn(source._provided, provideKey)) {\r\n return source._provided[provideKey];\r\n }\r\n source = source.$parent;\r\n }\r\n return NOT_FOUND;\r\n}\r\nfunction provide(key, value) {\r\n var _a;\r\n var vm = (_a = getCurrentInstanceForFn('provide')) === null || _a === void 0 ? void 0 : _a.proxy;\r\n if (!vm)\r\n return;\r\n if (!vm._provided) {\r\n var provideCache_1 = {};\r\n proxy(vm, '_provided', {\r\n get: function () { return provideCache_1; },\r\n set: function (v) { return Object.assign(provideCache_1, v); },\r\n });\r\n }\r\n vm._provided[key] = value;\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory) {\r\n var _a;\r\n if (treatDefaultAsFactory === void 0) { treatDefaultAsFactory = false; }\r\n var vm = (_a = getCurrentInstance()) === null || _a === void 0 ? void 0 : _a.proxy;\r\n if (!vm) {\r\n warn(\"inject() can only be used inside setup() or functional components.\");\r\n return;\r\n }\r\n if (!key) {\r\n warn(\"injection \\\"\".concat(String(key), \"\\\" not found.\"), vm);\r\n return defaultValue;\r\n }\r\n var val = resolveInject(key, vm);\r\n if (val !== NOT_FOUND) {\r\n return val;\r\n }\r\n else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction(defaultValue)\r\n ? defaultValue()\r\n : defaultValue;\r\n }\r\n else {\r\n warn(\"Injection \\\"\".concat(String(key), \"\\\" not found.\"), vm);\r\n }\r\n}\n\nvar EMPTY_OBJ = Object.freeze({})\r\n ;\r\nvar useCssModule = function (name) {\r\n var _a;\r\n if (name === void 0) { name = '$style'; }\r\n var instance = getCurrentInstance();\r\n if (!instance) {\r\n warn(\"useCssModule must be called inside setup()\");\r\n return EMPTY_OBJ;\r\n }\r\n var mod = (_a = instance.proxy) === null || _a === void 0 ? void 0 : _a[name];\r\n if (!mod) {\r\n warn(\"Current instance does not have CSS module named \\\"\".concat(name, \"\\\".\"));\r\n return EMPTY_OBJ;\r\n }\r\n return mod;\r\n};\r\n/**\r\n * @deprecated use `useCssModule` instead.\r\n */\r\nvar useCSSModule = useCssModule;\n\nfunction createApp(rootComponent, rootProps) {\r\n if (rootProps === void 0) { rootProps = undefined; }\r\n var V = getVueConstructor();\r\n var mountedVM = undefined;\r\n var provide = {};\r\n var app = {\r\n config: V.config,\r\n use: V.use.bind(V),\r\n mixin: V.mixin.bind(V),\r\n component: V.component.bind(V),\r\n provide: function (key, value) {\r\n provide[key] = value;\r\n return this;\r\n },\r\n directive: function (name, dir) {\r\n if (dir) {\r\n V.directive(name, dir);\r\n return app;\r\n }\r\n else {\r\n return V.directive(name);\r\n }\r\n },\r\n mount: function (el, hydrating) {\r\n if (!mountedVM) {\r\n mountedVM = new V(__assign(__assign({ propsData: rootProps }, rootComponent), { provide: __assign(__assign({}, provide), rootComponent.provide) }));\r\n mountedVM.$mount(el, hydrating);\r\n return mountedVM;\r\n }\r\n else {\r\n {\r\n warn(\"App has already been mounted.\\n\" +\r\n \"If you want to remount the same app, move your app creation logic \" +\r\n \"into a factory function and create fresh app instances for each \" +\r\n \"mount - e.g. `const createMyApp = () => createApp(App)`\");\r\n }\r\n return mountedVM;\r\n }\r\n },\r\n unmount: function () {\r\n if (mountedVM) {\r\n mountedVM.$destroy();\r\n mountedVM = undefined;\r\n }\r\n else {\r\n warn(\"Cannot unmount an app that is not mounted.\");\r\n }\r\n },\r\n };\r\n return app;\r\n}\n\nvar nextTick = function nextTick() {\r\n var _a;\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return (_a = getVueConstructor()) === null || _a === void 0 ? void 0 : _a.nextTick.apply(this, args);\r\n};\n\nvar fallbackCreateElement;\r\nvar createElement = function createElement() {\r\n var _a;\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var instance = (this === null || this === void 0 ? void 0 : this.proxy) || ((_a = getCurrentInstance()) === null || _a === void 0 ? void 0 : _a.proxy);\r\n if (!instance) {\r\n warn('`createElement()` has been called outside of render function.');\r\n if (!fallbackCreateElement) {\r\n fallbackCreateElement = defineComponentInstance(getVueConstructor()).$createElement;\r\n }\r\n return fallbackCreateElement.apply(fallbackCreateElement, args);\r\n }\r\n return instance.$createElement.apply(instance, args);\r\n};\n\nfunction useSlots() {\r\n return getContext().slots;\r\n}\r\nfunction useAttrs() {\r\n return getContext().attrs;\r\n}\r\nfunction getContext() {\r\n var i = getCurrentInstance();\r\n if (!i) {\r\n warn(\"useContext() called without active instance.\");\r\n }\r\n return i.setupContext;\r\n}\n\nfunction set(vm, key, value) {\r\n var state = (vm.__composition_api_state__ =\r\n vm.__composition_api_state__ || {});\r\n state[key] = value;\r\n}\r\nfunction get(vm, key) {\r\n return (vm.__composition_api_state__ || {})[key];\r\n}\r\nvar vmStateManager = {\r\n set: set,\r\n get: get,\r\n};\n\nfunction asVmProperty(vm, propName, propValue) {\r\n var props = vm.$options.props;\r\n if (!(propName in vm) && !(props && hasOwn(props, propName))) {\r\n if (isRef(propValue)) {\r\n proxy(vm, propName, {\r\n get: function () { return propValue.value; },\r\n set: function (val) {\r\n propValue.value = val;\r\n },\r\n });\r\n }\r\n else {\r\n proxy(vm, propName, {\r\n get: function () {\r\n if (isReactive(propValue)) {\r\n propValue.__ob__.dep.depend();\r\n }\r\n return propValue;\r\n },\r\n set: function (val) {\r\n propValue = val;\r\n },\r\n });\r\n }\r\n {\r\n // expose binding to Vue Devtool as a data property\r\n // delay this until state has been resolved to prevent repeated works\r\n vm.$nextTick(function () {\r\n if (Object.keys(vm._data).indexOf(propName) !== -1) {\r\n return;\r\n }\r\n if (isRef(propValue)) {\r\n proxy(vm._data, propName, {\r\n get: function () { return propValue.value; },\r\n set: function (val) {\r\n propValue.value = val;\r\n },\r\n });\r\n }\r\n else {\r\n proxy(vm._data, propName, {\r\n get: function () { return propValue; },\r\n set: function (val) {\r\n propValue = val;\r\n },\r\n });\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n if (props && hasOwn(props, propName)) {\r\n warn(\"The setup binding property \\\"\".concat(propName, \"\\\" is already declared as a prop.\"), vm);\r\n }\r\n else {\r\n warn(\"The setup binding property \\\"\".concat(propName, \"\\\" is already declared.\"), vm);\r\n }\r\n }\r\n}\r\nfunction updateTemplateRef(vm) {\r\n var rawBindings = vmStateManager.get(vm, 'rawBindings') || {};\r\n if (!rawBindings || !Object.keys(rawBindings).length)\r\n return;\r\n var refs = vm.$refs;\r\n var oldRefKeys = vmStateManager.get(vm, 'refs') || [];\r\n for (var index = 0; index < oldRefKeys.length; index++) {\r\n var key = oldRefKeys[index];\r\n var setupValue = rawBindings[key];\r\n if (!refs[key] && setupValue && isRef(setupValue)) {\r\n setupValue.value = null;\r\n }\r\n }\r\n var newKeys = Object.keys(refs);\r\n var validNewKeys = [];\r\n for (var index = 0; index < newKeys.length; index++) {\r\n var key = newKeys[index];\r\n var setupValue = rawBindings[key];\r\n if (refs[key] && setupValue && isRef(setupValue)) {\r\n setupValue.value = refs[key];\r\n validNewKeys.push(key);\r\n }\r\n }\r\n vmStateManager.set(vm, 'refs', validNewKeys);\r\n}\r\nfunction afterRender(vm) {\r\n var stack = [vm._vnode];\r\n while (stack.length) {\r\n var vnode = stack.pop();\r\n if (vnode) {\r\n if (vnode.context)\r\n updateTemplateRef(vnode.context);\r\n if (vnode.children) {\r\n for (var i = 0; i < vnode.children.length; ++i) {\r\n stack.push(vnode.children[i]);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction updateVmAttrs(vm, ctx) {\r\n var e_1, _a;\r\n if (!vm) {\r\n return;\r\n }\r\n var attrBindings = vmStateManager.get(vm, 'attrBindings');\r\n if (!attrBindings && !ctx) {\r\n // fix 840\r\n return;\r\n }\r\n if (!attrBindings) {\r\n var observedData = reactive({});\r\n attrBindings = { ctx: ctx, data: observedData };\r\n vmStateManager.set(vm, 'attrBindings', attrBindings);\r\n proxy(ctx, 'attrs', {\r\n get: function () {\r\n return attrBindings === null || attrBindings === void 0 ? void 0 : attrBindings.data;\r\n },\r\n set: function () {\r\n warn(\"Cannot assign to '$attrs' because it is a read-only property\", vm);\r\n },\r\n });\r\n }\r\n var source = vm.$attrs;\r\n var _loop_1 = function (attr) {\r\n if (!hasOwn(attrBindings.data, attr)) {\r\n proxy(attrBindings.data, attr, {\r\n get: function () {\r\n // to ensure it always return the latest value\r\n return vm.$attrs[attr];\r\n },\r\n });\r\n }\r\n };\r\n try {\r\n for (var _b = __values(Object.keys(source)), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var attr = _c.value;\r\n _loop_1(attr);\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n}\r\nfunction resolveScopedSlots(vm, slotsProxy) {\r\n var parentVNode = vm.$options._parentVnode;\r\n if (!parentVNode)\r\n return;\r\n var prevSlots = vmStateManager.get(vm, 'slots') || [];\r\n var curSlots = resolveSlots(parentVNode.data.scopedSlots, vm.$slots);\r\n // remove staled slots\r\n for (var index = 0; index < prevSlots.length; index++) {\r\n var key = prevSlots[index];\r\n if (!curSlots[key]) {\r\n delete slotsProxy[key];\r\n }\r\n }\r\n // proxy fresh slots\r\n var slotNames = Object.keys(curSlots);\r\n for (var index = 0; index < slotNames.length; index++) {\r\n var key = slotNames[index];\r\n if (!slotsProxy[key]) {\r\n slotsProxy[key] = createSlotProxy(vm, key);\r\n }\r\n }\r\n vmStateManager.set(vm, 'slots', slotNames);\r\n}\r\nfunction activateCurrentInstance(instance, fn, onError) {\r\n var preVm = getCurrentInstance();\r\n setCurrentInstance(instance);\r\n try {\r\n return fn(instance);\r\n }\r\n catch (\r\n // FIXME: remove any\r\n err) {\r\n if (onError) {\r\n onError(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n }\r\n finally {\r\n setCurrentInstance(preVm);\r\n }\r\n}\n\nfunction mixin(Vue) {\r\n Vue.mixin({\r\n beforeCreate: functionApiInit,\r\n mounted: function () {\r\n afterRender(this);\r\n },\r\n beforeUpdate: function () {\r\n updateVmAttrs(this);\r\n },\r\n updated: function () {\r\n afterRender(this);\r\n },\r\n });\r\n /**\r\n * Vuex init hook, injected into each instances init hooks list.\r\n */\r\n function functionApiInit() {\r\n var vm = this;\r\n var $options = vm.$options;\r\n var setup = $options.setup, render = $options.render;\r\n if (render) {\r\n // keep currentInstance accessible for createElement\r\n $options.render = function () {\r\n var _this = this;\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return activateCurrentInstance(toVue3ComponentInstance(vm), function () {\r\n return render.apply(_this, args);\r\n });\r\n };\r\n }\r\n if (!setup) {\r\n return;\r\n }\r\n if (!isFunction(setup)) {\r\n {\r\n warn('The \"setup\" option should be a function that returns a object in component definitions.', vm);\r\n }\r\n return;\r\n }\r\n var data = $options.data;\r\n // wrapper the data option, so we can invoke setup before data get resolved\r\n $options.data = function wrappedData() {\r\n initSetup(vm, vm.$props);\r\n return isFunction(data)\r\n ? data.call(vm, vm)\r\n : data || {};\r\n };\r\n }\r\n function initSetup(vm, props) {\r\n if (props === void 0) { props = {}; }\r\n var setup = vm.$options.setup;\r\n var ctx = createSetupContext(vm);\r\n var instance = toVue3ComponentInstance(vm);\r\n instance.setupContext = ctx;\r\n // fake reactive for `toRefs(props)`\r\n def(props, '__ob__', createObserver());\r\n // resolve scopedSlots and slots to functions\r\n resolveScopedSlots(vm, ctx.slots);\r\n var binding;\r\n activateCurrentInstance(instance, function () {\r\n // make props to be fake reactive, this is for `toRefs(props)`\r\n binding = setup(props, ctx);\r\n });\r\n if (!binding)\r\n return;\r\n if (isFunction(binding)) {\r\n // keep typescript happy with the binding type.\r\n var bindingFunc_1 = binding;\r\n // keep currentInstance accessible for createElement\r\n vm.$options.render = function () {\r\n resolveScopedSlots(vm, ctx.slots);\r\n return activateCurrentInstance(instance, function () { return bindingFunc_1(); });\r\n };\r\n return;\r\n }\r\n else if (isObject(binding)) {\r\n if (isReactive(binding)) {\r\n binding = toRefs(binding);\r\n }\r\n vmStateManager.set(vm, 'rawBindings', binding);\r\n var bindingObj_1 = binding;\r\n Object.keys(bindingObj_1).forEach(function (name) {\r\n var bindingValue = bindingObj_1[name];\r\n if (!isRef(bindingValue)) {\r\n if (!isReactive(bindingValue)) {\r\n if (isFunction(bindingValue)) {\r\n var copy_1 = bindingValue;\r\n bindingValue = bindingValue.bind(vm);\r\n Object.keys(copy_1).forEach(function (ele) {\r\n bindingValue[ele] = copy_1[ele];\r\n });\r\n }\r\n else if (!isObject(bindingValue)) {\r\n bindingValue = ref(bindingValue);\r\n }\r\n else if (hasReactiveArrayChild(bindingValue)) {\r\n // creates a custom reactive properties without make the object explicitly reactive\r\n // NOTE we should try to avoid this, better implementation needed\r\n customReactive(bindingValue);\r\n }\r\n }\r\n else if (isArray(bindingValue)) {\r\n bindingValue = ref(bindingValue);\r\n }\r\n }\r\n asVmProperty(vm, name, bindingValue);\r\n });\r\n return;\r\n }\r\n {\r\n assert(false, \"\\\"setup\\\" must return a \\\"Object\\\" or a \\\"Function\\\", got \\\"\".concat(Object.prototype.toString\r\n .call(binding)\r\n .slice(8, -1), \"\\\"\"));\r\n }\r\n }\r\n function customReactive(target, seen) {\r\n if (seen === void 0) { seen = new Set(); }\r\n if (seen.has(target))\r\n return;\r\n if (!isPlainObject(target) ||\r\n isRef(target) ||\r\n isReactive(target) ||\r\n isRaw(target))\r\n return;\r\n var Vue = getVueConstructor();\r\n // @ts-expect-error https://github.com/vuejs/vue/pull/12132\r\n var defineReactive = Vue.util.defineReactive;\r\n Object.keys(target).forEach(function (k) {\r\n var val = target[k];\r\n defineReactive(target, k, val);\r\n if (val) {\r\n seen.add(val);\r\n customReactive(val, seen);\r\n }\r\n return;\r\n });\r\n }\r\n function hasReactiveArrayChild(target, visited) {\r\n if (visited === void 0) { visited = new Map(); }\r\n if (visited.has(target)) {\r\n return visited.get(target);\r\n }\r\n visited.set(target, false);\r\n if (isArray(target) && isReactive(target)) {\r\n visited.set(target, true);\r\n return true;\r\n }\r\n if (!isPlainObject(target) || isRaw(target) || isRef(target)) {\r\n return false;\r\n }\r\n return Object.keys(target).some(function (x) {\r\n return hasReactiveArrayChild(target[x], visited);\r\n });\r\n }\r\n function createSetupContext(vm) {\r\n var ctx = { slots: {} };\r\n var propsPlain = [\r\n 'root',\r\n 'parent',\r\n 'refs',\r\n 'listeners',\r\n 'isServer',\r\n 'ssrContext',\r\n ];\r\n var methodReturnVoid = ['emit'];\r\n propsPlain.forEach(function (key) {\r\n var srcKey = \"$\".concat(key);\r\n proxy(ctx, key, {\r\n get: function () { return vm[srcKey]; },\r\n set: function () {\r\n warn(\"Cannot assign to '\".concat(key, \"' because it is a read-only property\"), vm);\r\n },\r\n });\r\n });\r\n updateVmAttrs(vm, ctx);\r\n methodReturnVoid.forEach(function (key) {\r\n var srcKey = \"$\".concat(key);\r\n proxy(ctx, key, {\r\n get: function () {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var fn = vm[srcKey];\r\n fn.apply(vm, args);\r\n };\r\n },\r\n });\r\n });\r\n return ctx;\r\n }\r\n}\n\n/**\r\n * Helper that recursively merges two data objects together.\r\n */\r\nfunction mergeData(from, to) {\r\n if (!from)\r\n return to;\r\n if (!to)\r\n return from;\r\n var key;\r\n var toVal;\r\n var fromVal;\r\n var keys = hasSymbol ? Reflect.ownKeys(from) : Object.keys(from);\r\n for (var i = 0; i < keys.length; i++) {\r\n key = keys[i];\r\n // in case the object is already observed...\r\n if (key === '__ob__')\r\n continue;\r\n toVal = to[key];\r\n fromVal = from[key];\r\n if (!hasOwn(to, key)) {\r\n to[key] = fromVal;\r\n }\r\n else if (toVal !== fromVal &&\r\n isPlainObject(toVal) &&\r\n !isRef(toVal) &&\r\n isPlainObject(fromVal) &&\r\n !isRef(fromVal)) {\r\n mergeData(fromVal, toVal);\r\n }\r\n }\r\n return to;\r\n}\r\nfunction install(Vue) {\r\n if (isVueRegistered(Vue)) {\r\n {\r\n warn('[vue-composition-api] already installed. Vue.use(VueCompositionAPI) should be called only once.');\r\n }\r\n return;\r\n }\r\n {\r\n if (Vue.version) {\r\n if (Vue.version[0] !== '2' || Vue.version[1] !== '.') {\r\n warn(\"[vue-composition-api] only works with Vue 2, v\".concat(Vue.version, \" found.\"));\r\n }\r\n }\r\n else {\r\n warn('[vue-composition-api] no Vue version found');\r\n }\r\n }\r\n Vue.config.optionMergeStrategies.setup = function (parent, child) {\r\n return function mergedSetupFn(props, context) {\r\n return mergeData(isFunction(parent) ? parent(props, context) || {} : undefined, isFunction(child) ? child(props, context) || {} : undefined);\r\n };\r\n };\r\n setVueConstructor(Vue);\r\n mixin(Vue);\r\n}\r\nvar Plugin = {\r\n install: function (Vue) { return install(Vue); },\r\n};\n\n// implementation, close to no-op\r\nfunction defineComponent(options) {\r\n return options;\r\n}\n\nfunction defineAsyncComponent(source) {\r\n if (isFunction(source)) {\r\n source = { loader: source };\r\n }\r\n var loader = source.loader, loadingComponent = source.loadingComponent, errorComponent = source.errorComponent, _a = source.delay, delay = _a === void 0 ? 200 : _a, timeout = source.timeout, // undefined = never times out\r\n _b = source.suspensible, // undefined = never times out\r\n suspensible = _b === void 0 ? false : _b, // in Vue 3 default is true\r\n userOnError = source.onError;\r\n if (suspensible) {\r\n warn(\"The suspensiblbe option for async components is not supported in Vue2. It is ignored.\");\r\n }\r\n var pendingRequest = null;\r\n var retries = 0;\r\n var retry = function () {\r\n retries++;\r\n pendingRequest = null;\r\n return load();\r\n };\r\n var load = function () {\r\n var thisRequest;\r\n return (pendingRequest ||\r\n (thisRequest = pendingRequest =\r\n loader()\r\n .catch(function (err) {\r\n err = err instanceof Error ? err : new Error(String(err));\r\n if (userOnError) {\r\n return new Promise(function (resolve, reject) {\r\n var userRetry = function () { return resolve(retry()); };\r\n var userFail = function () { return reject(err); };\r\n userOnError(err, userRetry, userFail, retries + 1);\r\n });\r\n }\r\n else {\r\n throw err;\r\n }\r\n })\r\n .then(function (comp) {\r\n if (thisRequest !== pendingRequest && pendingRequest) {\r\n return pendingRequest;\r\n }\r\n if (!comp) {\r\n warn(\"Async component loader resolved to undefined. \" +\r\n \"If you are using retry(), make sure to return its return value.\");\r\n }\r\n // interop module default\r\n if (comp &&\r\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\r\n comp = comp.default;\r\n }\r\n if (comp && !isObject(comp) && !isFunction(comp)) {\r\n throw new Error(\"Invalid async component load result: \".concat(comp));\r\n }\r\n return comp;\r\n })));\r\n };\r\n return function () {\r\n var component = load();\r\n return {\r\n component: component,\r\n delay: delay,\r\n timeout: timeout,\r\n error: errorComponent,\r\n loading: loadingComponent,\r\n };\r\n };\r\n}\n\nvar version = \"1.7.2\";\r\n// auto install when using CDN\r\nif (typeof window !== 'undefined' && window.Vue) {\r\n window.Vue.use(Plugin);\r\n}\n\nexports.EffectScope = EffectScope;\nexports.computed = computed;\nexports.createApp = createApp;\nexports.createRef = createRef;\nexports.customRef = customRef;\nexports[\"default\"] = Plugin;\nexports.defineAsyncComponent = defineAsyncComponent;\nexports.defineComponent = defineComponent;\nexports.del = del;\nexports.effectScope = effectScope;\nexports.getCurrentInstance = getCurrentInstance;\nexports.getCurrentScope = getCurrentScope;\nexports.h = createElement;\nexports.inject = inject;\nexports.isRaw = isRaw;\nexports.isReactive = isReactive;\nexports.isReadonly = isReadonly;\nexports.isRef = isRef;\nexports.markRaw = markRaw;\nexports.nextTick = nextTick;\nexports.onActivated = onActivated;\nexports.onBeforeMount = onBeforeMount;\nexports.onBeforeUnmount = onBeforeUnmount;\nexports.onBeforeUpdate = onBeforeUpdate;\nexports.onDeactivated = onDeactivated;\nexports.onErrorCaptured = onErrorCaptured;\nexports.onMounted = onMounted;\nexports.onScopeDispose = onScopeDispose;\nexports.onServerPrefetch = onServerPrefetch;\nexports.onUnmounted = onUnmounted;\nexports.onUpdated = onUpdated;\nexports.provide = provide;\nexports.proxyRefs = proxyRefs;\nexports.reactive = reactive;\nexports.readonly = readonly;\nexports.ref = ref;\nexports.set = set$1;\nexports.shallowReactive = shallowReactive;\nexports.shallowReadonly = shallowReadonly;\nexports.shallowRef = shallowRef;\nexports.toRaw = toRaw;\nexports.toRef = toRef;\nexports.toRefs = toRefs;\nexports.triggerRef = triggerRef;\nexports.unref = unref;\nexports.useAttrs = useAttrs;\nexports.useCSSModule = useCSSModule;\nexports.useCssModule = useCssModule;\nexports.useSlots = useSlots;\nexports.version = version;\nexports.warn = warn$1;\nexports.watch = watch;\nexports.watchEffect = watchEffect;\nexports.watchPostEffect = watchPostEffect;\nexports.watchSyncEffect = watchSyncEffect;\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/asynckit/index.js b/government-mini-program/miniprogram_npm/asynckit/index.js deleted file mode 100644 index 3efd1dc..0000000 --- a/government-mini-program/miniprogram_npm/asynckit/index.js +++ /dev/null @@ -1,411 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322053, function(require, module, exports) { -module.exports = -{ - parallel : require('./parallel.js'), - serial : require('./serial.js'), - serialOrdered : require('./serialOrdered.js') -}; - -}, function(modId) {var map = {"./parallel.js":1758268322054,"./serial.js":1758268322061,"./serialOrdered.js":1758268322062}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322054, function(require, module, exports) { -var iterate = require('./lib/iterate.js') - , initState = require('./lib/state.js') - , terminator = require('./lib/terminator.js') - ; - -// Public API -module.exports = parallel; - -/** - * Runs iterator over provided array elements in parallel - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} callback - invoked when all elements processed - * @returns {function} - jobs terminator - */ -function parallel(list, iterator, callback) -{ - var state = initState(list); - - while (state.index < (state['keyedList'] || list).length) - { - iterate(list, iterator, state, function(error, result) - { - if (error) - { - callback(error, result); - return; - } - - // looks like it's the last one - if (Object.keys(state.jobs).length === 0) - { - callback(null, state.results); - return; - } - }); - - state.index++; - } - - return terminator.bind(state, callback); -} - -}, function(modId) { var map = {"./lib/iterate.js":1758268322055,"./lib/state.js":1758268322059,"./lib/terminator.js":1758268322060}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322055, function(require, module, exports) { -var async = require('./async.js') - , abort = require('./abort.js') - ; - -// API -module.exports = iterate; - -/** - * Iterates over each job object - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {object} state - current job status - * @param {function} callback - invoked when all elements processed - */ -function iterate(list, iterator, state, callback) -{ - // store current index - var key = state['keyedList'] ? state['keyedList'][state.index] : state.index; - - state.jobs[key] = runJob(iterator, key, list[key], function(error, output) - { - // don't repeat yourself - // skip secondary callbacks - if (!(key in state.jobs)) - { - return; - } - - // clean up jobs - delete state.jobs[key]; - - if (error) - { - // don't process rest of the results - // stop still active jobs - // and reset the list - abort(state); - } - else - { - state.results[key] = output; - } - - // return salvaged results - callback(error, state.results); - }); -} - -/** - * Runs iterator over provided job element - * - * @param {function} iterator - iterator to invoke - * @param {string|number} key - key/index of the element in the list of jobs - * @param {mixed} item - job description - * @param {function} callback - invoked after iterator is done with the job - * @returns {function|mixed} - job abort function or something else - */ -function runJob(iterator, key, item, callback) -{ - var aborter; - - // allow shortcut if iterator expects only two arguments - if (iterator.length == 2) - { - aborter = iterator(item, async(callback)); - } - // otherwise go with full three arguments - else - { - aborter = iterator(item, key, async(callback)); - } - - return aborter; -} - -}, function(modId) { var map = {"./async.js":1758268322056,"./abort.js":1758268322058}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322056, function(require, module, exports) { -var defer = require('./defer.js'); - -// API -module.exports = async; - -/** - * Runs provided callback asynchronously - * even if callback itself is not - * - * @param {function} callback - callback to invoke - * @returns {function} - augmented callback - */ -function async(callback) -{ - var isAsync = false; - - // check if async happened - defer(function() { isAsync = true; }); - - return function async_callback(err, result) - { - if (isAsync) - { - callback(err, result); - } - else - { - defer(function nextTick_callback() - { - callback(err, result); - }); - } - }; -} - -}, function(modId) { var map = {"./defer.js":1758268322057}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322057, function(require, module, exports) { -module.exports = defer; - -/** - * Runs provided function on next iteration of the event loop - * - * @param {function} fn - function to run - */ -function defer(fn) -{ - var nextTick = typeof setImmediate == 'function' - ? setImmediate - : ( - typeof process == 'object' && typeof process.nextTick == 'function' - ? process.nextTick - : null - ); - - if (nextTick) - { - nextTick(fn); - } - else - { - setTimeout(fn, 0); - } -} - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322058, function(require, module, exports) { -// API -module.exports = abort; - -/** - * Aborts leftover active jobs - * - * @param {object} state - current state object - */ -function abort(state) -{ - Object.keys(state.jobs).forEach(clean.bind(state)); - - // reset leftover jobs - state.jobs = {}; -} - -/** - * Cleans up leftover job by invoking abort function for the provided job id - * - * @this state - * @param {string|number} key - job id to abort - */ -function clean(key) -{ - if (typeof this.jobs[key] == 'function') - { - this.jobs[key](); - } -} - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322059, function(require, module, exports) { -// API -module.exports = state; - -/** - * Creates initial state object - * for iteration over list - * - * @param {array|object} list - list to iterate over - * @param {function|null} sortMethod - function to use for keys sort, - * or `null` to keep them as is - * @returns {object} - initial state object - */ -function state(list, sortMethod) -{ - var isNamedList = !Array.isArray(list) - , initState = - { - index : 0, - keyedList: isNamedList || sortMethod ? Object.keys(list) : null, - jobs : {}, - results : isNamedList ? {} : [], - size : isNamedList ? Object.keys(list).length : list.length - } - ; - - if (sortMethod) - { - // sort array keys based on it's values - // sort object's keys just on own merit - initState.keyedList.sort(isNamedList ? sortMethod : function(a, b) - { - return sortMethod(list[a], list[b]); - }); - } - - return initState; -} - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322060, function(require, module, exports) { -var abort = require('./abort.js') - , async = require('./async.js') - ; - -// API -module.exports = terminator; - -/** - * Terminates jobs in the attached state context - * - * @this AsyncKitState# - * @param {function} callback - final callback to invoke after termination - */ -function terminator(callback) -{ - if (!Object.keys(this.jobs).length) - { - return; - } - - // fast forward iteration index - this.index = this.size; - - // abort jobs - abort(this); - - // send back results we have so far - async(callback)(null, this.results); -} - -}, function(modId) { var map = {"./abort.js":1758268322058,"./async.js":1758268322056}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322061, function(require, module, exports) { -var serialOrdered = require('./serialOrdered.js'); - -// Public API -module.exports = serial; - -/** - * Runs iterator over provided array elements in series - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} callback - invoked when all elements processed - * @returns {function} - jobs terminator - */ -function serial(list, iterator, callback) -{ - return serialOrdered(list, iterator, null, callback); -} - -}, function(modId) { var map = {"./serialOrdered.js":1758268322062}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322062, function(require, module, exports) { -var iterate = require('./lib/iterate.js') - , initState = require('./lib/state.js') - , terminator = require('./lib/terminator.js') - ; - -// Public API -module.exports = serialOrdered; -// sorting helpers -module.exports.ascending = ascending; -module.exports.descending = descending; - -/** - * Runs iterator over provided sorted array elements in series - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} sortMethod - custom sort function - * @param {function} callback - invoked when all elements processed - * @returns {function} - jobs terminator - */ -function serialOrdered(list, iterator, sortMethod, callback) -{ - var state = initState(list, sortMethod); - - iterate(list, iterator, state, function iteratorHandler(error, result) - { - if (error) - { - callback(error, result); - return; - } - - state.index++; - - // are we there yet? - if (state.index < (state['keyedList'] || list).length) - { - iterate(list, iterator, state, iteratorHandler); - return; - } - - // done here - callback(null, state.results); - }); - - return terminator.bind(state, callback); -} - -/* - * -- Sort methods - */ - -/** - * sort helper to sort array elements in ascending order - * - * @param {mixed} a - an item to compare - * @param {mixed} b - an item to compare - * @returns {number} - comparison result - */ -function ascending(a, b) -{ - return a < b ? -1 : a > b ? 1 : 0; -} - -/** - * sort helper to sort array elements in descending order - * - * @param {mixed} a - an item to compare - * @param {mixed} b - an item to compare - * @returns {number} - comparison result - */ -function descending(a, b) -{ - return -1 * ascending(a, b); -} - -}, function(modId) { var map = {"./lib/iterate.js":1758268322055,"./lib/state.js":1758268322059,"./lib/terminator.js":1758268322060}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322053); -})() -//miniprogram-npm-outsideDeps=[] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/asynckit/index.js.map b/government-mini-program/miniprogram_npm/asynckit/index.js.map deleted file mode 100644 index ca2419b..0000000 --- a/government-mini-program/miniprogram_npm/asynckit/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js","parallel.js","lib/iterate.js","lib/async.js","lib/defer.js","lib/abort.js","lib/state.js","lib/terminator.js","serial.js","serialOrdered.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,AENA,ADGA;ACFA,ADGA;ACFA,ADGA;AELA,ADGA,ADGA;AELA,ADGA,ADGA;AELA,ADGA,ADGA;AELA,ACHA,AFMA,ADGA;AELA,ACHA,AFMA,ADGA;AELA,ACHA,AFMA,ADGA;AIXA,AFMA,ACHA,AFMA,ADGA;AIXA,AFMA,ACHA,AFMA,ADGA;AIXA,AFMA,ACHA,AFMA,ADGA;AIXA,AFMA,ACHA,AFMA,AIZA,ALeA;AIXA,AFMA,ACHA,AFMA,AIZA,ALeA;AIXA,AFMA,ACHA,AFMA,AIZA,ALeA;AIXA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA;AIXA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA;AIXA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA;AIXA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA;AHUA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA;AHUA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA;AHUA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ACHA,AFMA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ADGA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ADGA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ADGA,AIZA,ACHA,ANkBA,AOrBA,ACHA;AJaA,AFMA,ADGA,AIZA,ACHA,ANkBA,AQxBA;AJaA,AFMA,ADGA,AIZA,ACHA,ANkBA,AQxBA;AJaA,AHSA,AIZA,ACHA,ANkBA,AQxBA;APsBA,AIZA,ACHA,ANkBA,AQxBA;APsBA,AIZA,ACHA,ANkBA,AQxBA;APsBA,AIZA,ACHA,AENA;APsBA,AIZA,ACHA,AENA;APsBA,AIZA,ACHA,AENA;APsBA,AIZA,ACHA,AENA;APsBA,AIZA,AGTA;APsBA,AIZA,AGTA;APsBA,AIZA,AGTA;APsBA,AIZA,AGTA;APsBA,AIZA,AGTA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;APsBA,AOrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/axios/index.js b/government-mini-program/miniprogram_npm/axios/index.js deleted file mode 100644 index 00d9076..0000000 --- a/government-mini-program/miniprogram_npm/axios/index.js +++ /dev/null @@ -1,2645 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322063, function(require, module, exports) { -module.exports = require('./lib/axios'); -}, function(modId) {var map = {"./lib/axios":1758268322064}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322064, function(require, module, exports) { - - -var utils = require('./utils'); -var bind = require('./helpers/bind'); -var Axios = require('./core/Axios'); -var mergeConfig = require('./core/mergeConfig'); -var defaults = require('./defaults'); - -/** - * Create an instance of Axios - * - * @param {Object} defaultConfig The default config for the instance - * @return {Axios} A new instance of Axios - */ -function createInstance(defaultConfig) { - var context = new Axios(defaultConfig); - var instance = bind(Axios.prototype.request, context); - - // Copy axios.prototype to instance - utils.extend(instance, Axios.prototype, context); - - // Copy context to instance - utils.extend(instance, context); - - // Factory for creating new instances - instance.create = function create(instanceConfig) { - return createInstance(mergeConfig(defaultConfig, instanceConfig)); - }; - - return instance; -} - -// Create the default instance to be exported -var axios = createInstance(defaults); - -// Expose Axios class to allow class inheritance -axios.Axios = Axios; - -// Expose Cancel & CancelToken -axios.CanceledError = require('./cancel/CanceledError'); -axios.CancelToken = require('./cancel/CancelToken'); -axios.isCancel = require('./cancel/isCancel'); -axios.VERSION = require('./env/data').version; -axios.toFormData = require('./helpers/toFormData'); - -// Expose AxiosError class -axios.AxiosError = require('../lib/core/AxiosError'); - -// alias for CanceledError for backward compatibility -axios.Cancel = axios.CanceledError; - -// Expose all/spread -axios.all = function all(promises) { - return Promise.all(promises); -}; -axios.spread = require('./helpers/spread'); - -// Expose isAxiosError -axios.isAxiosError = require('./helpers/isAxiosError'); - -module.exports = axios; - -// Allow use of default import syntax in TypeScript -module.exports.default = axios; - -}, function(modId) { var map = {"./utils":1758268322065,"./helpers/bind":1758268322066,"./core/Axios":1758268322067,"./core/mergeConfig":1758268322091,"./defaults":1758268322072,"./cancel/CanceledError":1758268322085,"./cancel/CancelToken":1758268322093,"./cancel/isCancel":1758268322090,"./env/data":1758268322088,"./helpers/toFormData":1758268322076,"../lib/core/AxiosError":1758268322074,"./helpers/spread":1758268322094,"./helpers/isAxiosError":1758268322095}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322065, function(require, module, exports) { - - -var bind = require('./helpers/bind'); - -// utils is a library of generic helper functions non-specific to axios - -var toString = Object.prototype.toString; - -// eslint-disable-next-line func-names -var kindOf = (function(cache) { - // eslint-disable-next-line func-names - return function(thing) { - var str = toString.call(thing); - return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); - }; -})(Object.create(null)); - -function kindOfTest(type) { - type = type.toLowerCase(); - return function isKindOf(thing) { - return kindOf(thing) === type; - }; -} - -/** - * Determine if a value is an Array - * - * @param {Object} val The value to test - * @returns {boolean} True if value is an Array, otherwise false - */ -function isArray(val) { - return Array.isArray(val); -} - -/** - * Determine if a value is undefined - * - * @param {Object} val The value to test - * @returns {boolean} True if the value is undefined, otherwise false - */ -function isUndefined(val) { - return typeof val === 'undefined'; -} - -/** - * Determine if a value is a Buffer - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Buffer, otherwise false - */ -function isBuffer(val) { - return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) - && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); -} - -/** - * Determine if a value is an ArrayBuffer - * - * @function - * @param {Object} val The value to test - * @returns {boolean} True if value is an ArrayBuffer, otherwise false - */ -var isArrayBuffer = kindOfTest('ArrayBuffer'); - - -/** - * Determine if a value is a view on an ArrayBuffer - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false - */ -function isArrayBufferView(val) { - var result; - if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { - result = ArrayBuffer.isView(val); - } else { - result = (val) && (val.buffer) && (isArrayBuffer(val.buffer)); - } - return result; -} - -/** - * Determine if a value is a String - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a String, otherwise false - */ -function isString(val) { - return typeof val === 'string'; -} - -/** - * Determine if a value is a Number - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Number, otherwise false - */ -function isNumber(val) { - return typeof val === 'number'; -} - -/** - * Determine if a value is an Object - * - * @param {Object} val The value to test - * @returns {boolean} True if value is an Object, otherwise false - */ -function isObject(val) { - return val !== null && typeof val === 'object'; -} - -/** - * Determine if a value is a plain Object - * - * @param {Object} val The value to test - * @return {boolean} True if value is a plain Object, otherwise false - */ -function isPlainObject(val) { - if (kindOf(val) !== 'object') { - return false; - } - - var prototype = Object.getPrototypeOf(val); - return prototype === null || prototype === Object.prototype; -} - -/** - * Determine if a value is a Date - * - * @function - * @param {Object} val The value to test - * @returns {boolean} True if value is a Date, otherwise false - */ -var isDate = kindOfTest('Date'); - -/** - * Determine if a value is a File - * - * @function - * @param {Object} val The value to test - * @returns {boolean} True if value is a File, otherwise false - */ -var isFile = kindOfTest('File'); - -/** - * Determine if a value is a Blob - * - * @function - * @param {Object} val The value to test - * @returns {boolean} True if value is a Blob, otherwise false - */ -var isBlob = kindOfTest('Blob'); - -/** - * Determine if a value is a FileList - * - * @function - * @param {Object} val The value to test - * @returns {boolean} True if value is a File, otherwise false - */ -var isFileList = kindOfTest('FileList'); - -/** - * Determine if a value is a Function - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Function, otherwise false - */ -function isFunction(val) { - return toString.call(val) === '[object Function]'; -} - -/** - * Determine if a value is a Stream - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Stream, otherwise false - */ -function isStream(val) { - return isObject(val) && isFunction(val.pipe); -} - -/** - * Determine if a value is a FormData - * - * @param {Object} thing The value to test - * @returns {boolean} True if value is an FormData, otherwise false - */ -function isFormData(thing) { - var pattern = '[object FormData]'; - return thing && ( - (typeof FormData === 'function' && thing instanceof FormData) || - toString.call(thing) === pattern || - (isFunction(thing.toString) && thing.toString() === pattern) - ); -} - -/** - * Determine if a value is a URLSearchParams object - * @function - * @param {Object} val The value to test - * @returns {boolean} True if value is a URLSearchParams object, otherwise false - */ -var isURLSearchParams = kindOfTest('URLSearchParams'); - -/** - * Trim excess whitespace off the beginning and end of a string - * - * @param {String} str The String to trim - * @returns {String} The String freed of excess whitespace - */ -function trim(str) { - return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ''); -} - -/** - * Determine if we're running in a standard browser environment - * - * This allows axios to run in a web worker, and react-native. - * Both environments support XMLHttpRequest, but not fully standard globals. - * - * web workers: - * typeof window -> undefined - * typeof document -> undefined - * - * react-native: - * navigator.product -> 'ReactNative' - * nativescript - * navigator.product -> 'NativeScript' or 'NS' - */ -function isStandardBrowserEnv() { - if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || - navigator.product === 'NativeScript' || - navigator.product === 'NS')) { - return false; - } - return ( - typeof window !== 'undefined' && - typeof document !== 'undefined' - ); -} - -/** - * Iterate over an Array or an Object invoking a function for each item. - * - * If `obj` is an Array callback will be called passing - * the value, index, and complete array for each item. - * - * If 'obj' is an Object callback will be called passing - * the value, key, and complete object for each property. - * - * @param {Object|Array} obj The object to iterate - * @param {Function} fn The callback to invoke for each item - */ -function forEach(obj, fn) { - // Don't bother if no value provided - if (obj === null || typeof obj === 'undefined') { - return; - } - - // Force an array if not already something iterable - if (typeof obj !== 'object') { - /*eslint no-param-reassign:0*/ - obj = [obj]; - } - - if (isArray(obj)) { - // Iterate over array values - for (var i = 0, l = obj.length; i < l; i++) { - fn.call(null, obj[i], i, obj); - } - } else { - // Iterate over object keys - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - fn.call(null, obj[key], key, obj); - } - } - } -} - -/** - * Accepts varargs expecting each argument to be an object, then - * immutably merges the properties of each object and returns result. - * - * When multiple objects contain the same key the later object in - * the arguments list will take precedence. - * - * Example: - * - * ```js - * var result = merge({foo: 123}, {foo: 456}); - * console.log(result.foo); // outputs 456 - * ``` - * - * @param {Object} obj1 Object to merge - * @returns {Object} Result of all merge properties - */ -function merge(/* obj1, obj2, obj3, ... */) { - var result = {}; - function assignValue(val, key) { - if (isPlainObject(result[key]) && isPlainObject(val)) { - result[key] = merge(result[key], val); - } else if (isPlainObject(val)) { - result[key] = merge({}, val); - } else if (isArray(val)) { - result[key] = val.slice(); - } else { - result[key] = val; - } - } - - for (var i = 0, l = arguments.length; i < l; i++) { - forEach(arguments[i], assignValue); - } - return result; -} - -/** - * Extends object a by mutably adding to it the properties of object b. - * - * @param {Object} a The object to be extended - * @param {Object} b The object to copy properties from - * @param {Object} thisArg The object to bind function to - * @return {Object} The resulting value of object a - */ -function extend(a, b, thisArg) { - forEach(b, function assignValue(val, key) { - if (thisArg && typeof val === 'function') { - a[key] = bind(val, thisArg); - } else { - a[key] = val; - } - }); - return a; -} - -/** - * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) - * - * @param {string} content with BOM - * @return {string} content value without BOM - */ -function stripBOM(content) { - if (content.charCodeAt(0) === 0xFEFF) { - content = content.slice(1); - } - return content; -} - -/** - * Inherit the prototype methods from one constructor into another - * @param {function} constructor - * @param {function} superConstructor - * @param {object} [props] - * @param {object} [descriptors] - */ - -function inherits(constructor, superConstructor, props, descriptors) { - constructor.prototype = Object.create(superConstructor.prototype, descriptors); - constructor.prototype.constructor = constructor; - props && Object.assign(constructor.prototype, props); -} - -/** - * Resolve object with deep prototype chain to a flat object - * @param {Object} sourceObj source object - * @param {Object} [destObj] - * @param {Function} [filter] - * @returns {Object} - */ - -function toFlatObject(sourceObj, destObj, filter) { - var props; - var i; - var prop; - var merged = {}; - - destObj = destObj || {}; - - do { - props = Object.getOwnPropertyNames(sourceObj); - i = props.length; - while (i-- > 0) { - prop = props[i]; - if (!merged[prop]) { - destObj[prop] = sourceObj[prop]; - merged[prop] = true; - } - } - sourceObj = Object.getPrototypeOf(sourceObj); - } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); - - return destObj; -} - -/* - * determines whether a string ends with the characters of a specified string - * @param {String} str - * @param {String} searchString - * @param {Number} [position= 0] - * @returns {boolean} - */ -function endsWith(str, searchString, position) { - str = String(str); - if (position === undefined || position > str.length) { - position = str.length; - } - position -= searchString.length; - var lastIndex = str.indexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; -} - - -/** - * Returns new array from array like object - * @param {*} [thing] - * @returns {Array} - */ -function toArray(thing) { - if (!thing) return null; - var i = thing.length; - if (isUndefined(i)) return null; - var arr = new Array(i); - while (i-- > 0) { - arr[i] = thing[i]; - } - return arr; -} - -// eslint-disable-next-line func-names -var isTypedArray = (function(TypedArray) { - // eslint-disable-next-line func-names - return function(thing) { - return TypedArray && thing instanceof TypedArray; - }; -})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array)); - -module.exports = { - isArray: isArray, - isArrayBuffer: isArrayBuffer, - isBuffer: isBuffer, - isFormData: isFormData, - isArrayBufferView: isArrayBufferView, - isString: isString, - isNumber: isNumber, - isObject: isObject, - isPlainObject: isPlainObject, - isUndefined: isUndefined, - isDate: isDate, - isFile: isFile, - isBlob: isBlob, - isFunction: isFunction, - isStream: isStream, - isURLSearchParams: isURLSearchParams, - isStandardBrowserEnv: isStandardBrowserEnv, - forEach: forEach, - merge: merge, - extend: extend, - trim: trim, - stripBOM: stripBOM, - inherits: inherits, - toFlatObject: toFlatObject, - kindOf: kindOf, - kindOfTest: kindOfTest, - endsWith: endsWith, - toArray: toArray, - isTypedArray: isTypedArray, - isFileList: isFileList -}; - -}, function(modId) { var map = {"./helpers/bind":1758268322066}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322066, function(require, module, exports) { - - -module.exports = function bind(fn, thisArg) { - return function wrap() { - var args = new Array(arguments.length); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i]; - } - return fn.apply(thisArg, args); - }; -}; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322067, function(require, module, exports) { - - -var utils = require('./../utils'); -var buildURL = require('../helpers/buildURL'); -var InterceptorManager = require('./InterceptorManager'); -var dispatchRequest = require('./dispatchRequest'); -var mergeConfig = require('./mergeConfig'); -var buildFullPath = require('./buildFullPath'); -var validator = require('../helpers/validator'); - -var validators = validator.validators; -/** - * Create a new instance of Axios - * - * @param {Object} instanceConfig The default config for the instance - */ -function Axios(instanceConfig) { - this.defaults = instanceConfig; - this.interceptors = { - request: new InterceptorManager(), - response: new InterceptorManager() - }; -} - -/** - * Dispatch a request - * - * @param {Object} config The config specific for this request (merged with this.defaults) - */ -Axios.prototype.request = function request(configOrUrl, config) { - /*eslint no-param-reassign:0*/ - // Allow for axios('example/url'[, config]) a la fetch API - if (typeof configOrUrl === 'string') { - config = config || {}; - config.url = configOrUrl; - } else { - config = configOrUrl || {}; - } - - config = mergeConfig(this.defaults, config); - - // Set config.method - if (config.method) { - config.method = config.method.toLowerCase(); - } else if (this.defaults.method) { - config.method = this.defaults.method.toLowerCase(); - } else { - config.method = 'get'; - } - - var transitional = config.transitional; - - if (transitional !== undefined) { - validator.assertOptions(transitional, { - silentJSONParsing: validators.transitional(validators.boolean), - forcedJSONParsing: validators.transitional(validators.boolean), - clarifyTimeoutError: validators.transitional(validators.boolean) - }, false); - } - - // filter out skipped interceptors - var requestInterceptorChain = []; - var synchronousRequestInterceptors = true; - this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { - if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { - return; - } - - synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; - - requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); - }); - - var responseInterceptorChain = []; - this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { - responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - }); - - var promise; - - if (!synchronousRequestInterceptors) { - var chain = [dispatchRequest, undefined]; - - Array.prototype.unshift.apply(chain, requestInterceptorChain); - chain = chain.concat(responseInterceptorChain); - - promise = Promise.resolve(config); - while (chain.length) { - promise = promise.then(chain.shift(), chain.shift()); - } - - return promise; - } - - - var newConfig = config; - while (requestInterceptorChain.length) { - var onFulfilled = requestInterceptorChain.shift(); - var onRejected = requestInterceptorChain.shift(); - try { - newConfig = onFulfilled(newConfig); - } catch (error) { - onRejected(error); - break; - } - } - - try { - promise = dispatchRequest(newConfig); - } catch (error) { - return Promise.reject(error); - } - - while (responseInterceptorChain.length) { - promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift()); - } - - return promise; -}; - -Axios.prototype.getUri = function getUri(config) { - config = mergeConfig(this.defaults, config); - var fullPath = buildFullPath(config.baseURL, config.url); - return buildURL(fullPath, config.params, config.paramsSerializer); -}; - -// Provide aliases for supported request methods -utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { - /*eslint func-names:0*/ - Axios.prototype[method] = function(url, config) { - return this.request(mergeConfig(config || {}, { - method: method, - url: url, - data: (config || {}).data - })); - }; -}); - -utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { - /*eslint func-names:0*/ - - function generateHTTPMethod(isForm) { - return function httpMethod(url, data, config) { - return this.request(mergeConfig(config || {}, { - method: method, - headers: isForm ? { - 'Content-Type': 'multipart/form-data' - } : {}, - url: url, - data: data - })); - }; - } - - Axios.prototype[method] = generateHTTPMethod(); - - Axios.prototype[method + 'Form'] = generateHTTPMethod(true); -}); - -module.exports = Axios; - -}, function(modId) { var map = {"./../utils":1758268322065,"../helpers/buildURL":1758268322068,"./InterceptorManager":1758268322069,"./dispatchRequest":1758268322070,"./mergeConfig":1758268322091,"./buildFullPath":1758268322080,"../helpers/validator":1758268322092}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322068, function(require, module, exports) { - - -var utils = require('./../utils'); - -function encode(val) { - return encodeURIComponent(val). - replace(/%3A/gi, ':'). - replace(/%24/g, '$'). - replace(/%2C/gi, ','). - replace(/%20/g, '+'). - replace(/%5B/gi, '['). - replace(/%5D/gi, ']'); -} - -/** - * Build a URL by appending params to the end - * - * @param {string} url The base of the url (e.g., http://www.google.com) - * @param {object} [params] The params to be appended - * @returns {string} The formatted url - */ -module.exports = function buildURL(url, params, paramsSerializer) { - /*eslint no-param-reassign:0*/ - if (!params) { - return url; - } - - var serializedParams; - if (paramsSerializer) { - serializedParams = paramsSerializer(params); - } else if (utils.isURLSearchParams(params)) { - serializedParams = params.toString(); - } else { - var parts = []; - - utils.forEach(params, function serialize(val, key) { - if (val === null || typeof val === 'undefined') { - return; - } - - if (utils.isArray(val)) { - key = key + '[]'; - } else { - val = [val]; - } - - utils.forEach(val, function parseValue(v) { - if (utils.isDate(v)) { - v = v.toISOString(); - } else if (utils.isObject(v)) { - v = JSON.stringify(v); - } - parts.push(encode(key) + '=' + encode(v)); - }); - }); - - serializedParams = parts.join('&'); - } - - if (serializedParams) { - var hashmarkIndex = url.indexOf('#'); - if (hashmarkIndex !== -1) { - url = url.slice(0, hashmarkIndex); - } - - url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; - } - - return url; -}; - -}, function(modId) { var map = {"./../utils":1758268322065}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322069, function(require, module, exports) { - - -var utils = require('./../utils'); - -function InterceptorManager() { - this.handlers = []; -} - -/** - * Add a new interceptor to the stack - * - * @param {Function} fulfilled The function to handle `then` for a `Promise` - * @param {Function} rejected The function to handle `reject` for a `Promise` - * - * @return {Number} An ID used to remove interceptor later - */ -InterceptorManager.prototype.use = function use(fulfilled, rejected, options) { - this.handlers.push({ - fulfilled: fulfilled, - rejected: rejected, - synchronous: options ? options.synchronous : false, - runWhen: options ? options.runWhen : null - }); - return this.handlers.length - 1; -}; - -/** - * Remove an interceptor from the stack - * - * @param {Number} id The ID that was returned by `use` - */ -InterceptorManager.prototype.eject = function eject(id) { - if (this.handlers[id]) { - this.handlers[id] = null; - } -}; - -/** - * Iterate over all the registered interceptors - * - * This method is particularly useful for skipping over any - * interceptors that may have become `null` calling `eject`. - * - * @param {Function} fn The function to call for each interceptor - */ -InterceptorManager.prototype.forEach = function forEach(fn) { - utils.forEach(this.handlers, function forEachHandler(h) { - if (h !== null) { - fn(h); - } - }); -}; - -module.exports = InterceptorManager; - -}, function(modId) { var map = {"./../utils":1758268322065}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322070, function(require, module, exports) { - - -var utils = require('./../utils'); -var transformData = require('./transformData'); -var isCancel = require('../cancel/isCancel'); -var defaults = require('../defaults'); -var CanceledError = require('../cancel/CanceledError'); - -/** - * Throws a `CanceledError` if cancellation has been requested. - */ -function throwIfCancellationRequested(config) { - if (config.cancelToken) { - config.cancelToken.throwIfRequested(); - } - - if (config.signal && config.signal.aborted) { - throw new CanceledError(); - } -} - -/** - * Dispatch a request to the server using the configured adapter. - * - * @param {object} config The config that is to be used for the request - * @returns {Promise} The Promise to be fulfilled - */ -module.exports = function dispatchRequest(config) { - throwIfCancellationRequested(config); - - // Ensure headers exist - config.headers = config.headers || {}; - - // Transform request data - config.data = transformData.call( - config, - config.data, - config.headers, - config.transformRequest - ); - - // Flatten headers - config.headers = utils.merge( - config.headers.common || {}, - config.headers[config.method] || {}, - config.headers - ); - - utils.forEach( - ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], - function cleanHeaderConfig(method) { - delete config.headers[method]; - } - ); - - var adapter = config.adapter || defaults.adapter; - - return adapter(config).then(function onAdapterResolution(response) { - throwIfCancellationRequested(config); - - // Transform response data - response.data = transformData.call( - config, - response.data, - response.headers, - config.transformResponse - ); - - return response; - }, function onAdapterRejection(reason) { - if (!isCancel(reason)) { - throwIfCancellationRequested(config); - - // Transform response data - if (reason && reason.response) { - reason.response.data = transformData.call( - config, - reason.response.data, - reason.response.headers, - config.transformResponse - ); - } - } - - return Promise.reject(reason); - }); -}; - -}, function(modId) { var map = {"./../utils":1758268322065,"./transformData":1758268322071,"../cancel/isCancel":1758268322090,"../defaults":1758268322072,"../cancel/CanceledError":1758268322085}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322071, function(require, module, exports) { - - -var utils = require('./../utils'); -var defaults = require('../defaults'); - -/** - * Transform the data for a request or a response - * - * @param {Object|String} data The data to be transformed - * @param {Array} headers The headers for the request or response - * @param {Array|Function} fns A single function or Array of functions - * @returns {*} The resulting transformed data - */ -module.exports = function transformData(data, headers, fns) { - var context = this || defaults; - /*eslint no-param-reassign:0*/ - utils.forEach(fns, function transform(fn) { - data = fn.call(context, data, headers); - }); - - return data; -}; - -}, function(modId) { var map = {"./../utils":1758268322065,"../defaults":1758268322072}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322072, function(require, module, exports) { - - -var utils = require('../utils'); -var normalizeHeaderName = require('../helpers/normalizeHeaderName'); -var AxiosError = require('../core/AxiosError'); -var transitionalDefaults = require('./transitional'); -var toFormData = require('../helpers/toFormData'); - -var DEFAULT_CONTENT_TYPE = { - 'Content-Type': 'application/x-www-form-urlencoded' -}; - -function setContentTypeIfUnset(headers, value) { - if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { - headers['Content-Type'] = value; - } -} - -function getDefaultAdapter() { - var adapter; - if (typeof XMLHttpRequest !== 'undefined') { - // For browsers use XHR adapter - adapter = require('../adapters/xhr'); - } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { - // For node use HTTP adapter - adapter = require('../adapters/http'); - } - return adapter; -} - -function stringifySafely(rawValue, parser, encoder) { - if (utils.isString(rawValue)) { - try { - (parser || JSON.parse)(rawValue); - return utils.trim(rawValue); - } catch (e) { - if (e.name !== 'SyntaxError') { - throw e; - } - } - } - - return (encoder || JSON.stringify)(rawValue); -} - -var defaults = { - - transitional: transitionalDefaults, - - adapter: getDefaultAdapter(), - - transformRequest: [function transformRequest(data, headers) { - normalizeHeaderName(headers, 'Accept'); - normalizeHeaderName(headers, 'Content-Type'); - - if (utils.isFormData(data) || - utils.isArrayBuffer(data) || - utils.isBuffer(data) || - utils.isStream(data) || - utils.isFile(data) || - utils.isBlob(data) - ) { - return data; - } - if (utils.isArrayBufferView(data)) { - return data.buffer; - } - if (utils.isURLSearchParams(data)) { - setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); - return data.toString(); - } - - var isObjectPayload = utils.isObject(data); - var contentType = headers && headers['Content-Type']; - - var isFileList; - - if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) { - var _FormData = this.env && this.env.FormData; - return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData()); - } else if (isObjectPayload || contentType === 'application/json') { - setContentTypeIfUnset(headers, 'application/json'); - return stringifySafely(data); - } - - return data; - }], - - transformResponse: [function transformResponse(data) { - var transitional = this.transitional || defaults.transitional; - var silentJSONParsing = transitional && transitional.silentJSONParsing; - var forcedJSONParsing = transitional && transitional.forcedJSONParsing; - var strictJSONParsing = !silentJSONParsing && this.responseType === 'json'; - - if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) { - try { - return JSON.parse(data); - } catch (e) { - if (strictJSONParsing) { - if (e.name === 'SyntaxError') { - throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response); - } - throw e; - } - } - } - - return data; - }], - - /** - * A timeout in milliseconds to abort a request. If set to 0 (default) a - * timeout is not created. - */ - timeout: 0, - - xsrfCookieName: 'XSRF-TOKEN', - xsrfHeaderName: 'X-XSRF-TOKEN', - - maxContentLength: -1, - maxBodyLength: -1, - - env: { - FormData: require('./env/FormData') - }, - - validateStatus: function validateStatus(status) { - return status >= 200 && status < 300; - }, - - headers: { - common: { - 'Accept': 'application/json, text/plain, */*' - } - } -}; - -utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { - defaults.headers[method] = {}; -}); - -utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { - defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); -}); - -module.exports = defaults; - -}, function(modId) { var map = {"../utils":1758268322065,"../helpers/normalizeHeaderName":1758268322073,"../core/AxiosError":1758268322074,"./transitional":1758268322075,"../helpers/toFormData":1758268322076,"../adapters/xhr":1758268322077,"../adapters/http":1758268322087,"./env/FormData":1758268322089}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322073, function(require, module, exports) { - - -var utils = require('../utils'); - -module.exports = function normalizeHeaderName(headers, normalizedName) { - utils.forEach(headers, function processHeader(value, name) { - if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { - headers[normalizedName] = value; - delete headers[name]; - } - }); -}; - -}, function(modId) { var map = {"../utils":1758268322065}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322074, function(require, module, exports) { - - -var utils = require('../utils'); - -/** - * Create an Error with the specified message, config, error code, request and response. - * - * @param {string} message The error message. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [config] The config. - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * @returns {Error} The created error. - */ -function AxiosError(message, code, config, request, response) { - Error.call(this); - this.message = message; - this.name = 'AxiosError'; - code && (this.code = code); - config && (this.config = config); - request && (this.request = request); - response && (this.response = response); -} - -utils.inherits(AxiosError, Error, { - toJSON: function toJSON() { - return { - // Standard - message: this.message, - name: this.name, - // Microsoft - description: this.description, - number: this.number, - // Mozilla - fileName: this.fileName, - lineNumber: this.lineNumber, - columnNumber: this.columnNumber, - stack: this.stack, - // Axios - config: this.config, - code: this.code, - status: this.response && this.response.status ? this.response.status : null - }; - } -}); - -var prototype = AxiosError.prototype; -var descriptors = {}; - -[ - 'ERR_BAD_OPTION_VALUE', - 'ERR_BAD_OPTION', - 'ECONNABORTED', - 'ETIMEDOUT', - 'ERR_NETWORK', - 'ERR_FR_TOO_MANY_REDIRECTS', - 'ERR_DEPRECATED', - 'ERR_BAD_RESPONSE', - 'ERR_BAD_REQUEST', - 'ERR_CANCELED' -// eslint-disable-next-line func-names -].forEach(function(code) { - descriptors[code] = {value: code}; -}); - -Object.defineProperties(AxiosError, descriptors); -Object.defineProperty(prototype, 'isAxiosError', {value: true}); - -// eslint-disable-next-line func-names -AxiosError.from = function(error, code, config, request, response, customProps) { - var axiosError = Object.create(prototype); - - utils.toFlatObject(error, axiosError, function filter(obj) { - return obj !== Error.prototype; - }); - - AxiosError.call(axiosError, error.message, code, config, request, response); - - axiosError.name = error.name; - - customProps && Object.assign(axiosError, customProps); - - return axiosError; -}; - -module.exports = AxiosError; - -}, function(modId) { var map = {"../utils":1758268322065}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322075, function(require, module, exports) { - - -module.exports = { - silentJSONParsing: true, - forcedJSONParsing: true, - clarifyTimeoutError: false -}; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322076, function(require, module, exports) { - - -var utils = require('../utils'); - -/** - * Convert a data object to FormData - * @param {Object} obj - * @param {?Object} [formData] - * @returns {Object} - **/ - -function toFormData(obj, formData) { - // eslint-disable-next-line no-param-reassign - formData = formData || new FormData(); - - var stack = []; - - function convertValue(value) { - if (value === null) return ''; - - if (utils.isDate(value)) { - return value.toISOString(); - } - - if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) { - return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); - } - - return value; - } - - function build(data, parentKey) { - if (utils.isPlainObject(data) || utils.isArray(data)) { - if (stack.indexOf(data) !== -1) { - throw Error('Circular reference detected in ' + parentKey); - } - - stack.push(data); - - utils.forEach(data, function each(value, key) { - if (utils.isUndefined(value)) return; - var fullKey = parentKey ? parentKey + '.' + key : key; - var arr; - - if (value && !parentKey && typeof value === 'object') { - if (utils.endsWith(key, '{}')) { - // eslint-disable-next-line no-param-reassign - value = JSON.stringify(value); - } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) { - // eslint-disable-next-line func-names - arr.forEach(function(el) { - !utils.isUndefined(el) && formData.append(fullKey, convertValue(el)); - }); - return; - } - } - - build(value, fullKey); - }); - - stack.pop(); - } else { - formData.append(parentKey, convertValue(data)); - } - } - - build(obj); - - return formData; -} - -module.exports = toFormData; - -}, function(modId) { var map = {"../utils":1758268322065}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322077, function(require, module, exports) { - - -var utils = require('./../utils'); -var settle = require('./../core/settle'); -var cookies = require('./../helpers/cookies'); -var buildURL = require('./../helpers/buildURL'); -var buildFullPath = require('../core/buildFullPath'); -var parseHeaders = require('./../helpers/parseHeaders'); -var isURLSameOrigin = require('./../helpers/isURLSameOrigin'); -var transitionalDefaults = require('../defaults/transitional'); -var AxiosError = require('../core/AxiosError'); -var CanceledError = require('../cancel/CanceledError'); -var parseProtocol = require('../helpers/parseProtocol'); - -module.exports = function xhrAdapter(config) { - return new Promise(function dispatchXhrRequest(resolve, reject) { - var requestData = config.data; - var requestHeaders = config.headers; - var responseType = config.responseType; - var onCanceled; - function done() { - if (config.cancelToken) { - config.cancelToken.unsubscribe(onCanceled); - } - - if (config.signal) { - config.signal.removeEventListener('abort', onCanceled); - } - } - - if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) { - delete requestHeaders['Content-Type']; // Let the browser set it - } - - var request = new XMLHttpRequest(); - - // HTTP basic authentication - if (config.auth) { - var username = config.auth.username || ''; - var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; - requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); - } - - var fullPath = buildFullPath(config.baseURL, config.url); - - request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); - - // Set the request timeout in MS - request.timeout = config.timeout; - - function onloadend() { - if (!request) { - return; - } - // Prepare the response - var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; - var responseData = !responseType || responseType === 'text' || responseType === 'json' ? - request.responseText : request.response; - var response = { - data: responseData, - status: request.status, - statusText: request.statusText, - headers: responseHeaders, - config: config, - request: request - }; - - settle(function _resolve(value) { - resolve(value); - done(); - }, function _reject(err) { - reject(err); - done(); - }, response); - - // Clean up request - request = null; - } - - if ('onloadend' in request) { - // Use onloadend if available - request.onloadend = onloadend; - } else { - // Listen for ready state to emulate onloadend - request.onreadystatechange = function handleLoad() { - if (!request || request.readyState !== 4) { - return; - } - - // The request errored out and we didn't get a response, this will be - // handled by onerror instead - // With one exception: request that using file: protocol, most browsers - // will return status as 0 even though it's a successful request - if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { - return; - } - // readystate handler is calling before onerror or ontimeout handlers, - // so we should call onloadend on the next 'tick' - setTimeout(onloadend); - }; - } - - // Handle browser request cancellation (as opposed to a manual cancellation) - request.onabort = function handleAbort() { - if (!request) { - return; - } - - reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); - - // Clean up request - request = null; - }; - - // Handle low level network errors - request.onerror = function handleError() { - // Real errors are hidden from us by the browser - // onerror should only fire if it's a network error - reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request)); - - // Clean up request - request = null; - }; - - // Handle timeout - request.ontimeout = function handleTimeout() { - var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded'; - var transitional = config.transitional || transitionalDefaults; - if (config.timeoutErrorMessage) { - timeoutErrorMessage = config.timeoutErrorMessage; - } - reject(new AxiosError( - timeoutErrorMessage, - transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, - config, - request)); - - // Clean up request - request = null; - }; - - // Add xsrf header - // This is only done if running in a standard browser environment. - // Specifically not if we're in a web worker, or react-native. - if (utils.isStandardBrowserEnv()) { - // Add xsrf header - var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? - cookies.read(config.xsrfCookieName) : - undefined; - - if (xsrfValue) { - requestHeaders[config.xsrfHeaderName] = xsrfValue; - } - } - - // Add headers to the request - if ('setRequestHeader' in request) { - utils.forEach(requestHeaders, function setRequestHeader(val, key) { - if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { - // Remove Content-Type if data is undefined - delete requestHeaders[key]; - } else { - // Otherwise add header to the request - request.setRequestHeader(key, val); - } - }); - } - - // Add withCredentials to request if needed - if (!utils.isUndefined(config.withCredentials)) { - request.withCredentials = !!config.withCredentials; - } - - // Add responseType to request if needed - if (responseType && responseType !== 'json') { - request.responseType = config.responseType; - } - - // Handle progress if needed - if (typeof config.onDownloadProgress === 'function') { - request.addEventListener('progress', config.onDownloadProgress); - } - - // Not all browsers support upload events - if (typeof config.onUploadProgress === 'function' && request.upload) { - request.upload.addEventListener('progress', config.onUploadProgress); - } - - if (config.cancelToken || config.signal) { - // Handle cancellation - // eslint-disable-next-line func-names - onCanceled = function(cancel) { - if (!request) { - return; - } - reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel); - request.abort(); - request = null; - }; - - config.cancelToken && config.cancelToken.subscribe(onCanceled); - if (config.signal) { - config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled); - } - } - - if (!requestData) { - requestData = null; - } - - var protocol = parseProtocol(fullPath); - - if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) { - reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); - return; - } - - - // Send the request - request.send(requestData); - }); -}; - -}, function(modId) { var map = {"./../utils":1758268322065,"./../core/settle":1758268322078,"./../helpers/cookies":1758268322079,"./../helpers/buildURL":1758268322068,"../core/buildFullPath":1758268322080,"./../helpers/parseHeaders":1758268322083,"./../helpers/isURLSameOrigin":1758268322084,"../defaults/transitional":1758268322075,"../core/AxiosError":1758268322074,"../cancel/CanceledError":1758268322085,"../helpers/parseProtocol":1758268322086}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322078, function(require, module, exports) { - - -var AxiosError = require('./AxiosError'); - -/** - * Resolve or reject a Promise based on response status. - * - * @param {Function} resolve A function that resolves the promise. - * @param {Function} reject A function that rejects the promise. - * @param {object} response The response. - */ -module.exports = function settle(resolve, reject, response) { - var validateStatus = response.config.validateStatus; - if (!response.status || !validateStatus || validateStatus(response.status)) { - resolve(response); - } else { - reject(new AxiosError( - 'Request failed with status code ' + response.status, - [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], - response.config, - response.request, - response - )); - } -}; - -}, function(modId) { var map = {"./AxiosError":1758268322074}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322079, function(require, module, exports) { - - -var utils = require('./../utils'); - -module.exports = ( - utils.isStandardBrowserEnv() ? - - // Standard browser envs support document.cookie - (function standardBrowserEnv() { - return { - write: function write(name, value, expires, path, domain, secure) { - var cookie = []; - cookie.push(name + '=' + encodeURIComponent(value)); - - if (utils.isNumber(expires)) { - cookie.push('expires=' + new Date(expires).toGMTString()); - } - - if (utils.isString(path)) { - cookie.push('path=' + path); - } - - if (utils.isString(domain)) { - cookie.push('domain=' + domain); - } - - if (secure === true) { - cookie.push('secure'); - } - - document.cookie = cookie.join('; '); - }, - - read: function read(name) { - var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); - return (match ? decodeURIComponent(match[3]) : null); - }, - - remove: function remove(name) { - this.write(name, '', Date.now() - 86400000); - } - }; - })() : - - // Non standard browser env (web workers, react-native) lack needed support. - (function nonStandardBrowserEnv() { - return { - write: function write() {}, - read: function read() { return null; }, - remove: function remove() {} - }; - })() -); - -}, function(modId) { var map = {"./../utils":1758268322065}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322080, function(require, module, exports) { - - -var isAbsoluteURL = require('../helpers/isAbsoluteURL'); -var combineURLs = require('../helpers/combineURLs'); - -/** - * Creates a new URL by combining the baseURL with the requestedURL, - * only when the requestedURL is not already an absolute URL. - * If the requestURL is absolute, this function returns the requestedURL untouched. - * - * @param {string} baseURL The base URL - * @param {string} requestedURL Absolute or relative URL to combine - * @returns {string} The combined full path - */ -module.exports = function buildFullPath(baseURL, requestedURL) { - if (baseURL && !isAbsoluteURL(requestedURL)) { - return combineURLs(baseURL, requestedURL); - } - return requestedURL; -}; - -}, function(modId) { var map = {"../helpers/isAbsoluteURL":1758268322081,"../helpers/combineURLs":1758268322082}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322081, function(require, module, exports) { - - -/** - * Determines whether the specified URL is absolute - * - * @param {string} url The URL to test - * @returns {boolean} True if the specified URL is absolute, otherwise false - */ -module.exports = function isAbsoluteURL(url) { - // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). - // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed - // by any combination of letters, digits, plus, period, or hyphen. - return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); -}; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322082, function(require, module, exports) { - - -/** - * Creates a new URL by combining the specified URLs - * - * @param {string} baseURL The base URL - * @param {string} relativeURL The relative URL - * @returns {string} The combined URL - */ -module.exports = function combineURLs(baseURL, relativeURL) { - return relativeURL - ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') - : baseURL; -}; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322083, function(require, module, exports) { - - -var utils = require('./../utils'); - -// Headers whose duplicates are ignored by node -// c.f. https://nodejs.org/api/http.html#http_message_headers -var ignoreDuplicateOf = [ - 'age', 'authorization', 'content-length', 'content-type', 'etag', - 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', - 'last-modified', 'location', 'max-forwards', 'proxy-authorization', - 'referer', 'retry-after', 'user-agent' -]; - -/** - * Parse headers into an object - * - * ``` - * Date: Wed, 27 Aug 2014 08:58:49 GMT - * Content-Type: application/json - * Connection: keep-alive - * Transfer-Encoding: chunked - * ``` - * - * @param {String} headers Headers needing to be parsed - * @returns {Object} Headers parsed into an object - */ -module.exports = function parseHeaders(headers) { - var parsed = {}; - var key; - var val; - var i; - - if (!headers) { return parsed; } - - utils.forEach(headers.split('\n'), function parser(line) { - i = line.indexOf(':'); - key = utils.trim(line.substr(0, i)).toLowerCase(); - val = utils.trim(line.substr(i + 1)); - - if (key) { - if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { - return; - } - if (key === 'set-cookie') { - parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); - } else { - parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; - } - } - }); - - return parsed; -}; - -}, function(modId) { var map = {"./../utils":1758268322065}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322084, function(require, module, exports) { - - -var utils = require('./../utils'); - -module.exports = ( - utils.isStandardBrowserEnv() ? - - // Standard browser envs have full support of the APIs needed to test - // whether the request URL is of the same origin as current location. - (function standardBrowserEnv() { - var msie = /(msie|trident)/i.test(navigator.userAgent); - var urlParsingNode = document.createElement('a'); - var originURL; - - /** - * Parse a URL to discover it's components - * - * @param {String} url The URL to be parsed - * @returns {Object} - */ - function resolveURL(url) { - var href = url; - - if (msie) { - // IE needs attribute set twice to normalize properties - urlParsingNode.setAttribute('href', href); - href = urlParsingNode.href; - } - - urlParsingNode.setAttribute('href', href); - - // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils - return { - href: urlParsingNode.href, - protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', - host: urlParsingNode.host, - search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', - hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', - hostname: urlParsingNode.hostname, - port: urlParsingNode.port, - pathname: (urlParsingNode.pathname.charAt(0) === '/') ? - urlParsingNode.pathname : - '/' + urlParsingNode.pathname - }; - } - - originURL = resolveURL(window.location.href); - - /** - * Determine if a URL shares the same origin as the current location - * - * @param {String} requestURL The URL to test - * @returns {boolean} True if URL shares the same origin, otherwise false - */ - return function isURLSameOrigin(requestURL) { - var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; - return (parsed.protocol === originURL.protocol && - parsed.host === originURL.host); - }; - })() : - - // Non standard browser envs (web workers, react-native) lack needed support. - (function nonStandardBrowserEnv() { - return function isURLSameOrigin() { - return true; - }; - })() -); - -}, function(modId) { var map = {"./../utils":1758268322065}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322085, function(require, module, exports) { - - -var AxiosError = require('../core/AxiosError'); -var utils = require('../utils'); - -/** - * A `CanceledError` is an object that is thrown when an operation is canceled. - * - * @class - * @param {string=} message The message. - */ -function CanceledError(message) { - // eslint-disable-next-line no-eq-null,eqeqeq - AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED); - this.name = 'CanceledError'; -} - -utils.inherits(CanceledError, AxiosError, { - __CANCEL__: true -}); - -module.exports = CanceledError; - -}, function(modId) { var map = {"../core/AxiosError":1758268322074,"../utils":1758268322065}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322086, function(require, module, exports) { - - -module.exports = function parseProtocol(url) { - var match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); - return match && match[1] || ''; -}; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322087, function(require, module, exports) { - - -var utils = require('./../utils'); -var settle = require('./../core/settle'); -var buildFullPath = require('../core/buildFullPath'); -var buildURL = require('./../helpers/buildURL'); -var http = require('http'); -var https = require('https'); -var httpFollow = require('follow-redirects').http; -var httpsFollow = require('follow-redirects').https; -var url = require('url'); -var zlib = require('zlib'); -var VERSION = require('./../env/data').version; -var transitionalDefaults = require('../defaults/transitional'); -var AxiosError = require('../core/AxiosError'); -var CanceledError = require('../cancel/CanceledError'); - -var isHttps = /https:?/; - -var supportedProtocols = [ 'http:', 'https:', 'file:' ]; - -/** - * - * @param {http.ClientRequestArgs} options - * @param {AxiosProxyConfig} proxy - * @param {string} location - */ -function setProxy(options, proxy, location) { - options.hostname = proxy.host; - options.host = proxy.host; - options.port = proxy.port; - options.path = location; - - // Basic proxy authorization - if (proxy.auth) { - var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64'); - options.headers['Proxy-Authorization'] = 'Basic ' + base64; - } - - // If a proxy is used, any redirects must also pass through the proxy - options.beforeRedirect = function beforeRedirect(redirection) { - redirection.headers.host = redirection.host; - setProxy(redirection, proxy, redirection.href); - }; -} - -/*eslint consistent-return:0*/ -module.exports = function httpAdapter(config) { - return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) { - var onCanceled; - function done() { - if (config.cancelToken) { - config.cancelToken.unsubscribe(onCanceled); - } - - if (config.signal) { - config.signal.removeEventListener('abort', onCanceled); - } - } - var resolve = function resolve(value) { - done(); - resolvePromise(value); - }; - var rejected = false; - var reject = function reject(value) { - done(); - rejected = true; - rejectPromise(value); - }; - var data = config.data; - var headers = config.headers; - var headerNames = {}; - - Object.keys(headers).forEach(function storeLowerName(name) { - headerNames[name.toLowerCase()] = name; - }); - - // Set User-Agent (required by some servers) - // See https://github.com/axios/axios/issues/69 - if ('user-agent' in headerNames) { - // User-Agent is specified; handle case where no UA header is desired - if (!headers[headerNames['user-agent']]) { - delete headers[headerNames['user-agent']]; - } - // Otherwise, use specified value - } else { - // Only set header if it hasn't been set in config - headers['User-Agent'] = 'axios/' + VERSION; - } - - // support for https://www.npmjs.com/package/form-data api - if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) { - Object.assign(headers, data.getHeaders()); - } else if (data && !utils.isStream(data)) { - if (Buffer.isBuffer(data)) { - // Nothing to do... - } else if (utils.isArrayBuffer(data)) { - data = Buffer.from(new Uint8Array(data)); - } else if (utils.isString(data)) { - data = Buffer.from(data, 'utf-8'); - } else { - return reject(new AxiosError( - 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream', - AxiosError.ERR_BAD_REQUEST, - config - )); - } - - if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) { - return reject(new AxiosError( - 'Request body larger than maxBodyLength limit', - AxiosError.ERR_BAD_REQUEST, - config - )); - } - - // Add Content-Length header if data exists - if (!headerNames['content-length']) { - headers['Content-Length'] = data.length; - } - } - - // HTTP basic authentication - var auth = undefined; - if (config.auth) { - var username = config.auth.username || ''; - var password = config.auth.password || ''; - auth = username + ':' + password; - } - - // Parse url - var fullPath = buildFullPath(config.baseURL, config.url); - var parsed = url.parse(fullPath); - var protocol = parsed.protocol || supportedProtocols[0]; - - if (supportedProtocols.indexOf(protocol) === -1) { - return reject(new AxiosError( - 'Unsupported protocol ' + protocol, - AxiosError.ERR_BAD_REQUEST, - config - )); - } - - if (!auth && parsed.auth) { - var urlAuth = parsed.auth.split(':'); - var urlUsername = urlAuth[0] || ''; - var urlPassword = urlAuth[1] || ''; - auth = urlUsername + ':' + urlPassword; - } - - if (auth && headerNames.authorization) { - delete headers[headerNames.authorization]; - } - - var isHttpsRequest = isHttps.test(protocol); - var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; - - try { - buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\?/, ''); - } catch (err) { - var customErr = new Error(err.message); - customErr.config = config; - customErr.url = config.url; - customErr.exists = true; - reject(customErr); - } - - var options = { - path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\?/, ''), - method: config.method.toUpperCase(), - headers: headers, - agent: agent, - agents: { http: config.httpAgent, https: config.httpsAgent }, - auth: auth - }; - - if (config.socketPath) { - options.socketPath = config.socketPath; - } else { - options.hostname = parsed.hostname; - options.port = parsed.port; - } - - var proxy = config.proxy; - if (!proxy && proxy !== false) { - var proxyEnv = protocol.slice(0, -1) + '_proxy'; - var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()]; - if (proxyUrl) { - var parsedProxyUrl = url.parse(proxyUrl); - var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY; - var shouldProxy = true; - - if (noProxyEnv) { - var noProxy = noProxyEnv.split(',').map(function trim(s) { - return s.trim(); - }); - - shouldProxy = !noProxy.some(function proxyMatch(proxyElement) { - if (!proxyElement) { - return false; - } - if (proxyElement === '*') { - return true; - } - if (proxyElement[0] === '.' && - parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) { - return true; - } - - return parsed.hostname === proxyElement; - }); - } - - if (shouldProxy) { - proxy = { - host: parsedProxyUrl.hostname, - port: parsedProxyUrl.port, - protocol: parsedProxyUrl.protocol - }; - - if (parsedProxyUrl.auth) { - var proxyUrlAuth = parsedProxyUrl.auth.split(':'); - proxy.auth = { - username: proxyUrlAuth[0], - password: proxyUrlAuth[1] - }; - } - } - } - } - - if (proxy) { - options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : ''); - setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path); - } - - var transport; - var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true); - if (config.transport) { - transport = config.transport; - } else if (config.maxRedirects === 0) { - transport = isHttpsProxy ? https : http; - } else { - if (config.maxRedirects) { - options.maxRedirects = config.maxRedirects; - } - if (config.beforeRedirect) { - options.beforeRedirect = config.beforeRedirect; - } - transport = isHttpsProxy ? httpsFollow : httpFollow; - } - - if (config.maxBodyLength > -1) { - options.maxBodyLength = config.maxBodyLength; - } - - if (config.insecureHTTPParser) { - options.insecureHTTPParser = config.insecureHTTPParser; - } - - // Create the request - var req = transport.request(options, function handleResponse(res) { - if (req.aborted) return; - - // uncompress the response body transparently if required - var stream = res; - - // return the last request in case of redirects - var lastRequest = res.req || req; - - - // if no content, is HEAD request or decompress disabled we should not decompress - if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) { - switch (res.headers['content-encoding']) { - /*eslint default-case:0*/ - case 'gzip': - case 'compress': - case 'deflate': - // add the unzipper to the body stream processing pipeline - stream = stream.pipe(zlib.createUnzip()); - - // remove the content-encoding in order to not confuse downstream operations - delete res.headers['content-encoding']; - break; - } - } - - var response = { - status: res.statusCode, - statusText: res.statusMessage, - headers: res.headers, - config: config, - request: lastRequest - }; - - if (config.responseType === 'stream') { - response.data = stream; - settle(resolve, reject, response); - } else { - var responseBuffer = []; - var totalResponseBytes = 0; - stream.on('data', function handleStreamData(chunk) { - responseBuffer.push(chunk); - totalResponseBytes += chunk.length; - - // make sure the content length is not over the maxContentLength if specified - if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) { - // stream.destoy() emit aborted event before calling reject() on Node.js v16 - rejected = true; - stream.destroy(); - reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded', - AxiosError.ERR_BAD_RESPONSE, config, lastRequest)); - } - }); - - stream.on('aborted', function handlerStreamAborted() { - if (rejected) { - return; - } - stream.destroy(); - reject(new AxiosError( - 'maxContentLength size of ' + config.maxContentLength + ' exceeded', - AxiosError.ERR_BAD_RESPONSE, - config, - lastRequest - )); - }); - - stream.on('error', function handleStreamError(err) { - if (req.aborted) return; - reject(AxiosError.from(err, null, config, lastRequest)); - }); - - stream.on('end', function handleStreamEnd() { - try { - var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer); - if (config.responseType !== 'arraybuffer') { - responseData = responseData.toString(config.responseEncoding); - if (!config.responseEncoding || config.responseEncoding === 'utf8') { - responseData = utils.stripBOM(responseData); - } - } - response.data = responseData; - } catch (err) { - reject(AxiosError.from(err, null, config, response.request, response)); - } - settle(resolve, reject, response); - }); - } - }); - - // Handle errors - req.on('error', function handleRequestError(err) { - // @todo remove - // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return; - reject(AxiosError.from(err, null, config, req)); - }); - - // set tcp keep alive to prevent drop connection by peer - req.on('socket', function handleRequestSocket(socket) { - // default interval of sending ack packet is 1 minute - socket.setKeepAlive(true, 1000 * 60); - }); - - // Handle request timeout - if (config.timeout) { - // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types. - var timeout = parseInt(config.timeout, 10); - - if (isNaN(timeout)) { - reject(new AxiosError( - 'error trying to parse `config.timeout` to int', - AxiosError.ERR_BAD_OPTION_VALUE, - config, - req - )); - - return; - } - - // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system. - // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET. - // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up. - // And then these socket which be hang up will devoring CPU little by little. - // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect. - req.setTimeout(timeout, function handleRequestTimeout() { - req.abort(); - var transitional = config.transitional || transitionalDefaults; - reject(new AxiosError( - 'timeout of ' + timeout + 'ms exceeded', - transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, - config, - req - )); - }); - } - - if (config.cancelToken || config.signal) { - // Handle cancellation - // eslint-disable-next-line func-names - onCanceled = function(cancel) { - if (req.aborted) return; - - req.abort(); - reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel); - }; - - config.cancelToken && config.cancelToken.subscribe(onCanceled); - if (config.signal) { - config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled); - } - } - - - // Send the request - if (utils.isStream(data)) { - data.on('error', function handleStreamError(err) { - reject(AxiosError.from(err, config, null, req)); - }).pipe(req); - } else { - req.end(data); - } - }); -}; - -}, function(modId) { var map = {"./../utils":1758268322065,"./../core/settle":1758268322078,"../core/buildFullPath":1758268322080,"./../helpers/buildURL":1758268322068,"http":1758268322087,"./../env/data":1758268322088,"../defaults/transitional":1758268322075,"../core/AxiosError":1758268322074,"../cancel/CanceledError":1758268322085}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322088, function(require, module, exports) { -module.exports = { - "version": "0.27.2" -}; -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322089, function(require, module, exports) { -// eslint-disable-next-line strict -module.exports = require('form-data'); - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322090, function(require, module, exports) { - - -module.exports = function isCancel(value) { - return !!(value && value.__CANCEL__); -}; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322091, function(require, module, exports) { - - -var utils = require('../utils'); - -/** - * Config-specific merge-function which creates a new config-object - * by merging two configuration objects together. - * - * @param {Object} config1 - * @param {Object} config2 - * @returns {Object} New object resulting from merging config2 to config1 - */ -module.exports = function mergeConfig(config1, config2) { - // eslint-disable-next-line no-param-reassign - config2 = config2 || {}; - var config = {}; - - function getMergedValue(target, source) { - if (utils.isPlainObject(target) && utils.isPlainObject(source)) { - return utils.merge(target, source); - } else if (utils.isPlainObject(source)) { - return utils.merge({}, source); - } else if (utils.isArray(source)) { - return source.slice(); - } - return source; - } - - // eslint-disable-next-line consistent-return - function mergeDeepProperties(prop) { - if (!utils.isUndefined(config2[prop])) { - return getMergedValue(config1[prop], config2[prop]); - } else if (!utils.isUndefined(config1[prop])) { - return getMergedValue(undefined, config1[prop]); - } - } - - // eslint-disable-next-line consistent-return - function valueFromConfig2(prop) { - if (!utils.isUndefined(config2[prop])) { - return getMergedValue(undefined, config2[prop]); - } - } - - // eslint-disable-next-line consistent-return - function defaultToConfig2(prop) { - if (!utils.isUndefined(config2[prop])) { - return getMergedValue(undefined, config2[prop]); - } else if (!utils.isUndefined(config1[prop])) { - return getMergedValue(undefined, config1[prop]); - } - } - - // eslint-disable-next-line consistent-return - function mergeDirectKeys(prop) { - if (prop in config2) { - return getMergedValue(config1[prop], config2[prop]); - } else if (prop in config1) { - return getMergedValue(undefined, config1[prop]); - } - } - - var mergeMap = { - 'url': valueFromConfig2, - 'method': valueFromConfig2, - 'data': valueFromConfig2, - 'baseURL': defaultToConfig2, - 'transformRequest': defaultToConfig2, - 'transformResponse': defaultToConfig2, - 'paramsSerializer': defaultToConfig2, - 'timeout': defaultToConfig2, - 'timeoutMessage': defaultToConfig2, - 'withCredentials': defaultToConfig2, - 'adapter': defaultToConfig2, - 'responseType': defaultToConfig2, - 'xsrfCookieName': defaultToConfig2, - 'xsrfHeaderName': defaultToConfig2, - 'onUploadProgress': defaultToConfig2, - 'onDownloadProgress': defaultToConfig2, - 'decompress': defaultToConfig2, - 'maxContentLength': defaultToConfig2, - 'maxBodyLength': defaultToConfig2, - 'beforeRedirect': defaultToConfig2, - 'transport': defaultToConfig2, - 'httpAgent': defaultToConfig2, - 'httpsAgent': defaultToConfig2, - 'cancelToken': defaultToConfig2, - 'socketPath': defaultToConfig2, - 'responseEncoding': defaultToConfig2, - 'validateStatus': mergeDirectKeys - }; - - utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) { - var merge = mergeMap[prop] || mergeDeepProperties; - var configValue = merge(prop); - (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); - }); - - return config; -}; - -}, function(modId) { var map = {"../utils":1758268322065}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322092, function(require, module, exports) { - - -var VERSION = require('../env/data').version; -var AxiosError = require('../core/AxiosError'); - -var validators = {}; - -// eslint-disable-next-line func-names -['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) { - validators[type] = function validator(thing) { - return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; - }; -}); - -var deprecatedWarnings = {}; - -/** - * Transitional option validator - * @param {function|boolean?} validator - set to false if the transitional option has been removed - * @param {string?} version - deprecated version / removed since version - * @param {string?} message - some message with additional info - * @returns {function} - */ -validators.transitional = function transitional(validator, version, message) { - function formatMessage(opt, desc) { - return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : ''); - } - - // eslint-disable-next-line func-names - return function(value, opt, opts) { - if (validator === false) { - throw new AxiosError( - formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), - AxiosError.ERR_DEPRECATED - ); - } - - if (version && !deprecatedWarnings[opt]) { - deprecatedWarnings[opt] = true; - // eslint-disable-next-line no-console - console.warn( - formatMessage( - opt, - ' has been deprecated since v' + version + ' and will be removed in the near future' - ) - ); - } - - return validator ? validator(value, opt, opts) : true; - }; -}; - -/** - * Assert object's properties type - * @param {object} options - * @param {object} schema - * @param {boolean?} allowUnknown - */ - -function assertOptions(options, schema, allowUnknown) { - if (typeof options !== 'object') { - throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); - } - var keys = Object.keys(options); - var i = keys.length; - while (i-- > 0) { - var opt = keys[i]; - var validator = schema[opt]; - if (validator) { - var value = options[opt]; - var result = value === undefined || validator(value, opt, options); - if (result !== true) { - throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE); - } - continue; - } - if (allowUnknown !== true) { - throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); - } - } -} - -module.exports = { - assertOptions: assertOptions, - validators: validators -}; - -}, function(modId) { var map = {"../env/data":1758268322088,"../core/AxiosError":1758268322074}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322093, function(require, module, exports) { - - -var CanceledError = require('./CanceledError'); - -/** - * A `CancelToken` is an object that can be used to request cancellation of an operation. - * - * @class - * @param {Function} executor The executor function. - */ -function CancelToken(executor) { - if (typeof executor !== 'function') { - throw new TypeError('executor must be a function.'); - } - - var resolvePromise; - - this.promise = new Promise(function promiseExecutor(resolve) { - resolvePromise = resolve; - }); - - var token = this; - - // eslint-disable-next-line func-names - this.promise.then(function(cancel) { - if (!token._listeners) return; - - var i; - var l = token._listeners.length; - - for (i = 0; i < l; i++) { - token._listeners[i](cancel); - } - token._listeners = null; - }); - - // eslint-disable-next-line func-names - this.promise.then = function(onfulfilled) { - var _resolve; - // eslint-disable-next-line func-names - var promise = new Promise(function(resolve) { - token.subscribe(resolve); - _resolve = resolve; - }).then(onfulfilled); - - promise.cancel = function reject() { - token.unsubscribe(_resolve); - }; - - return promise; - }; - - executor(function cancel(message) { - if (token.reason) { - // Cancellation has already been requested - return; - } - - token.reason = new CanceledError(message); - resolvePromise(token.reason); - }); -} - -/** - * Throws a `CanceledError` if cancellation has been requested. - */ -CancelToken.prototype.throwIfRequested = function throwIfRequested() { - if (this.reason) { - throw this.reason; - } -}; - -/** - * Subscribe to the cancel signal - */ - -CancelToken.prototype.subscribe = function subscribe(listener) { - if (this.reason) { - listener(this.reason); - return; - } - - if (this._listeners) { - this._listeners.push(listener); - } else { - this._listeners = [listener]; - } -}; - -/** - * Unsubscribe from the cancel signal - */ - -CancelToken.prototype.unsubscribe = function unsubscribe(listener) { - if (!this._listeners) { - return; - } - var index = this._listeners.indexOf(listener); - if (index !== -1) { - this._listeners.splice(index, 1); - } -}; - -/** - * Returns an object that contains a new `CancelToken` and a function that, when called, - * cancels the `CancelToken`. - */ -CancelToken.source = function source() { - var cancel; - var token = new CancelToken(function executor(c) { - cancel = c; - }); - return { - token: token, - cancel: cancel - }; -}; - -module.exports = CancelToken; - -}, function(modId) { var map = {"./CanceledError":1758268322085}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322094, function(require, module, exports) { - - -/** - * Syntactic sugar for invoking a function and expanding an array for arguments. - * - * Common use case would be to use `Function.prototype.apply`. - * - * ```js - * function f(x, y, z) {} - * var args = [1, 2, 3]; - * f.apply(null, args); - * ``` - * - * With `spread` this example can be re-written. - * - * ```js - * spread(function(x, y, z) {})([1, 2, 3]); - * ``` - * - * @param {Function} callback - * @returns {Function} - */ -module.exports = function spread(callback) { - return function wrap(arr) { - return callback.apply(null, arr); - }; -}; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322095, function(require, module, exports) { - - -var utils = require('./../utils'); - -/** - * Determines whether the payload is an error thrown by Axios - * - * @param {*} payload The value to test - * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false - */ -module.exports = function isAxiosError(payload) { - return utils.isObject(payload) && (payload.isAxiosError === true); -}; - -}, function(modId) { var map = {"./../utils":1758268322065}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322063); -})() -//miniprogram-npm-outsideDeps=["https","follow-redirects","url","zlib","form-data"] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/axios/index.js.map b/government-mini-program/miniprogram_npm/axios/index.js.map deleted file mode 100644 index 747e861..0000000 --- a/government-mini-program/miniprogram_npm/axios/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js","lib/axios.js","lib/utils.js","lib/helpers/bind.js","lib/core/Axios.js","lib/helpers/buildURL.js","lib/core/InterceptorManager.js","lib/core/dispatchRequest.js","lib/core/transformData.js","lib/defaults/index.js","lib/helpers/normalizeHeaderName.js","lib/core/AxiosError.js","lib/defaults/transitional.js","lib/helpers/toFormData.js","lib/adapters/xhr.js","lib/core/settle.js","lib/helpers/cookies.js","lib/core/buildFullPath.js","lib/helpers/isAbsoluteURL.js","lib/helpers/combineURLs.js","lib/helpers/parseHeaders.js","lib/helpers/isURLSameOrigin.js","lib/cancel/CanceledError.js","lib/helpers/parseProtocol.js","lib/adapters/http.js","lib/env/data.js","lib/defaults/env/FormData.js","lib/cancel/isCancel.js","lib/core/mergeConfig.js","lib/helpers/validator.js","lib/cancel/CancelToken.js","lib/helpers/spread.js","lib/helpers/isAxiosError.js"],"names":[],"mappings":";;;;;;;AAAA;;;ACAA;AACA;AACA;AACA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,AENA,ADGA;ADIA,AENA,ADGA;ADIA,AENA,ADGA;ADIA,AGTA,ADGA,ADGA;ADIA,AGTA,ADGA,ADGA;ADIA,AGTA,ADGA,ADGA;ADIA,AGTA,ADGA,AENA,AHSA;ADIA,AGTA,ADGA,AENA,AHSA;ADIA,AGTA,ADGA,AENA,AHSA;ADIA,AGTA,AENA,AHSA,AENA,AHSA;ADIA,AGTA,AENA,AHSA,AENA,AHSA;ADIA,AGTA,AENA,AHSA,AENA,AHSA;ADIA,AGTA,AENA,ACHA,AFMA,AHSA;ADIA,AGTA,AENA,ACHA,AFMA,AHSA;ADIA,AGTA,AENA,ACHA,AFMA,AHSA;ADIA,AGTA,AENA,ACHA,ACHA,AHSA,AHSA;ADIA,AGTA,AENA,ACHA,ACHA,AHSA,AHSA;ADIA,AGTA,AENA,ACHA,ACHA,AHSA,AHSA;ADIA,AGTA,AENA,ACHA,ACHA,ACHA,AJYA,AHSA;ADIA,AGTA,AENA,ACHA,ACHA,ACHA,AJYA,AHSA;ADIA,AGTA,AENA,ACHA,ACHA,ACHA,AJYA,AHSA;ADIA,AGTA,AENA,ACHA,ACHA,ACHA,AJYA,AKfA,ARwBA;ADIA,AGTA,AENA,ACHA,ACHA,ACHA,AJYA,AKfA,ARwBA;ADIA,AGTA,AENA,ACHA,ACHA,ACHA,AJYA,AKfA,ARwBA;ADIA,AGTA,AOrBA,ALeA,ACHA,ACHA,ACHA,AJYA,AKfA,ARwBA;ADIA,AGTA,AOrBA,ALeA,ACHA,ACHA,ACHA,AJYA,AKfA,ARwBA;ADIA,AGTA,AOrBA,ALeA,ACHA,ACHA,ACHA,AJYA,AKfA,ARwBA;ADIA,AGTA,AOrBA,ALeA,ACHA,ACHA,ACHA,AGTA,APqBA,AKfA,ARwBA;ADIA,AGTA,AOrBA,ALeA,ACHA,ACHA,ACHA,AGTA,APqBA,AKfA,ARwBA;ADIA,AGTA,AOrBA,ALeA,ACHA,ACHA,ACHA,AGTA,APqBA,AKfA,ARwBA;ADIA,AGTA,AOrBA,ALeA,ACHA,ACHA,ACHA,AGTA,APqBA,AKfA,AGTA,AXiCA;ADIA,AGTA,AOrBA,ALeA,ACHA,ACHA,ACHA,AGTA,APqBA,AKfA,AGTA,AXiCA;ADIA,AGTA,AOrBA,ALeA,ACHA,ACHA,ACHA,AGTA,APqBA,AKfA,AGTA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,ACHA,ACHA,ACHA,AGTA,APqBA,AKfA,AGTA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,ACHA,ACHA,ACHA,AGTA,APqBA,AQxBA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,ACHA,ACHA,ACHA,AJYA,AQxBA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,ACHA,AQxBA,APqBA,ACHA,AJYA,AQxBA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,ACHA,AQxBA,APqBA,ACHA,AJYA,AQxBA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,ACHA,AQxBA,ANkBA,AJYA,AQxBA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,ACHA,AQxBA,ANkBA,AJYA,AWjCA,AHSA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,ACHA,AQxBA,ANkBA,AJYA,AWjCA,AHSA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,ACHA,AQxBA,ANkBA,AJYA,AWjCA,AHSA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,AWjCA,AHSA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,AWjCA,AHSA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,AWjCA,AHSA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,AWjCA,AENA,ALeA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,AWjCA,AENA,ALeA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,AWjCA,AENA,ALeA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,Ac1CA,AHSA,AENA,ALeA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,Ac1CA,AHSA,AENA,ALeA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,Ac1CA,AHSA,AENA,ALeA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,Ac1CA,AHSA,AENA,AENA,APqBA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,Ac1CA,AHSA,AENA,AENA,APqBA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,Ac1CA,AHSA,AENA,AENA,APqBA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,Ac1CA,AHSA,AENA,AGTA,ADGA,APqBA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,Ac1CA,AHSA,AENA,AGTA,ADGA,APqBA,AXiCA;AYnCA,AbuCA,AGTA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,Ac1CA,AHSA,AENA,AGTA,ADGA,APqBA,AXiCA;AYnCA,AbuCA,AqB/DA,AlBsDA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,Ac1CA,AHSA,AENA,AGTA,ADGA,APqBA,AXiCA;AYnCA,AbuCA,AqB/DA,AlBsDA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,Ac1CA,AHSA,AENA,AGTA,ADGA,APqBA,AXiCA;AYnCA,AQxBA,AlBsDA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,Ac1CA,AHSA,AENA,AGTA,ADGA,APqBA,AXiCA;AYnCA,AQxBA,AlBsDA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,Ac1CA,AHSA,AKfA,ADGA,AGTA,AV8BA,AXiCA;AYnCA,AQxBA,AlBsDA,AOrBA,ALeA,AWjCA,AV8BA,AQxBA,ANkBA,AJYA,Ac1CA,AHSA,AKfA,ADGA,AGTA,AV8BA,AXiCA;AYnCA,AQxBA,AlBsDA,AOrBA,ALeA,AWjCA,AV8BA,AENA,AJYA,Ac1CA,AHSA,AKfA,ADGA,AGTA,AV8BA,AXiCA;AsBjEA,AV8BA,AQxBA,AlBsDA,AOrBA,ALeA,ACHA,AENA,AJYA,AWjCA,AKfA,ADGA,AGTA,AV8BA,AXiCA;AsBjEA,AV8BA,AQxBA,AlBsDA,AOrBA,AJYA,AENA,AJYA,AWjCA,AKfA,ADGA,AGTA,AV8BA,AXiCA;AsBjEA,AV8BA,AQxBA,AlBsDA,AOrBA,AJYA,AENA,AJYA,AWjCA,AKfA,ADGA,AGTA,AV8BA,AXiCA;AsBjEA,AV8BA,AQxBA,AlBsDA,AOrBA,AJYA,AENA,AgBhDA,ApB4DA,AWjCA,AKfA,ADGA,AGTA,AV8BA,AXiCA;AsBjEA,AV8BA,AQxBA,AlBsDA,AOrBA,AJYA,AENA,AgBhDA,ApB4DA,AWjCA,AKfA,ADGA,APqBA,AXiCA;AsBjEA,AV8BA,AQxBA,AlBsDA,AOrBA,AJYA,AENA,AgBhDA,ApB4DA,AWjCA,AKfA,ADGA,APqBA,AXiCA;AsBjEA,AV8BA,AQxBA,AlBsDA,AOrBA,AJYA,AmBzDA,AjBmDA,AJYA,AWjCA,AKfA,ADGA,APqBA,AXiCA;AsBjEA,AV8BA,AQxBA,AlBsDA,AOrBA,AJYA,AmBzDA,AjBmDA,AJYA,AWjCA,AKfA,ADGA,APqBA,AXiCA;AsBjEA,AV8BA,AQxBA,AlBsDA,AOrBA,AJYA,AmBzDA,AjBmDA,AJYA,AWjCA,AKfA,ADGA,APqBA,AXiCA;AsBjEA,AV8BA,AQxBA,AKfA,AvBqEA,AOrBA,AJYA,AENA,AJYA,AWjCA,AKfA,ADGA,APqBA,AXiCA;AsBjEA,AV8BA,AQxBA,AKfA,AvBqEA,AOrBA,AJYA,AENA,AJYA,AWjCA,AKfA,ADGA,APqBA,AXiCA;AsBjEA,AV8BA,AQxBA,AKfA,AvBqEA,AOrBA,AJYA,AENA,AJYA,AWjCA,AKfA,ADGA,APqBA,AXiCA;AsBjEA,AV8BA,AQxBA,AKfA,AvBqEA,AOrBA,AJYA,AqB/DA,AnByDA,AJYA,AWjCA,AKfA,ADGA,APqBA,AXiCA;AsBjEA,AV8BA,AQxBA,AKfA,AvBqEA,AOrBA,AJYA,AqB/DA,AnByDA,AJYA,AWjCA,AKfA,ADGA,APqBA,AXiCA;AsBjEA,AV8BA,AQxBA,AKfA,AvBqEA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AKfA,ADGA,APqBA,AXiCA;AsBjEA,AV8BA,AQxBA,AlBsDA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AKfA,ADGA,APqBA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AQxBA,AlBsDA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AKfA,ADGA,APqBA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AV8BA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AKfA,ADGA,APqBA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AKfA,ADGA,APqBA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AKfA,ADGA,APqBA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AKfA,ADGA,APqBA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AKfA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AKfA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AKfA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AgBhDA,AXiCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AgBhDA,AXiCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AgBhDA,AXiCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AgBhDA,AXiCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AgBhDA,AXiCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AOrBA,AgBhDA,AXiCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AuBrEA,AXiCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AuBrEA,AXiCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AuBrEA,AXiCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AuBrEA,AXiCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AuBrEA,AXiCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AuBrEA,AXiCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AJYA,AqB/DA,AnByDA,AuBrEA,AXiCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AiBnDA,AnByDA,AuBrEA,AXiCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AiBnDA,AnByDA,AYpCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AiBnDA,AnByDA,AYpCA,ADGA,AWjCA,AlBsDA,AgBhDA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AiBnDA,AnByDA,AYpCA,ADGA,AWjCA,AFMA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AiBnDA,AnByDA,AYpCA,ADGA,AWjCA,AFMA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AiBnDA,AnByDA,AYpCA,AU9BA,AFMA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AiBnDA,AnByDA,AYpCA,AU9BA,AFMA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AiBnDA,AnByDA,AYpCA,AU9BA,AFMA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AiBnDA,AnByDA,AYpCA,AU9BA,AFMA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AiBnDA,AnByDA,AYpCA,AU9BA,AFMA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AOrBA,AiBnDA,AnByDA,AYpCA,AU9BA,AFMA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AYpCA,AU9BA,AFMA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AYpCA,AQxBA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AYpCA,AQxBA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AYpCA,AQxBA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AYpCA,AQxBA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AYpCA,AQxBA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AYpCA,AQxBA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AYpCA,AQxBA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AYpCA,AQxBA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AYpCA,AQxBA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AYpCA,AQxBA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AYpCA,AQxBA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,A1B8EA,AwBxEA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,AFMA,AnByDA,AoB5DA,A3BiFA;AsBjEA,AV8BA,AgBhDA,AFMA,A1B8EA;AsBjEA,AV8BA,AgBhDA,AFMA,A1B8EA;AsBjEA,AV8BA,AgBhDA,AFMA,A1B8EA;AsBjEA,AV8BA,AgBhDA,AFMA,A1B8EA;AsBjEA,AV8BA,AgBhDA,AFMA,A1B8EA;AsBjEA,AV8BA,AgBhDA,AFMA,A1B8EA;AsBjEA,AV8BA,AgBhDA,AFMA,A1B8EA;AsBjEA,AV8BA,AgBhDA,AFMA,A1B8EA;AsBjEA,AV8BA,AgBhDA,AFMA,A1B8EA;AsBjEA,AV8BA,AgBhDA,AFMA,A1B8EA;AsBjEA,AV8BA,AgBhDA,AFMA,A1B8EA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AgBhDA,A5BoFA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AV8BA,AZoCA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA,AtBkEA;AsBjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["module.exports = require('./lib/axios');","\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildFullPath = require('../core/buildFullPath');\nvar buildURL = require('./../helpers/buildURL');\nvar http = require('http');\nvar https = require('https');\nvar httpFollow = require('follow-redirects').http;\nvar httpsFollow = require('follow-redirects').https;\nvar url = require('url');\nvar zlib = require('zlib');\nvar VERSION = require('./../env/data').version;\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\n\nvar isHttps = /https:?/;\n\nvar supportedProtocols = [ 'http:', 'https:', 'file:' ];\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nmodule.exports = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n var resolve = function resolve(value) {\n done();\n resolvePromise(value);\n };\n var rejected = false;\n var reject = function reject(value) {\n done();\n rejected = true;\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n var headerNames = {};\n\n Object.keys(headers).forEach(function storeLowerName(name) {\n headerNames[name.toLowerCase()] = name;\n });\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('user-agent' in headerNames) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers[headerNames['user-agent']]) {\n delete headers[headerNames['user-agent']];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + VERSION;\n }\n\n // support for https://www.npmjs.com/package/form-data api\n if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {\n Object.assign(headers, data.getHeaders());\n } else if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(new AxiosError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n // Add Content-Length header if data exists\n if (!headerNames['content-length']) {\n headers['Content-Length'] = data.length;\n }\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url.parse(fullPath);\n var protocol = parsed.protocol || supportedProtocols[0];\n\n if (supportedProtocols.indexOf(protocol) === -1) {\n return reject(new AxiosError(\n 'Unsupported protocol ' + protocol,\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth && headerNames.authorization) {\n delete headers[headerNames.authorization];\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n try {\n buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, '');\n } catch (err) {\n var customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n reject(customErr);\n }\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url.parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n if (config.beforeRedirect) {\n options.beforeRedirect = config.beforeRedirect;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destoy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n stream.destroy();\n reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE, config, lastRequest));\n }\n });\n\n stream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n stream.destroy();\n reject(new AxiosError(\n 'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n ));\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(AxiosError.from(err, null, config, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n try {\n var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n reject(AxiosError.from(err, null, config, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n // @todo remove\n // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return;\n reject(AxiosError.from(err, null, config, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(new AxiosError(\n 'error trying to parse `config.timeout` to int',\n AxiosError.ERR_BAD_OPTION_VALUE,\n config,\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n var transitional = config.transitional || transitionalDefaults;\n reject(new AxiosError(\n 'timeout of ' + timeout + 'ms exceeded',\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n req\n ));\n });\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(AxiosError.from(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","// eslint-disable-next-line strict\nmodule.exports = require('form-data');\n","\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/call-bind-apply-helpers/index.js b/government-mini-program/miniprogram_npm/call-bind-apply-helpers/index.js deleted file mode 100644 index dde4ad7..0000000 --- a/government-mini-program/miniprogram_npm/call-bind-apply-helpers/index.js +++ /dev/null @@ -1,62 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322096, function(require, module, exports) { - - -var bind = require('function-bind'); -var $TypeError = require('es-errors/type'); - -var $call = require('./functionCall'); -var $actualApply = require('./actualApply'); - -/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */ -module.exports = function callBindBasic(args) { - if (args.length < 1 || typeof args[0] !== 'function') { - throw new $TypeError('a function is required'); - } - return $actualApply(bind, $call, args); -}; - -}, function(modId) {var map = {"./functionCall":1758268322097,"./actualApply":1758268322098}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322097, function(require, module, exports) { - - -/** @type {import('./functionCall')} */ -module.exports = Function.prototype.call; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322098, function(require, module, exports) { - - -var bind = require('function-bind'); - -var $apply = require('./functionApply'); -var $call = require('./functionCall'); -var $reflectApply = require('./reflectApply'); - -/** @type {import('./actualApply')} */ -module.exports = $reflectApply || bind.call($call, $apply); - -}, function(modId) { var map = {"./functionApply":1758268322099,"./functionCall":1758268322097,"./reflectApply":1758268322100}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322099, function(require, module, exports) { - - -/** @type {import('./functionApply')} */ -module.exports = Function.prototype.apply; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322100, function(require, module, exports) { - - -/** @type {import('./reflectApply')} */ -module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322096); -})() -//miniprogram-npm-outsideDeps=["function-bind","es-errors/type"] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/call-bind-apply-helpers/index.js.map b/government-mini-program/miniprogram_npm/call-bind-apply-helpers/index.js.map deleted file mode 100644 index 6d903ba..0000000 --- a/government-mini-program/miniprogram_npm/call-bind-apply-helpers/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js","functionCall.js","actualApply.js","functionApply.js","reflectApply.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;AELA,ADGA,ADGA;AELA,ADGA,ADGA;AELA,AFMA;AELA,ACHA,AHSA;AELA,ACHA,AHSA;AELA,ACHA,AHSA;AELA,ACHA,AHSA,AIZA;AFOA,ACHA,AHSA,AIZA;AFOA,AFMA,AIZA;AFOA,AFMA,AIZA;AFOA,AENA","file":"index.js","sourcesContent":["\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/combined-stream/index.js b/government-mini-program/miniprogram_npm/combined-stream/index.js deleted file mode 100644 index 1d7bd52..0000000 --- a/government-mini-program/miniprogram_npm/combined-stream/index.js +++ /dev/null @@ -1,221 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322101, function(require, module, exports) { -var util = require('util'); -var Stream = require('stream').Stream; -var DelayedStream = require('delayed-stream'); - -module.exports = CombinedStream; -function CombinedStream() { - this.writable = false; - this.readable = true; - this.dataSize = 0; - this.maxDataSize = 2 * 1024 * 1024; - this.pauseStreams = true; - - this._released = false; - this._streams = []; - this._currentStream = null; - this._insideLoop = false; - this._pendingNext = false; -} -util.inherits(CombinedStream, Stream); - -CombinedStream.create = function(options) { - var combinedStream = new this(); - - options = options || {}; - for (var option in options) { - combinedStream[option] = options[option]; - } - - return combinedStream; -}; - -CombinedStream.isStreamLike = function(stream) { - return (typeof stream !== 'function') - && (typeof stream !== 'string') - && (typeof stream !== 'boolean') - && (typeof stream !== 'number') - && (!Buffer.isBuffer(stream)); -}; - -CombinedStream.prototype.append = function(stream) { - var isStreamLike = CombinedStream.isStreamLike(stream); - - if (isStreamLike) { - if (!(stream instanceof DelayedStream)) { - var newStream = DelayedStream.create(stream, { - maxDataSize: Infinity, - pauseStream: this.pauseStreams, - }); - stream.on('data', this._checkDataSize.bind(this)); - stream = newStream; - } - - this._handleErrors(stream); - - if (this.pauseStreams) { - stream.pause(); - } - } - - this._streams.push(stream); - return this; -}; - -CombinedStream.prototype.pipe = function(dest, options) { - Stream.prototype.pipe.call(this, dest, options); - this.resume(); - return dest; -}; - -CombinedStream.prototype._getNext = function() { - this._currentStream = null; - - if (this._insideLoop) { - this._pendingNext = true; - return; // defer call - } - - this._insideLoop = true; - try { - do { - this._pendingNext = false; - this._realGetNext(); - } while (this._pendingNext); - } finally { - this._insideLoop = false; - } -}; - -CombinedStream.prototype._realGetNext = function() { - var stream = this._streams.shift(); - - - if (typeof stream == 'undefined') { - this.end(); - return; - } - - if (typeof stream !== 'function') { - this._pipeNext(stream); - return; - } - - var getStream = stream; - getStream(function(stream) { - var isStreamLike = CombinedStream.isStreamLike(stream); - if (isStreamLike) { - stream.on('data', this._checkDataSize.bind(this)); - this._handleErrors(stream); - } - - this._pipeNext(stream); - }.bind(this)); -}; - -CombinedStream.prototype._pipeNext = function(stream) { - this._currentStream = stream; - - var isStreamLike = CombinedStream.isStreamLike(stream); - if (isStreamLike) { - stream.on('end', this._getNext.bind(this)); - stream.pipe(this, {end: false}); - return; - } - - var value = stream; - this.write(value); - this._getNext(); -}; - -CombinedStream.prototype._handleErrors = function(stream) { - var self = this; - stream.on('error', function(err) { - self._emitError(err); - }); -}; - -CombinedStream.prototype.write = function(data) { - this.emit('data', data); -}; - -CombinedStream.prototype.pause = function() { - if (!this.pauseStreams) { - return; - } - - if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause(); - this.emit('pause'); -}; - -CombinedStream.prototype.resume = function() { - if (!this._released) { - this._released = true; - this.writable = true; - this._getNext(); - } - - if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume(); - this.emit('resume'); -}; - -CombinedStream.prototype.end = function() { - this._reset(); - this.emit('end'); -}; - -CombinedStream.prototype.destroy = function() { - this._reset(); - this.emit('close'); -}; - -CombinedStream.prototype._reset = function() { - this.writable = false; - this._streams = []; - this._currentStream = null; -}; - -CombinedStream.prototype._checkDataSize = function() { - this._updateDataSize(); - if (this.dataSize <= this.maxDataSize) { - return; - } - - var message = - 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'; - this._emitError(new Error(message)); -}; - -CombinedStream.prototype._updateDataSize = function() { - this.dataSize = 0; - - var self = this; - this._streams.forEach(function(stream) { - if (!stream.dataSize) { - return; - } - - self.dataSize += stream.dataSize; - }); - - if (this._currentStream && this._currentStream.dataSize) { - this.dataSize += this._currentStream.dataSize; - } -}; - -CombinedStream.prototype._emitError = function(err) { - this._reset(); - this.emit('error', err); -}; - -}, function(modId) {var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322101); -})() -//miniprogram-npm-outsideDeps=["util","stream","delayed-stream"] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/combined-stream/index.js.map b/government-mini-program/miniprogram_npm/combined-stream/index.js.map deleted file mode 100644 index 452c5ca..0000000 --- a/government-mini-program/miniprogram_npm/combined-stream/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["combined_stream.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\n};\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/dayjs/index.js b/government-mini-program/miniprogram_npm/dayjs/index.js deleted file mode 100644 index a04b2fc..0000000 --- a/government-mini-program/miniprogram_npm/dayjs/index.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322102, function(require, module, exports) { -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) 2 && !!arguments[2] && arguments[2].force; - var nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable; - if ( - (typeof overrideIfSet !== 'undefined' && typeof overrideIfSet !== 'boolean') - || (typeof nonConfigurable !== 'undefined' && typeof nonConfigurable !== 'boolean') - ) { - throw new $TypeError('if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans'); - } - if (toStringTag && (overrideIfSet || !hasOwn(object, toStringTag))) { - if ($defineProperty) { - $defineProperty(object, toStringTag, { - configurable: !nonConfigurable, - enumerable: false, - value: value, - writable: false - }); - } else { - object[toStringTag] = value; // eslint-disable-line no-param-reassign - } - } -}; - -}, function(modId) {var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322107); -})() -//miniprogram-npm-outsideDeps=["get-intrinsic","has-tostringtag/shams","hasown","es-errors/type"] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/es-set-tostringtag/index.js.map b/government-mini-program/miniprogram_npm/es-set-tostringtag/index.js.map deleted file mode 100644 index a75ec1c..0000000 --- a/government-mini-program/miniprogram_npm/es-set-tostringtag/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar $TypeError = require('es-errors/type');\n\nvar toStringTag = hasToStringTag ? Symbol.toStringTag : null;\n\n/** @type {import('.')} */\nmodule.exports = function setToStringTag(object, value) {\n\tvar overrideIfSet = arguments.length > 2 && !!arguments[2] && arguments[2].force;\n\tvar nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable;\n\tif (\n\t\t(typeof overrideIfSet !== 'undefined' && typeof overrideIfSet !== 'boolean')\n\t\t|| (typeof nonConfigurable !== 'undefined' && typeof nonConfigurable !== 'boolean')\n\t) {\n\t\tthrow new $TypeError('if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans');\n\t}\n\tif (toStringTag && (overrideIfSet || !hasOwn(object, toStringTag))) {\n\t\tif ($defineProperty) {\n\t\t\t$defineProperty(object, toStringTag, {\n\t\t\t\tconfigurable: !nonConfigurable,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: value,\n\t\t\t\twritable: false\n\t\t\t});\n\t\t} else {\n\t\t\tobject[toStringTag] = value; // eslint-disable-line no-param-reassign\n\t\t}\n\t}\n};\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/follow-redirects/index.js b/government-mini-program/miniprogram_npm/follow-redirects/index.js deleted file mode 100644 index b787f29..0000000 --- a/government-mini-program/miniprogram_npm/follow-redirects/index.js +++ /dev/null @@ -1,725 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322108, function(require, module, exports) { -var url = require("url"); -var URL = url.URL; -var http = require("http"); -var https = require("https"); -var Writable = require("stream").Writable; -var assert = require("assert"); -var debug = require("./debug"); - -// Preventive platform detection -// istanbul ignore next -(function detectUnsupportedEnvironment() { - var looksLikeNode = typeof process !== "undefined"; - var looksLikeBrowser = typeof window !== "undefined" && typeof document !== "undefined"; - var looksLikeV8 = isFunction(Error.captureStackTrace); - if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) { - console.warn("The follow-redirects package should be excluded from browser builds."); - } -}()); - -// Whether to use the native URL object or the legacy url module -var useNativeURL = false; -try { - assert(new URL("")); -} -catch (error) { - useNativeURL = error.code === "ERR_INVALID_URL"; -} - -// URL fields to preserve in copy operations -var preservedUrlFields = [ - "auth", - "host", - "hostname", - "href", - "path", - "pathname", - "port", - "protocol", - "query", - "search", - "hash", -]; - -// Create handlers that pass events from native requests -var events = ["abort", "aborted", "connect", "error", "socket", "timeout"]; -var eventHandlers = Object.create(null); -events.forEach(function (event) { - eventHandlers[event] = function (arg1, arg2, arg3) { - this._redirectable.emit(event, arg1, arg2, arg3); - }; -}); - -// Error types with codes -var InvalidUrlError = createErrorType( - "ERR_INVALID_URL", - "Invalid URL", - TypeError -); -var RedirectionError = createErrorType( - "ERR_FR_REDIRECTION_FAILURE", - "Redirected request failed" -); -var TooManyRedirectsError = createErrorType( - "ERR_FR_TOO_MANY_REDIRECTS", - "Maximum number of redirects exceeded", - RedirectionError -); -var MaxBodyLengthExceededError = createErrorType( - "ERR_FR_MAX_BODY_LENGTH_EXCEEDED", - "Request body larger than maxBodyLength limit" -); -var WriteAfterEndError = createErrorType( - "ERR_STREAM_WRITE_AFTER_END", - "write after end" -); - -// istanbul ignore next -var destroy = Writable.prototype.destroy || noop; - -// An HTTP(S) request that can be redirected -function RedirectableRequest(options, responseCallback) { - // Initialize the request - Writable.call(this); - this._sanitizeOptions(options); - this._options = options; - this._ended = false; - this._ending = false; - this._redirectCount = 0; - this._redirects = []; - this._requestBodyLength = 0; - this._requestBodyBuffers = []; - - // Attach a callback if passed - if (responseCallback) { - this.on("response", responseCallback); - } - - // React to responses of native requests - var self = this; - this._onNativeResponse = function (response) { - try { - self._processResponse(response); - } - catch (cause) { - self.emit("error", cause instanceof RedirectionError ? - cause : new RedirectionError({ cause: cause })); - } - }; - - // Perform the first request - this._performRequest(); -} -RedirectableRequest.prototype = Object.create(Writable.prototype); - -RedirectableRequest.prototype.abort = function () { - destroyRequest(this._currentRequest); - this._currentRequest.abort(); - this.emit("abort"); -}; - -RedirectableRequest.prototype.destroy = function (error) { - destroyRequest(this._currentRequest, error); - destroy.call(this, error); - return this; -}; - -// Writes buffered data to the current native request -RedirectableRequest.prototype.write = function (data, encoding, callback) { - // Writing is not allowed if end has been called - if (this._ending) { - throw new WriteAfterEndError(); - } - - // Validate input and shift parameters if necessary - if (!isString(data) && !isBuffer(data)) { - throw new TypeError("data should be a string, Buffer or Uint8Array"); - } - if (isFunction(encoding)) { - callback = encoding; - encoding = null; - } - - // Ignore empty buffers, since writing them doesn't invoke the callback - // https://github.com/nodejs/node/issues/22066 - if (data.length === 0) { - if (callback) { - callback(); - } - return; - } - // Only write when we don't exceed the maximum body length - if (this._requestBodyLength + data.length <= this._options.maxBodyLength) { - this._requestBodyLength += data.length; - this._requestBodyBuffers.push({ data: data, encoding: encoding }); - this._currentRequest.write(data, encoding, callback); - } - // Error when we exceed the maximum body length - else { - this.emit("error", new MaxBodyLengthExceededError()); - this.abort(); - } -}; - -// Ends the current native request -RedirectableRequest.prototype.end = function (data, encoding, callback) { - // Shift parameters if necessary - if (isFunction(data)) { - callback = data; - data = encoding = null; - } - else if (isFunction(encoding)) { - callback = encoding; - encoding = null; - } - - // Write data if needed and end - if (!data) { - this._ended = this._ending = true; - this._currentRequest.end(null, null, callback); - } - else { - var self = this; - var currentRequest = this._currentRequest; - this.write(data, encoding, function () { - self._ended = true; - currentRequest.end(null, null, callback); - }); - this._ending = true; - } -}; - -// Sets a header value on the current native request -RedirectableRequest.prototype.setHeader = function (name, value) { - this._options.headers[name] = value; - this._currentRequest.setHeader(name, value); -}; - -// Clears a header value on the current native request -RedirectableRequest.prototype.removeHeader = function (name) { - delete this._options.headers[name]; - this._currentRequest.removeHeader(name); -}; - -// Global timeout for all underlying requests -RedirectableRequest.prototype.setTimeout = function (msecs, callback) { - var self = this; - - // Destroys the socket on timeout - function destroyOnTimeout(socket) { - socket.setTimeout(msecs); - socket.removeListener("timeout", socket.destroy); - socket.addListener("timeout", socket.destroy); - } - - // Sets up a timer to trigger a timeout event - function startTimer(socket) { - if (self._timeout) { - clearTimeout(self._timeout); - } - self._timeout = setTimeout(function () { - self.emit("timeout"); - clearTimer(); - }, msecs); - destroyOnTimeout(socket); - } - - // Stops a timeout from triggering - function clearTimer() { - // Clear the timeout - if (self._timeout) { - clearTimeout(self._timeout); - self._timeout = null; - } - - // Clean up all attached listeners - self.removeListener("abort", clearTimer); - self.removeListener("error", clearTimer); - self.removeListener("response", clearTimer); - self.removeListener("close", clearTimer); - if (callback) { - self.removeListener("timeout", callback); - } - if (!self.socket) { - self._currentRequest.removeListener("socket", startTimer); - } - } - - // Attach callback if passed - if (callback) { - this.on("timeout", callback); - } - - // Start the timer if or when the socket is opened - if (this.socket) { - startTimer(this.socket); - } - else { - this._currentRequest.once("socket", startTimer); - } - - // Clean up on events - this.on("socket", destroyOnTimeout); - this.on("abort", clearTimer); - this.on("error", clearTimer); - this.on("response", clearTimer); - this.on("close", clearTimer); - - return this; -}; - -// Proxy all other public ClientRequest methods -[ - "flushHeaders", "getHeader", - "setNoDelay", "setSocketKeepAlive", -].forEach(function (method) { - RedirectableRequest.prototype[method] = function (a, b) { - return this._currentRequest[method](a, b); - }; -}); - -// Proxy all public ClientRequest properties -["aborted", "connection", "socket"].forEach(function (property) { - Object.defineProperty(RedirectableRequest.prototype, property, { - get: function () { return this._currentRequest[property]; }, - }); -}); - -RedirectableRequest.prototype._sanitizeOptions = function (options) { - // Ensure headers are always present - if (!options.headers) { - options.headers = {}; - } - - // Since http.request treats host as an alias of hostname, - // but the url module interprets host as hostname plus port, - // eliminate the host property to avoid confusion. - if (options.host) { - // Use hostname if set, because it has precedence - if (!options.hostname) { - options.hostname = options.host; - } - delete options.host; - } - - // Complete the URL object when necessary - if (!options.pathname && options.path) { - var searchPos = options.path.indexOf("?"); - if (searchPos < 0) { - options.pathname = options.path; - } - else { - options.pathname = options.path.substring(0, searchPos); - options.search = options.path.substring(searchPos); - } - } -}; - - -// Executes the next native request (initial or redirect) -RedirectableRequest.prototype._performRequest = function () { - // Load the native protocol - var protocol = this._options.protocol; - var nativeProtocol = this._options.nativeProtocols[protocol]; - if (!nativeProtocol) { - throw new TypeError("Unsupported protocol " + protocol); - } - - // If specified, use the agent corresponding to the protocol - // (HTTP and HTTPS use different types of agents) - if (this._options.agents) { - var scheme = protocol.slice(0, -1); - this._options.agent = this._options.agents[scheme]; - } - - // Create the native request and set up its event handlers - var request = this._currentRequest = - nativeProtocol.request(this._options, this._onNativeResponse); - request._redirectable = this; - for (var event of events) { - request.on(event, eventHandlers[event]); - } - - // RFC7230§5.3.1: When making a request directly to an origin server, […] - // a client MUST send only the absolute path […] as the request-target. - this._currentUrl = /^\//.test(this._options.path) ? - url.format(this._options) : - // When making a request to a proxy, […] - // a client MUST send the target URI in absolute-form […]. - this._options.path; - - // End a redirected request - // (The first request must be ended explicitly with RedirectableRequest#end) - if (this._isRedirect) { - // Write the request entity and end - var i = 0; - var self = this; - var buffers = this._requestBodyBuffers; - (function writeNext(error) { - // Only write if this request has not been redirected yet - // istanbul ignore else - if (request === self._currentRequest) { - // Report any write errors - // istanbul ignore if - if (error) { - self.emit("error", error); - } - // Write the next buffer if there are still left - else if (i < buffers.length) { - var buffer = buffers[i++]; - // istanbul ignore else - if (!request.finished) { - request.write(buffer.data, buffer.encoding, writeNext); - } - } - // End the request if `end` has been called on us - else if (self._ended) { - request.end(); - } - } - }()); - } -}; - -// Processes a response from the current native request -RedirectableRequest.prototype._processResponse = function (response) { - // Store the redirected response - var statusCode = response.statusCode; - if (this._options.trackRedirects) { - this._redirects.push({ - url: this._currentUrl, - headers: response.headers, - statusCode: statusCode, - }); - } - - // RFC7231§6.4: The 3xx (Redirection) class of status code indicates - // that further action needs to be taken by the user agent in order to - // fulfill the request. If a Location header field is provided, - // the user agent MAY automatically redirect its request to the URI - // referenced by the Location field value, - // even if the specific status code is not understood. - - // If the response is not a redirect; return it as-is - var location = response.headers.location; - if (!location || this._options.followRedirects === false || - statusCode < 300 || statusCode >= 400) { - response.responseUrl = this._currentUrl; - response.redirects = this._redirects; - this.emit("response", response); - - // Clean up - this._requestBodyBuffers = []; - return; - } - - // The response is a redirect, so abort the current request - destroyRequest(this._currentRequest); - // Discard the remainder of the response to avoid waiting for data - response.destroy(); - - // RFC7231§6.4: A client SHOULD detect and intervene - // in cyclical redirections (i.e., "infinite" redirection loops). - if (++this._redirectCount > this._options.maxRedirects) { - throw new TooManyRedirectsError(); - } - - // Store the request headers if applicable - var requestHeaders; - var beforeRedirect = this._options.beforeRedirect; - if (beforeRedirect) { - requestHeaders = Object.assign({ - // The Host header was set by nativeProtocol.request - Host: response.req.getHeader("host"), - }, this._options.headers); - } - - // RFC7231§6.4: Automatic redirection needs to done with - // care for methods not known to be safe, […] - // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change - // the request method from POST to GET for the subsequent request. - var method = this._options.method; - if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" || - // RFC7231§6.4.4: The 303 (See Other) status code indicates that - // the server is redirecting the user agent to a different resource […] - // A user agent can perform a retrieval request targeting that URI - // (a GET or HEAD request if using HTTP) […] - (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) { - this._options.method = "GET"; - // Drop a possible entity and headers related to it - this._requestBodyBuffers = []; - removeMatchingHeaders(/^content-/i, this._options.headers); - } - - // Drop the Host header, as the redirect might lead to a different host - var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers); - - // If the redirect is relative, carry over the host of the last request - var currentUrlParts = parseUrl(this._currentUrl); - var currentHost = currentHostHeader || currentUrlParts.host; - var currentUrl = /^\w+:/.test(location) ? this._currentUrl : - url.format(Object.assign(currentUrlParts, { host: currentHost })); - - // Create the redirected request - var redirectUrl = resolveUrl(location, currentUrl); - debug("redirecting to", redirectUrl.href); - this._isRedirect = true; - spreadUrlObject(redirectUrl, this._options); - - // Drop confidential headers when redirecting to a less secure protocol - // or to a different domain that is not a superdomain - if (redirectUrl.protocol !== currentUrlParts.protocol && - redirectUrl.protocol !== "https:" || - redirectUrl.host !== currentHost && - !isSubdomain(redirectUrl.host, currentHost)) { - removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers); - } - - // Evaluate the beforeRedirect callback - if (isFunction(beforeRedirect)) { - var responseDetails = { - headers: response.headers, - statusCode: statusCode, - }; - var requestDetails = { - url: currentUrl, - method: method, - headers: requestHeaders, - }; - beforeRedirect(this._options, responseDetails, requestDetails); - this._sanitizeOptions(this._options); - } - - // Perform the redirected request - this._performRequest(); -}; - -// Wraps the key/value object of protocols with redirect functionality -function wrap(protocols) { - // Default settings - var exports = { - maxRedirects: 21, - maxBodyLength: 10 * 1024 * 1024, - }; - - // Wrap each protocol - var nativeProtocols = {}; - Object.keys(protocols).forEach(function (scheme) { - var protocol = scheme + ":"; - var nativeProtocol = nativeProtocols[protocol] = protocols[scheme]; - var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol); - - // Executes a request, following redirects - function request(input, options, callback) { - // Parse parameters, ensuring that input is an object - if (isURL(input)) { - input = spreadUrlObject(input); - } - else if (isString(input)) { - input = spreadUrlObject(parseUrl(input)); - } - else { - callback = options; - options = validateUrl(input); - input = { protocol: protocol }; - } - if (isFunction(options)) { - callback = options; - options = null; - } - - // Set defaults - options = Object.assign({ - maxRedirects: exports.maxRedirects, - maxBodyLength: exports.maxBodyLength, - }, input, options); - options.nativeProtocols = nativeProtocols; - if (!isString(options.host) && !isString(options.hostname)) { - options.hostname = "::1"; - } - - assert.equal(options.protocol, protocol, "protocol mismatch"); - debug("options", options); - return new RedirectableRequest(options, callback); - } - - // Executes a GET request, following redirects - function get(input, options, callback) { - var wrappedRequest = wrappedProtocol.request(input, options, callback); - wrappedRequest.end(); - return wrappedRequest; - } - - // Expose the properties on the wrapped protocol - Object.defineProperties(wrappedProtocol, { - request: { value: request, configurable: true, enumerable: true, writable: true }, - get: { value: get, configurable: true, enumerable: true, writable: true }, - }); - }); - return exports; -} - -function noop() { /* empty */ } - -function parseUrl(input) { - var parsed; - // istanbul ignore else - if (useNativeURL) { - parsed = new URL(input); - } - else { - // Ensure the URL is valid and absolute - parsed = validateUrl(url.parse(input)); - if (!isString(parsed.protocol)) { - throw new InvalidUrlError({ input }); - } - } - return parsed; -} - -function resolveUrl(relative, base) { - // istanbul ignore next - return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative)); -} - -function validateUrl(input) { - if (/^\[/.test(input.hostname) && !/^\[[:0-9a-f]+\]$/i.test(input.hostname)) { - throw new InvalidUrlError({ input: input.href || input }); - } - if (/^\[/.test(input.host) && !/^\[[:0-9a-f]+\](:\d+)?$/i.test(input.host)) { - throw new InvalidUrlError({ input: input.href || input }); - } - return input; -} - -function spreadUrlObject(urlObject, target) { - var spread = target || {}; - for (var key of preservedUrlFields) { - spread[key] = urlObject[key]; - } - - // Fix IPv6 hostname - if (spread.hostname.startsWith("[")) { - spread.hostname = spread.hostname.slice(1, -1); - } - // Ensure port is a number - if (spread.port !== "") { - spread.port = Number(spread.port); - } - // Concatenate path - spread.path = spread.search ? spread.pathname + spread.search : spread.pathname; - - return spread; -} - -function removeMatchingHeaders(regex, headers) { - var lastValue; - for (var header in headers) { - if (regex.test(header)) { - lastValue = headers[header]; - delete headers[header]; - } - } - return (lastValue === null || typeof lastValue === "undefined") ? - undefined : String(lastValue).trim(); -} - -function createErrorType(code, message, baseClass) { - // Create constructor - function CustomError(properties) { - // istanbul ignore else - if (isFunction(Error.captureStackTrace)) { - Error.captureStackTrace(this, this.constructor); - } - Object.assign(this, properties || {}); - this.code = code; - this.message = this.cause ? message + ": " + this.cause.message : message; - } - - // Attach constructor and set default properties - CustomError.prototype = new (baseClass || Error)(); - Object.defineProperties(CustomError.prototype, { - constructor: { - value: CustomError, - enumerable: false, - }, - name: { - value: "Error [" + code + "]", - enumerable: false, - }, - }); - return CustomError; -} - -function destroyRequest(request, error) { - for (var event of events) { - request.removeListener(event, eventHandlers[event]); - } - request.on("error", noop); - request.destroy(error); -} - -function isSubdomain(subdomain, domain) { - assert(isString(subdomain) && isString(domain)); - var dot = subdomain.length - domain.length - 1; - return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain); -} - -function isString(value) { - return typeof value === "string" || value instanceof String; -} - -function isFunction(value) { - return typeof value === "function"; -} - -function isBuffer(value) { - return typeof value === "object" && ("length" in value); -} - -function isURL(value) { - return URL && value instanceof URL; -} - -// Exports -module.exports = wrap({ http: http, https: https }); -module.exports.wrap = wrap; - -}, function(modId) {var map = {"http":1758268322109,"https":1758268322110,"./debug":1758268322111}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322109, function(require, module, exports) { -module.exports = require("./").http; - -}, function(modId) { var map = {"./":1758268322108}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322110, function(require, module, exports) { -module.exports = require("./").https; - -}, function(modId) { var map = {"./":1758268322108}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322111, function(require, module, exports) { -var debug; - -module.exports = function () { - if (!debug) { - try { - /* eslint global-require: off */ - debug = require("debug")("follow-redirects"); - } - catch (error) { /* */ } - if (typeof debug !== "function") { - debug = function () { /* */ }; - } - } - debug.apply(null, arguments); -}; - -}, function(modId) { var map = {"debug":1758268322111}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322108); -})() -//miniprogram-npm-outsideDeps=["url","stream","assert"] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/follow-redirects/index.js.map b/government-mini-program/miniprogram_npm/follow-redirects/index.js.map deleted file mode 100644 index b115930..0000000 --- a/government-mini-program/miniprogram_npm/follow-redirects/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js","http.js","https.js","debug.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;ACFA,ADGA;ACFA,ADGA;AACA;AELA,AFMA;AELA,AFMA;AACA;AGRA,AHSA;AGRA,AHSA;AGRA,AHSA;AGRA,AHSA;AGRA,AHSA;AGRA,AHSA;AGRA,AHSA;AGRA,AHSA;AGRA,AHSA;AGRA,AHSA;AGRA,AHSA;AGRA,AHSA;AGRA,AHSA;AGRA,AHSA;AGRA,AHSA;AGRA,AHSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Preventive platform detection\n// istanbul ignore next\n(function detectUnsupportedEnvironment() {\n var looksLikeNode = typeof process !== \"undefined\";\n var looksLikeBrowser = typeof window !== \"undefined\" && typeof document !== \"undefined\";\n var looksLikeV8 = isFunction(Error.captureStackTrace);\n if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {\n console.warn(\"The follow-redirects package should be excluded from browser builds.\");\n }\n}());\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL(\"\"));\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n // istanbul ignore else\n if (request === self._currentRequest) {\n // Report any write errors\n // istanbul ignore if\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n // istanbul ignore else\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n // istanbul ignore else\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n // istanbul ignore next\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n // istanbul ignore else\n if (isFunction(Error.captureStackTrace)) {\n Error.captureStackTrace(this, this.constructor);\n }\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n","module.exports = require(\"./\").http;\n","module.exports = require(\"./\").https;\n","var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/form-data/index.js b/government-mini-program/miniprogram_npm/form-data/index.js deleted file mode 100644 index f9ecb58..0000000 --- a/government-mini-program/miniprogram_npm/form-data/index.js +++ /dev/null @@ -1,520 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322112, function(require, module, exports) { - - -var CombinedStream = require('combined-stream'); -var util = require('util'); -var path = require('path'); -var http = require('http'); -var https = require('https'); -var parseUrl = require('url').parse; -var fs = require('fs'); -var Stream = require('stream').Stream; -var crypto = require('crypto'); -var mime = require('mime-types'); -var asynckit = require('asynckit'); -var setToStringTag = require('es-set-tostringtag'); -var hasOwn = require('hasown'); -var populate = require('./populate.js'); - -/** - * Create readable "multipart/form-data" streams. - * Can be used to submit forms - * and file uploads to other web applications. - * - * @constructor - * @param {object} options - Properties to be added/overriden for FormData and CombinedStream - */ -function FormData(options) { - if (!(this instanceof FormData)) { - return new FormData(options); - } - - this._overheadLength = 0; - this._valueLength = 0; - this._valuesToMeasure = []; - - CombinedStream.call(this); - - options = options || {}; // eslint-disable-line no-param-reassign - for (var option in options) { // eslint-disable-line no-restricted-syntax - this[option] = options[option]; - } -} - -// make it a Stream -util.inherits(FormData, CombinedStream); - -FormData.LINE_BREAK = '\r\n'; -FormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream'; - -FormData.prototype.append = function (field, value, options) { - options = options || {}; // eslint-disable-line no-param-reassign - - // allow filename as single option - if (typeof options === 'string') { - options = { filename: options }; // eslint-disable-line no-param-reassign - } - - var append = CombinedStream.prototype.append.bind(this); - - // all that streamy business can't handle numbers - if (typeof value === 'number' || value == null) { - value = String(value); // eslint-disable-line no-param-reassign - } - - // https://github.com/felixge/node-form-data/issues/38 - if (Array.isArray(value)) { - /* - * Please convert your array into string - * the way web server expects it - */ - this._error(new Error('Arrays are not supported.')); - return; - } - - var header = this._multiPartHeader(field, value, options); - var footer = this._multiPartFooter(); - - append(header); - append(value); - append(footer); - - // pass along options.knownLength - this._trackLength(header, value, options); -}; - -FormData.prototype._trackLength = function (header, value, options) { - var valueLength = 0; - - /* - * used w/ getLengthSync(), when length is known. - * e.g. for streaming directly from a remote server, - * w/ a known file a size, and not wanting to wait for - * incoming file to finish to get its size. - */ - if (options.knownLength != null) { - valueLength += Number(options.knownLength); - } else if (Buffer.isBuffer(value)) { - valueLength = value.length; - } else if (typeof value === 'string') { - valueLength = Buffer.byteLength(value); - } - - this._valueLength += valueLength; - - // @check why add CRLF? does this account for custom/multiple CRLFs? - this._overheadLength += Buffer.byteLength(header) + FormData.LINE_BREAK.length; - - // empty or either doesn't have path or not an http response or not a stream - if (!value || (!value.path && !(value.readable && hasOwn(value, 'httpVersion')) && !(value instanceof Stream))) { - return; - } - - // no need to bother with the length - if (!options.knownLength) { - this._valuesToMeasure.push(value); - } -}; - -FormData.prototype._lengthRetriever = function (value, callback) { - if (hasOwn(value, 'fd')) { - // take read range into a account - // `end` = Infinity –> read file till the end - // - // TODO: Looks like there is bug in Node fs.createReadStream - // it doesn't respect `end` options without `start` options - // Fix it when node fixes it. - // https://github.com/joyent/node/issues/7819 - if (value.end != undefined && value.end != Infinity && value.start != undefined) { - // when end specified - // no need to calculate range - // inclusive, starts with 0 - callback(null, value.end + 1 - (value.start ? value.start : 0)); // eslint-disable-line callback-return - - // not that fast snoopy - } else { - // still need to fetch file size from fs - fs.stat(value.path, function (err, stat) { - if (err) { - callback(err); - return; - } - - // update final size based on the range options - var fileSize = stat.size - (value.start ? value.start : 0); - callback(null, fileSize); - }); - } - - // or http response - } else if (hasOwn(value, 'httpVersion')) { - callback(null, Number(value.headers['content-length'])); // eslint-disable-line callback-return - - // or request stream http://github.com/mikeal/request - } else if (hasOwn(value, 'httpModule')) { - // wait till response come back - value.on('response', function (response) { - value.pause(); - callback(null, Number(response.headers['content-length'])); - }); - value.resume(); - - // something else - } else { - callback('Unknown stream'); // eslint-disable-line callback-return - } -}; - -FormData.prototype._multiPartHeader = function (field, value, options) { - /* - * custom header specified (as string)? - * it becomes responsible for boundary - * (e.g. to handle extra CRLFs on .NET servers) - */ - if (typeof options.header === 'string') { - return options.header; - } - - var contentDisposition = this._getContentDisposition(value, options); - var contentType = this._getContentType(value, options); - - var contents = ''; - var headers = { - // add custom disposition as third element or keep it two elements if not - 'Content-Disposition': ['form-data', 'name="' + field + '"'].concat(contentDisposition || []), - // if no content type. allow it to be empty array - 'Content-Type': [].concat(contentType || []) - }; - - // allow custom headers. - if (typeof options.header === 'object') { - populate(headers, options.header); - } - - var header; - for (var prop in headers) { // eslint-disable-line no-restricted-syntax - if (hasOwn(headers, prop)) { - header = headers[prop]; - - // skip nullish headers. - if (header == null) { - continue; // eslint-disable-line no-restricted-syntax, no-continue - } - - // convert all headers to arrays. - if (!Array.isArray(header)) { - header = [header]; - } - - // add non-empty headers. - if (header.length) { - contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK; - } - } - } - - return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK; -}; - -FormData.prototype._getContentDisposition = function (value, options) { // eslint-disable-line consistent-return - var filename; - - if (typeof options.filepath === 'string') { - // custom filepath for relative paths - filename = path.normalize(options.filepath).replace(/\\/g, '/'); - } else if (options.filename || (value && (value.name || value.path))) { - /* - * custom filename take precedence - * formidable and the browser add a name property - * fs- and request- streams have path property - */ - filename = path.basename(options.filename || (value && (value.name || value.path))); - } else if (value && value.readable && hasOwn(value, 'httpVersion')) { - // or try http response - filename = path.basename(value.client._httpMessage.path || ''); - } - - if (filename) { - return 'filename="' + filename + '"'; - } -}; - -FormData.prototype._getContentType = function (value, options) { - // use custom content-type above all - var contentType = options.contentType; - - // or try `name` from formidable, browser - if (!contentType && value && value.name) { - contentType = mime.lookup(value.name); - } - - // or try `path` from fs-, request- streams - if (!contentType && value && value.path) { - contentType = mime.lookup(value.path); - } - - // or if it's http-reponse - if (!contentType && value && value.readable && hasOwn(value, 'httpVersion')) { - contentType = value.headers['content-type']; - } - - // or guess it from the filepath or filename - if (!contentType && (options.filepath || options.filename)) { - contentType = mime.lookup(options.filepath || options.filename); - } - - // fallback to the default content type if `value` is not simple value - if (!contentType && value && typeof value === 'object') { - contentType = FormData.DEFAULT_CONTENT_TYPE; - } - - return contentType; -}; - -FormData.prototype._multiPartFooter = function () { - return function (next) { - var footer = FormData.LINE_BREAK; - - var lastPart = this._streams.length === 0; - if (lastPart) { - footer += this._lastBoundary(); - } - - next(footer); - }.bind(this); -}; - -FormData.prototype._lastBoundary = function () { - return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK; -}; - -FormData.prototype.getHeaders = function (userHeaders) { - var header; - var formHeaders = { - 'content-type': 'multipart/form-data; boundary=' + this.getBoundary() - }; - - for (header in userHeaders) { // eslint-disable-line no-restricted-syntax - if (hasOwn(userHeaders, header)) { - formHeaders[header.toLowerCase()] = userHeaders[header]; - } - } - - return formHeaders; -}; - -FormData.prototype.setBoundary = function (boundary) { - if (typeof boundary !== 'string') { - throw new TypeError('FormData boundary must be a string'); - } - this._boundary = boundary; -}; - -FormData.prototype.getBoundary = function () { - if (!this._boundary) { - this._generateBoundary(); - } - - return this._boundary; -}; - -FormData.prototype.getBuffer = function () { - var dataBuffer = new Buffer.alloc(0); // eslint-disable-line new-cap - var boundary = this.getBoundary(); - - // Create the form content. Add Line breaks to the end of data. - for (var i = 0, len = this._streams.length; i < len; i++) { - if (typeof this._streams[i] !== 'function') { - // Add content to the buffer. - if (Buffer.isBuffer(this._streams[i])) { - dataBuffer = Buffer.concat([dataBuffer, this._streams[i]]); - } else { - dataBuffer = Buffer.concat([dataBuffer, Buffer.from(this._streams[i])]); - } - - // Add break after content. - if (typeof this._streams[i] !== 'string' || this._streams[i].substring(2, boundary.length + 2) !== boundary) { - dataBuffer = Buffer.concat([dataBuffer, Buffer.from(FormData.LINE_BREAK)]); - } - } - } - - // Add the footer and return the Buffer object. - return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]); -}; - -FormData.prototype._generateBoundary = function () { - // This generates a 50 character boundary similar to those used by Firefox. - - // They are optimized for boyer-moore parsing. - this._boundary = '--------------------------' + crypto.randomBytes(12).toString('hex'); -}; - -// Note: getLengthSync DOESN'T calculate streams length -// As workaround one can calculate file size manually and add it as knownLength option -FormData.prototype.getLengthSync = function () { - var knownLength = this._overheadLength + this._valueLength; - - // Don't get confused, there are 3 "internal" streams for each keyval pair so it basically checks if there is any value added to the form - if (this._streams.length) { - knownLength += this._lastBoundary().length; - } - - // https://github.com/form-data/form-data/issues/40 - if (!this.hasKnownLength()) { - /* - * Some async length retrievers are present - * therefore synchronous length calculation is false. - * Please use getLength(callback) to get proper length - */ - this._error(new Error('Cannot calculate proper length in synchronous way.')); - } - - return knownLength; -}; - -// Public API to check if length of added values is known -// https://github.com/form-data/form-data/issues/196 -// https://github.com/form-data/form-data/issues/262 -FormData.prototype.hasKnownLength = function () { - var hasKnownLength = true; - - if (this._valuesToMeasure.length) { - hasKnownLength = false; - } - - return hasKnownLength; -}; - -FormData.prototype.getLength = function (cb) { - var knownLength = this._overheadLength + this._valueLength; - - if (this._streams.length) { - knownLength += this._lastBoundary().length; - } - - if (!this._valuesToMeasure.length) { - process.nextTick(cb.bind(this, null, knownLength)); - return; - } - - asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function (err, values) { - if (err) { - cb(err); - return; - } - - values.forEach(function (length) { - knownLength += length; - }); - - cb(null, knownLength); - }); -}; - -FormData.prototype.submit = function (params, cb) { - var request; - var options; - var defaults = { method: 'post' }; - - // parse provided url if it's string or treat it as options object - if (typeof params === 'string') { - params = parseUrl(params); // eslint-disable-line no-param-reassign - /* eslint sort-keys: 0 */ - options = populate({ - port: params.port, - path: params.pathname, - host: params.hostname, - protocol: params.protocol - }, defaults); - } else { // use custom params - options = populate(params, defaults); - // if no port provided use default one - if (!options.port) { - options.port = options.protocol === 'https:' ? 443 : 80; - } - } - - // put that good code in getHeaders to some use - options.headers = this.getHeaders(params.headers); - - // https if specified, fallback to http in any other case - if (options.protocol === 'https:') { - request = https.request(options); - } else { - request = http.request(options); - } - - // get content length and fire away - this.getLength(function (err, length) { - if (err && err !== 'Unknown stream') { - this._error(err); - return; - } - - // add content length - if (length) { - request.setHeader('Content-Length', length); - } - - this.pipe(request); - if (cb) { - var onResponse; - - var callback = function (error, responce) { - request.removeListener('error', callback); - request.removeListener('response', onResponse); - - return cb.call(this, error, responce); // eslint-disable-line no-invalid-this - }; - - onResponse = callback.bind(this, null); - - request.on('error', callback); - request.on('response', onResponse); - } - }.bind(this)); - - return request; -}; - -FormData.prototype._error = function (err) { - if (!this.error) { - this.error = err; - this.pause(); - this.emit('error', err); - } -}; - -FormData.prototype.toString = function () { - return '[object FormData]'; -}; -setToStringTag(FormData, 'FormData'); - -// Public API -module.exports = FormData; - -}, function(modId) {var map = {"./populate.js":1758268322113}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322113, function(require, module, exports) { - - -// populates missing values -module.exports = function (dst, src) { - Object.keys(src).forEach(function (prop) { - dst[prop] = dst[prop] || src[prop]; // eslint-disable-line no-param-reassign - }); - - return dst; -}; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322112); -})() -//miniprogram-npm-outsideDeps=["combined-stream","util","path","http","https","url","fs","stream","crypto","mime-types","asynckit","es-set-tostringtag","hasown"] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/form-data/index.js.map b/government-mini-program/miniprogram_npm/form-data/index.js.map deleted file mode 100644 index b011e50..0000000 --- a/government-mini-program/miniprogram_npm/form-data/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["form_data.js","populate.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["\n\nvar CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar crypto = require('crypto');\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar setToStringTag = require('es-set-tostringtag');\nvar hasOwn = require('hasown');\nvar populate = require('./populate.js');\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {}; // eslint-disable-line no-param-reassign\n for (var option in options) { // eslint-disable-line no-restricted-syntax\n this[option] = options[option];\n }\n}\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function (field, value, options) {\n options = options || {}; // eslint-disable-line no-param-reassign\n\n // allow filename as single option\n if (typeof options === 'string') {\n options = { filename: options }; // eslint-disable-line no-param-reassign\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value === 'number' || value == null) {\n value = String(value); // eslint-disable-line no-param-reassign\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (Array.isArray(value)) {\n /*\n * Please convert your array into string\n * the way web server expects it\n */\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function (header, value, options) {\n var valueLength = 0;\n\n /*\n * used w/ getLengthSync(), when length is known.\n * e.g. for streaming directly from a remote server,\n * w/ a known file a size, and not wanting to wait for\n * incoming file to finish to get its size.\n */\n if (options.knownLength != null) {\n valueLength += Number(options.knownLength);\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength += Buffer.byteLength(header) + FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response or not a stream\n if (!value || (!value.path && !(value.readable && hasOwn(value, 'httpVersion')) && !(value instanceof Stream))) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function (value, callback) {\n if (hasOwn(value, 'fd')) {\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0)); // eslint-disable-line callback-return\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function (err, stat) {\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n var fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (hasOwn(value, 'httpVersion')) {\n callback(null, Number(value.headers['content-length'])); // eslint-disable-line callback-return\n\n // or request stream http://github.com/mikeal/request\n } else if (hasOwn(value, 'httpModule')) {\n // wait till response come back\n value.on('response', function (response) {\n value.pause();\n callback(null, Number(response.headers['content-length']));\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream'); // eslint-disable-line callback-return\n }\n};\n\nFormData.prototype._multiPartHeader = function (field, value, options) {\n /*\n * custom header specified (as string)?\n * it becomes responsible for boundary\n * (e.g. to handle extra CRLFs on .NET servers)\n */\n if (typeof options.header === 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + field + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header === 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) { // eslint-disable-line no-restricted-syntax\n if (hasOwn(headers, prop)) {\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function (value, options) { // eslint-disable-line consistent-return\n var filename;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || (value && (value.name || value.path))) {\n /*\n * custom filename take precedence\n * formidable and the browser add a name property\n * fs- and request- streams have path property\n */\n filename = path.basename(options.filename || (value && (value.name || value.path)));\n } else if (value && value.readable && hasOwn(value, 'httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n return 'filename=\"' + filename + '\"';\n }\n};\n\nFormData.prototype._getContentType = function (value, options) {\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value && value.readable && hasOwn(value, 'httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && value && typeof value === 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function () {\n return function (next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = this._streams.length === 0;\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function () {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function (userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) { // eslint-disable-line no-restricted-syntax\n if (hasOwn(userHeaders, header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function (boundary) {\n if (typeof boundary !== 'string') {\n throw new TypeError('FormData boundary must be a string');\n }\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function () {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function () {\n var dataBuffer = new Buffer.alloc(0); // eslint-disable-line new-cap\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n // Add content to the buffer.\n if (Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat([dataBuffer, this._streams[i]]);\n } else {\n dataBuffer = Buffer.concat([dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring(2, boundary.length + 2) !== boundary) {\n dataBuffer = Buffer.concat([dataBuffer, Buffer.from(FormData.LINE_BREAK)]);\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]);\n};\n\nFormData.prototype._generateBoundary = function () {\n // This generates a 50 character boundary similar to those used by Firefox.\n\n // They are optimized for boyer-moore parsing.\n this._boundary = '--------------------------' + crypto.randomBytes(12).toString('hex');\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually and add it as knownLength option\nFormData.prototype.getLengthSync = function () {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n /*\n * Some async length retrievers are present\n * therefore synchronous length calculation is false.\n * Please use getLength(callback) to get proper length\n */\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function () {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function (cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function (err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function (length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function (params, cb) {\n var request;\n var options;\n var defaults = { method: 'post' };\n\n // parse provided url if it's string or treat it as options object\n if (typeof params === 'string') {\n params = parseUrl(params); // eslint-disable-line no-param-reassign\n /* eslint sort-keys: 0 */\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n } else { // use custom params\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol === 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol === 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function (err, length) {\n if (err && err !== 'Unknown stream') {\n this._error(err);\n return;\n }\n\n // add content length\n if (length) {\n request.setHeader('Content-Length', length);\n }\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce); // eslint-disable-line no-invalid-this\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function (err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\nsetToStringTag(FormData, 'FormData');\n\n// Public API\nmodule.exports = FormData;\n","\n\n// populates missing values\nmodule.exports = function (dst, src) {\n Object.keys(src).forEach(function (prop) {\n dst[prop] = dst[prop] || src[prop]; // eslint-disable-line no-param-reassign\n });\n\n return dst;\n};\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/function-bind/index.js b/government-mini-program/miniprogram_npm/function-bind/index.js deleted file mode 100644 index 0a63dfc..0000000 --- a/government-mini-program/miniprogram_npm/function-bind/index.js +++ /dev/null @@ -1,105 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322114, function(require, module, exports) { - - -var implementation = require('./implementation'); - -module.exports = Function.prototype.bind || implementation; - -}, function(modId) {var map = {"./implementation":1758268322115}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322115, function(require, module, exports) { - - -/* eslint no-invalid-this: 1 */ - -var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; -var toStr = Object.prototype.toString; -var max = Math.max; -var funcType = '[object Function]'; - -var concatty = function concatty(a, b) { - var arr = []; - - for (var i = 0; i < a.length; i += 1) { - arr[i] = a[i]; - } - for (var j = 0; j < b.length; j += 1) { - arr[j + a.length] = b[j]; - } - - return arr; -}; - -var slicy = function slicy(arrLike, offset) { - var arr = []; - for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) { - arr[j] = arrLike[i]; - } - return arr; -}; - -var joiny = function (arr, joiner) { - var str = ''; - for (var i = 0; i < arr.length; i += 1) { - str += arr[i]; - if (i + 1 < arr.length) { - str += joiner; - } - } - return str; -}; - -module.exports = function bind(that) { - var target = this; - if (typeof target !== 'function' || toStr.apply(target) !== funcType) { - throw new TypeError(ERROR_MESSAGE + target); - } - var args = slicy(arguments, 1); - - var bound; - var binder = function () { - if (this instanceof bound) { - var result = target.apply( - this, - concatty(args, arguments) - ); - if (Object(result) === result) { - return result; - } - return this; - } - return target.apply( - that, - concatty(args, arguments) - ); - - }; - - var boundLength = max(0, target.length - args.length); - var boundArgs = []; - for (var i = 0; i < boundLength; i++) { - boundArgs[i] = '$' + i; - } - - bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder); - - if (target.prototype) { - var Empty = function Empty() {}; - Empty.prototype = target.prototype; - bound.prototype = new Empty(); - Empty.prototype = null; - } - - return bound; -}; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322114); -})() -//miniprogram-npm-outsideDeps=[] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/function-bind/index.js.map b/government-mini-program/miniprogram_npm/function-bind/index.js.map deleted file mode 100644 index 90948f4..0000000 --- a/government-mini-program/miniprogram_npm/function-bind/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js","implementation.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/get-intrinsic/index.js b/government-mini-program/miniprogram_npm/get-intrinsic/index.js deleted file mode 100644 index bea783a..0000000 --- a/government-mini-program/miniprogram_npm/get-intrinsic/index.js +++ /dev/null @@ -1,391 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322116, function(require, module, exports) { - - -var undefined; - -var $Object = require('es-object-atoms'); - -var $Error = require('es-errors'); -var $EvalError = require('es-errors/eval'); -var $RangeError = require('es-errors/range'); -var $ReferenceError = require('es-errors/ref'); -var $SyntaxError = require('es-errors/syntax'); -var $TypeError = require('es-errors/type'); -var $URIError = require('es-errors/uri'); - -var abs = require('math-intrinsics/abs'); -var floor = require('math-intrinsics/floor'); -var max = require('math-intrinsics/max'); -var min = require('math-intrinsics/min'); -var pow = require('math-intrinsics/pow'); -var round = require('math-intrinsics/round'); -var sign = require('math-intrinsics/sign'); - -var $Function = Function; - -// eslint-disable-next-line consistent-return -var getEvalledConstructor = function (expressionSyntax) { - try { - return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')(); - } catch (e) {} -}; - -var $gOPD = require('gopd'); -var $defineProperty = require('es-define-property'); - -var throwTypeError = function () { - throw new $TypeError(); -}; -var ThrowTypeError = $gOPD - ? (function () { - try { - // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties - arguments.callee; // IE 8 does not throw here - return throwTypeError; - } catch (calleeThrows) { - try { - // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '') - return $gOPD(arguments, 'callee').get; - } catch (gOPDthrows) { - return throwTypeError; - } - } - }()) - : throwTypeError; - -var hasSymbols = require('has-symbols')(); - -var getProto = require('get-proto'); -var $ObjectGPO = require('get-proto/Object.getPrototypeOf'); -var $ReflectGPO = require('get-proto/Reflect.getPrototypeOf'); - -var $apply = require('call-bind-apply-helpers/functionApply'); -var $call = require('call-bind-apply-helpers/functionCall'); - -var needsEval = {}; - -var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array); - -var INTRINSICS = { - __proto__: null, - '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError, - '%Array%': Array, - '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, - '%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined, - '%AsyncFromSyncIteratorPrototype%': undefined, - '%AsyncFunction%': needsEval, - '%AsyncGenerator%': needsEval, - '%AsyncGeneratorFunction%': needsEval, - '%AsyncIteratorPrototype%': needsEval, - '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, - '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt, - '%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array, - '%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array, - '%Boolean%': Boolean, - '%DataView%': typeof DataView === 'undefined' ? undefined : DataView, - '%Date%': Date, - '%decodeURI%': decodeURI, - '%decodeURIComponent%': decodeURIComponent, - '%encodeURI%': encodeURI, - '%encodeURIComponent%': encodeURIComponent, - '%Error%': $Error, - '%eval%': eval, // eslint-disable-line no-eval - '%EvalError%': $EvalError, - '%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array, - '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, - '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, - '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry, - '%Function%': $Function, - '%GeneratorFunction%': needsEval, - '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, - '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, - '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, - '%isFinite%': isFinite, - '%isNaN%': isNaN, - '%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined, - '%JSON%': typeof JSON === 'object' ? JSON : undefined, - '%Map%': typeof Map === 'undefined' ? undefined : Map, - '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()), - '%Math%': Math, - '%Number%': Number, - '%Object%': $Object, - '%Object.getOwnPropertyDescriptor%': $gOPD, - '%parseFloat%': parseFloat, - '%parseInt%': parseInt, - '%Promise%': typeof Promise === 'undefined' ? undefined : Promise, - '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, - '%RangeError%': $RangeError, - '%ReferenceError%': $ReferenceError, - '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, - '%RegExp%': RegExp, - '%Set%': typeof Set === 'undefined' ? undefined : Set, - '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()), - '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, - '%String%': String, - '%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined, - '%Symbol%': hasSymbols ? Symbol : undefined, - '%SyntaxError%': $SyntaxError, - '%ThrowTypeError%': ThrowTypeError, - '%TypedArray%': TypedArray, - '%TypeError%': $TypeError, - '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, - '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, - '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, - '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, - '%URIError%': $URIError, - '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, - '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef, - '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet, - - '%Function.prototype.call%': $call, - '%Function.prototype.apply%': $apply, - '%Object.defineProperty%': $defineProperty, - '%Object.getPrototypeOf%': $ObjectGPO, - '%Math.abs%': abs, - '%Math.floor%': floor, - '%Math.max%': max, - '%Math.min%': min, - '%Math.pow%': pow, - '%Math.round%': round, - '%Math.sign%': sign, - '%Reflect.getPrototypeOf%': $ReflectGPO -}; - -if (getProto) { - try { - null.error; // eslint-disable-line no-unused-expressions - } catch (e) { - // https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229 - var errorProto = getProto(getProto(e)); - INTRINSICS['%Error.prototype%'] = errorProto; - } -} - -var doEval = function doEval(name) { - var value; - if (name === '%AsyncFunction%') { - value = getEvalledConstructor('async function () {}'); - } else if (name === '%GeneratorFunction%') { - value = getEvalledConstructor('function* () {}'); - } else if (name === '%AsyncGeneratorFunction%') { - value = getEvalledConstructor('async function* () {}'); - } else if (name === '%AsyncGenerator%') { - var fn = doEval('%AsyncGeneratorFunction%'); - if (fn) { - value = fn.prototype; - } - } else if (name === '%AsyncIteratorPrototype%') { - var gen = doEval('%AsyncGenerator%'); - if (gen && getProto) { - value = getProto(gen.prototype); - } - } - - INTRINSICS[name] = value; - - return value; -}; - -var LEGACY_ALIASES = { - __proto__: null, - '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'], - '%ArrayPrototype%': ['Array', 'prototype'], - '%ArrayProto_entries%': ['Array', 'prototype', 'entries'], - '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'], - '%ArrayProto_keys%': ['Array', 'prototype', 'keys'], - '%ArrayProto_values%': ['Array', 'prototype', 'values'], - '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'], - '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'], - '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'], - '%BooleanPrototype%': ['Boolean', 'prototype'], - '%DataViewPrototype%': ['DataView', 'prototype'], - '%DatePrototype%': ['Date', 'prototype'], - '%ErrorPrototype%': ['Error', 'prototype'], - '%EvalErrorPrototype%': ['EvalError', 'prototype'], - '%Float32ArrayPrototype%': ['Float32Array', 'prototype'], - '%Float64ArrayPrototype%': ['Float64Array', 'prototype'], - '%FunctionPrototype%': ['Function', 'prototype'], - '%Generator%': ['GeneratorFunction', 'prototype'], - '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'], - '%Int8ArrayPrototype%': ['Int8Array', 'prototype'], - '%Int16ArrayPrototype%': ['Int16Array', 'prototype'], - '%Int32ArrayPrototype%': ['Int32Array', 'prototype'], - '%JSONParse%': ['JSON', 'parse'], - '%JSONStringify%': ['JSON', 'stringify'], - '%MapPrototype%': ['Map', 'prototype'], - '%NumberPrototype%': ['Number', 'prototype'], - '%ObjectPrototype%': ['Object', 'prototype'], - '%ObjProto_toString%': ['Object', 'prototype', 'toString'], - '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'], - '%PromisePrototype%': ['Promise', 'prototype'], - '%PromiseProto_then%': ['Promise', 'prototype', 'then'], - '%Promise_all%': ['Promise', 'all'], - '%Promise_reject%': ['Promise', 'reject'], - '%Promise_resolve%': ['Promise', 'resolve'], - '%RangeErrorPrototype%': ['RangeError', 'prototype'], - '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'], - '%RegExpPrototype%': ['RegExp', 'prototype'], - '%SetPrototype%': ['Set', 'prototype'], - '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'], - '%StringPrototype%': ['String', 'prototype'], - '%SymbolPrototype%': ['Symbol', 'prototype'], - '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'], - '%TypedArrayPrototype%': ['TypedArray', 'prototype'], - '%TypeErrorPrototype%': ['TypeError', 'prototype'], - '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'], - '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'], - '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'], - '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'], - '%URIErrorPrototype%': ['URIError', 'prototype'], - '%WeakMapPrototype%': ['WeakMap', 'prototype'], - '%WeakSetPrototype%': ['WeakSet', 'prototype'] -}; - -var bind = require('function-bind'); -var hasOwn = require('hasown'); -var $concat = bind.call($call, Array.prototype.concat); -var $spliceApply = bind.call($apply, Array.prototype.splice); -var $replace = bind.call($call, String.prototype.replace); -var $strSlice = bind.call($call, String.prototype.slice); -var $exec = bind.call($call, RegExp.prototype.exec); - -/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */ -var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; -var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */ -var stringToPath = function stringToPath(string) { - var first = $strSlice(string, 0, 1); - var last = $strSlice(string, -1); - if (first === '%' && last !== '%') { - throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`'); - } else if (last === '%' && first !== '%') { - throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`'); - } - var result = []; - $replace(string, rePropName, function (match, number, quote, subString) { - result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match; - }); - return result; -}; -/* end adaptation */ - -var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) { - var intrinsicName = name; - var alias; - if (hasOwn(LEGACY_ALIASES, intrinsicName)) { - alias = LEGACY_ALIASES[intrinsicName]; - intrinsicName = '%' + alias[0] + '%'; - } - - if (hasOwn(INTRINSICS, intrinsicName)) { - var value = INTRINSICS[intrinsicName]; - if (value === needsEval) { - value = doEval(intrinsicName); - } - if (typeof value === 'undefined' && !allowMissing) { - throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); - } - - return { - alias: alias, - name: intrinsicName, - value: value - }; - } - - throw new $SyntaxError('intrinsic ' + name + ' does not exist!'); -}; - -module.exports = function GetIntrinsic(name, allowMissing) { - if (typeof name !== 'string' || name.length === 0) { - throw new $TypeError('intrinsic name must be a non-empty string'); - } - if (arguments.length > 1 && typeof allowMissing !== 'boolean') { - throw new $TypeError('"allowMissing" argument must be a boolean'); - } - - if ($exec(/^%?[^%]*%?$/, name) === null) { - throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name'); - } - var parts = stringToPath(name); - var intrinsicBaseName = parts.length > 0 ? parts[0] : ''; - - var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing); - var intrinsicRealName = intrinsic.name; - var value = intrinsic.value; - var skipFurtherCaching = false; - - var alias = intrinsic.alias; - if (alias) { - intrinsicBaseName = alias[0]; - $spliceApply(parts, $concat([0, 1], alias)); - } - - for (var i = 1, isOwn = true; i < parts.length; i += 1) { - var part = parts[i]; - var first = $strSlice(part, 0, 1); - var last = $strSlice(part, -1); - if ( - ( - (first === '"' || first === "'" || first === '`') - || (last === '"' || last === "'" || last === '`') - ) - && first !== last - ) { - throw new $SyntaxError('property names with quotes must have matching quotes'); - } - if (part === 'constructor' || !isOwn) { - skipFurtherCaching = true; - } - - intrinsicBaseName += '.' + part; - intrinsicRealName = '%' + intrinsicBaseName + '%'; - - if (hasOwn(INTRINSICS, intrinsicRealName)) { - value = INTRINSICS[intrinsicRealName]; - } else if (value != null) { - if (!(part in value)) { - if (!allowMissing) { - throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.'); - } - return void undefined; - } - if ($gOPD && (i + 1) >= parts.length) { - var desc = $gOPD(value, part); - isOwn = !!desc; - - // By convention, when a data property is converted to an accessor - // property to emulate a data property that does not suffer from - // the override mistake, that accessor's getter is marked with - // an `originalValue` property. Here, when we detect this, we - // uphold the illusion by pretending to see that original data - // property, i.e., returning the value rather than the getter - // itself. - if (isOwn && 'get' in desc && !('originalValue' in desc.get)) { - value = desc.get; - } else { - value = value[part]; - } - } else { - isOwn = hasOwn(value, part); - value = value[part]; - } - - if (isOwn && !skipFurtherCaching) { - INTRINSICS[intrinsicRealName] = value; - } - } - } - return value; -}; - -}, function(modId) {var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322116); -})() -//miniprogram-npm-outsideDeps=["es-object-atoms","es-errors","es-errors/eval","es-errors/range","es-errors/ref","es-errors/syntax","es-errors/type","es-errors/uri","math-intrinsics/abs","math-intrinsics/floor","math-intrinsics/max","math-intrinsics/min","math-intrinsics/pow","math-intrinsics/round","math-intrinsics/sign","gopd","es-define-property","has-symbols","get-proto","get-proto/Object.getPrototypeOf","get-proto/Reflect.getPrototypeOf","call-bind-apply-helpers/functionApply","call-bind-apply-helpers/functionCall","function-bind","hasown"] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/get-intrinsic/index.js.map b/government-mini-program/miniprogram_npm/get-intrinsic/index.js.map deleted file mode 100644 index c4dd4ff..0000000 --- a/government-mini-program/miniprogram_npm/get-intrinsic/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/get-proto/index.js b/government-mini-program/miniprogram_npm/get-proto/index.js deleted file mode 100644 index 3f588f7..0000000 --- a/government-mini-program/miniprogram_npm/get-proto/index.js +++ /dev/null @@ -1,56 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322117, function(require, module, exports) { - - -var reflectGetProto = require('./Reflect.getPrototypeOf'); -var originalGetProto = require('./Object.getPrototypeOf'); - -var getDunderProto = require('dunder-proto/get'); - -/** @type {import('.')} */ -module.exports = reflectGetProto - ? function getProto(O) { - // @ts-expect-error TS can't narrow inside a closure, for some reason - return reflectGetProto(O); - } - : originalGetProto - ? function getProto(O) { - if (!O || (typeof O !== 'object' && typeof O !== 'function')) { - throw new TypeError('getProto: not an object'); - } - // @ts-expect-error TS can't narrow inside a closure, for some reason - return originalGetProto(O); - } - : getDunderProto - ? function getProto(O) { - // @ts-expect-error TS can't narrow inside a closure, for some reason - return getDunderProto(O); - } - : null; - -}, function(modId) {var map = {"./Reflect.getPrototypeOf":1758268322118,"./Object.getPrototypeOf":1758268322119}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322118, function(require, module, exports) { - - -/** @type {import('./Reflect.getPrototypeOf')} */ -module.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322119, function(require, module, exports) { - - -var $Object = require('es-object-atoms'); - -/** @type {import('./Object.getPrototypeOf')} */ -module.exports = $Object.getPrototypeOf || null; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322117); -})() -//miniprogram-npm-outsideDeps=["dunder-proto/get","es-object-atoms"] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/get-proto/index.js.map b/government-mini-program/miniprogram_npm/get-proto/index.js.map deleted file mode 100644 index 93c567f..0000000 --- a/government-mini-program/miniprogram_npm/get-proto/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js","Reflect.getPrototypeOf.js","Object.getPrototypeOf.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;AELA,ADGA,ADGA;AELA,ADGA,ADGA;AELA,AFMA;AELA,AFMA;AELA,AFMA;AELA,AFMA;AELA,AFMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/gopd/index.js b/government-mini-program/miniprogram_npm/gopd/index.js deleted file mode 100644 index 1f6664b..0000000 --- a/government-mini-program/miniprogram_npm/gopd/index.js +++ /dev/null @@ -1,35 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322120, function(require, module, exports) { - - -/** @type {import('.')} */ -var $gOPD = require('./gOPD'); - -if ($gOPD) { - try { - $gOPD([], 'length'); - } catch (e) { - // IE 8 has a broken gOPD - $gOPD = null; - } -} - -module.exports = $gOPD; - -}, function(modId) {var map = {"./gOPD":1758268322121}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322121, function(require, module, exports) { - - -/** @type {import('./gOPD')} */ -module.exports = Object.getOwnPropertyDescriptor; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322120); -})() -//miniprogram-npm-outsideDeps=[] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/gopd/index.js.map b/government-mini-program/miniprogram_npm/gopd/index.js.map deleted file mode 100644 index ce54e19..0000000 --- a/government-mini-program/miniprogram_npm/gopd/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js","gOPD.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/has-symbols/index.js b/government-mini-program/miniprogram_npm/has-symbols/index.js deleted file mode 100644 index d54ccc5..0000000 --- a/government-mini-program/miniprogram_npm/has-symbols/index.js +++ /dev/null @@ -1,75 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322122, function(require, module, exports) { - - -var origSymbol = typeof Symbol !== 'undefined' && Symbol; -var hasSymbolSham = require('./shams'); - -/** @type {import('.')} */ -module.exports = function hasNativeSymbols() { - if (typeof origSymbol !== 'function') { return false; } - if (typeof Symbol !== 'function') { return false; } - if (typeof origSymbol('foo') !== 'symbol') { return false; } - if (typeof Symbol('bar') !== 'symbol') { return false; } - - return hasSymbolSham(); -}; - -}, function(modId) {var map = {"./shams":1758268322123}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322123, function(require, module, exports) { - - -/** @type {import('./shams')} */ -/* eslint complexity: [2, 18], max-statements: [2, 33] */ -module.exports = function hasSymbols() { - if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } - if (typeof Symbol.iterator === 'symbol') { return true; } - - /** @type {{ [k in symbol]?: unknown }} */ - var obj = {}; - var sym = Symbol('test'); - var symObj = Object(sym); - if (typeof sym === 'string') { return false; } - - if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } - if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } - - // temp disabled per https://github.com/ljharb/object.assign/issues/17 - // if (sym instanceof Symbol) { return false; } - // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 - // if (!(symObj instanceof Symbol)) { return false; } - - // if (typeof Symbol.prototype.toString !== 'function') { return false; } - // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; } - - var symVal = 42; - obj[sym] = symVal; - for (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop - if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } - - if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } - - var syms = Object.getOwnPropertySymbols(obj); - if (syms.length !== 1 || syms[0] !== sym) { return false; } - - if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } - - if (typeof Object.getOwnPropertyDescriptor === 'function') { - // eslint-disable-next-line no-extra-parens - var descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym)); - if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } - } - - return true; -}; - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322122); -})() -//miniprogram-npm-outsideDeps=[] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/has-symbols/index.js.map b/government-mini-program/miniprogram_npm/has-symbols/index.js.map deleted file mode 100644 index 1b5d63e..0000000 --- a/government-mini-program/miniprogram_npm/has-symbols/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js","shams.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/has-tostringtag/index.js b/government-mini-program/miniprogram_npm/has-tostringtag/index.js deleted file mode 100644 index 32e9a76..0000000 --- a/government-mini-program/miniprogram_npm/has-tostringtag/index.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322124, function(require, module, exports) { - - -var hasSymbols = require('has-symbols'); - -/** @type {import('.')} */ -module.exports = function hasToStringTag() { - return hasSymbols() && typeof Symbol.toStringTag === 'symbol'; -}; - -}, function(modId) {var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322124); -})() -//miniprogram-npm-outsideDeps=["has-symbols"] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/has-tostringtag/index.js.map b/government-mini-program/miniprogram_npm/has-tostringtag/index.js.map deleted file mode 100644 index 79e0b5c..0000000 --- a/government-mini-program/miniprogram_npm/has-tostringtag/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["\n\nvar hasSymbols = require('has-symbols');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTag() {\n\treturn hasSymbols() && typeof Symbol.toStringTag === 'symbol';\n};\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/hasown/index.js b/government-mini-program/miniprogram_npm/hasown/index.js deleted file mode 100644 index 2b8d364..0000000 --- a/government-mini-program/miniprogram_npm/hasown/index.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322125, function(require, module, exports) { - - -var call = Function.prototype.call; -var $hasOwn = Object.prototype.hasOwnProperty; -var bind = require('function-bind'); - -/** @type {import('.')} */ -module.exports = bind.call(call, $hasOwn); - -}, function(modId) {var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322125); -})() -//miniprogram-npm-outsideDeps=["function-bind"] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/hasown/index.js.map b/government-mini-program/miniprogram_npm/hasown/index.js.map deleted file mode 100644 index b3ed782..0000000 --- a/government-mini-program/miniprogram_npm/hasown/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/mime-db/index.js b/government-mini-program/miniprogram_npm/mime-db/index.js deleted file mode 100644 index 405ff42..0000000 --- a/government-mini-program/miniprogram_npm/mime-db/index.js +++ /dev/null @@ -1,8547 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322126, function(require, module, exports) { -/*! - * mime-db - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015-2022 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * Module exports. - */ - -module.exports = require('./db.json') - -}, function(modId) {var map = {"./db.json":1758268322127}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322127, function(require, module, exports) { -module.exports = { - "application/1d-interleaved-parityfec": { - "source": "iana" - }, - "application/3gpdash-qoe-report+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/3gpp-ims+xml": { - "source": "iana", - "compressible": true - }, - "application/3gpphal+json": { - "source": "iana", - "compressible": true - }, - "application/3gpphalforms+json": { - "source": "iana", - "compressible": true - }, - "application/a2l": { - "source": "iana" - }, - "application/ace+cbor": { - "source": "iana" - }, - "application/activemessage": { - "source": "iana" - }, - "application/activity+json": { - "source": "iana", - "compressible": true - }, - "application/alto-costmap+json": { - "source": "iana", - "compressible": true - }, - "application/alto-costmapfilter+json": { - "source": "iana", - "compressible": true - }, - "application/alto-directory+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointcost+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointcostparams+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointprop+json": { - "source": "iana", - "compressible": true - }, - "application/alto-endpointpropparams+json": { - "source": "iana", - "compressible": true - }, - "application/alto-error+json": { - "source": "iana", - "compressible": true - }, - "application/alto-networkmap+json": { - "source": "iana", - "compressible": true - }, - "application/alto-networkmapfilter+json": { - "source": "iana", - "compressible": true - }, - "application/alto-updatestreamcontrol+json": { - "source": "iana", - "compressible": true - }, - "application/alto-updatestreamparams+json": { - "source": "iana", - "compressible": true - }, - "application/aml": { - "source": "iana" - }, - "application/andrew-inset": { - "source": "iana", - "extensions": ["ez"] - }, - "application/applefile": { - "source": "iana" - }, - "application/applixware": { - "source": "apache", - "extensions": ["aw"] - }, - "application/at+jwt": { - "source": "iana" - }, - "application/atf": { - "source": "iana" - }, - "application/atfx": { - "source": "iana" - }, - "application/atom+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atom"] - }, - "application/atomcat+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atomcat"] - }, - "application/atomdeleted+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atomdeleted"] - }, - "application/atomicmail": { - "source": "iana" - }, - "application/atomsvc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["atomsvc"] - }, - "application/atsc-dwd+xml": { - "source": "iana", - "compressible": true, - "extensions": ["dwd"] - }, - "application/atsc-dynamic-event-message": { - "source": "iana" - }, - "application/atsc-held+xml": { - "source": "iana", - "compressible": true, - "extensions": ["held"] - }, - "application/atsc-rdt+json": { - "source": "iana", - "compressible": true - }, - "application/atsc-rsat+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rsat"] - }, - "application/atxml": { - "source": "iana" - }, - "application/auth-policy+xml": { - "source": "iana", - "compressible": true - }, - "application/bacnet-xdd+zip": { - "source": "iana", - "compressible": false - }, - "application/batch-smtp": { - "source": "iana" - }, - "application/bdoc": { - "compressible": false, - "extensions": ["bdoc"] - }, - "application/beep+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/calendar+json": { - "source": "iana", - "compressible": true - }, - "application/calendar+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xcs"] - }, - "application/call-completion": { - "source": "iana" - }, - "application/cals-1840": { - "source": "iana" - }, - "application/captive+json": { - "source": "iana", - "compressible": true - }, - "application/cbor": { - "source": "iana" - }, - "application/cbor-seq": { - "source": "iana" - }, - "application/cccex": { - "source": "iana" - }, - "application/ccmp+xml": { - "source": "iana", - "compressible": true - }, - "application/ccxml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ccxml"] - }, - "application/cdfx+xml": { - "source": "iana", - "compressible": true, - "extensions": ["cdfx"] - }, - "application/cdmi-capability": { - "source": "iana", - "extensions": ["cdmia"] - }, - "application/cdmi-container": { - "source": "iana", - "extensions": ["cdmic"] - }, - "application/cdmi-domain": { - "source": "iana", - "extensions": ["cdmid"] - }, - "application/cdmi-object": { - "source": "iana", - "extensions": ["cdmio"] - }, - "application/cdmi-queue": { - "source": "iana", - "extensions": ["cdmiq"] - }, - "application/cdni": { - "source": "iana" - }, - "application/cea": { - "source": "iana" - }, - "application/cea-2018+xml": { - "source": "iana", - "compressible": true - }, - "application/cellml+xml": { - "source": "iana", - "compressible": true - }, - "application/cfw": { - "source": "iana" - }, - "application/city+json": { - "source": "iana", - "compressible": true - }, - "application/clr": { - "source": "iana" - }, - "application/clue+xml": { - "source": "iana", - "compressible": true - }, - "application/clue_info+xml": { - "source": "iana", - "compressible": true - }, - "application/cms": { - "source": "iana" - }, - "application/cnrp+xml": { - "source": "iana", - "compressible": true - }, - "application/coap-group+json": { - "source": "iana", - "compressible": true - }, - "application/coap-payload": { - "source": "iana" - }, - "application/commonground": { - "source": "iana" - }, - "application/conference-info+xml": { - "source": "iana", - "compressible": true - }, - "application/cose": { - "source": "iana" - }, - "application/cose-key": { - "source": "iana" - }, - "application/cose-key-set": { - "source": "iana" - }, - "application/cpl+xml": { - "source": "iana", - "compressible": true, - "extensions": ["cpl"] - }, - "application/csrattrs": { - "source": "iana" - }, - "application/csta+xml": { - "source": "iana", - "compressible": true - }, - "application/cstadata+xml": { - "source": "iana", - "compressible": true - }, - "application/csvm+json": { - "source": "iana", - "compressible": true - }, - "application/cu-seeme": { - "source": "apache", - "extensions": ["cu"] - }, - "application/cwt": { - "source": "iana" - }, - "application/cybercash": { - "source": "iana" - }, - "application/dart": { - "compressible": true - }, - "application/dash+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mpd"] - }, - "application/dash-patch+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mpp"] - }, - "application/dashdelta": { - "source": "iana" - }, - "application/davmount+xml": { - "source": "iana", - "compressible": true, - "extensions": ["davmount"] - }, - "application/dca-rft": { - "source": "iana" - }, - "application/dcd": { - "source": "iana" - }, - "application/dec-dx": { - "source": "iana" - }, - "application/dialog-info+xml": { - "source": "iana", - "compressible": true - }, - "application/dicom": { - "source": "iana" - }, - "application/dicom+json": { - "source": "iana", - "compressible": true - }, - "application/dicom+xml": { - "source": "iana", - "compressible": true - }, - "application/dii": { - "source": "iana" - }, - "application/dit": { - "source": "iana" - }, - "application/dns": { - "source": "iana" - }, - "application/dns+json": { - "source": "iana", - "compressible": true - }, - "application/dns-message": { - "source": "iana" - }, - "application/docbook+xml": { - "source": "apache", - "compressible": true, - "extensions": ["dbk"] - }, - "application/dots+cbor": { - "source": "iana" - }, - "application/dskpp+xml": { - "source": "iana", - "compressible": true - }, - "application/dssc+der": { - "source": "iana", - "extensions": ["dssc"] - }, - "application/dssc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xdssc"] - }, - "application/dvcs": { - "source": "iana" - }, - "application/ecmascript": { - "source": "iana", - "compressible": true, - "extensions": ["es","ecma"] - }, - "application/edi-consent": { - "source": "iana" - }, - "application/edi-x12": { - "source": "iana", - "compressible": false - }, - "application/edifact": { - "source": "iana", - "compressible": false - }, - "application/efi": { - "source": "iana" - }, - "application/elm+json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/elm+xml": { - "source": "iana", - "compressible": true - }, - "application/emergencycalldata.cap+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/emergencycalldata.comment+xml": { - "source": "iana", - "compressible": true - }, - "application/emergencycalldata.control+xml": { - "source": "iana", - "compressible": true - }, - "application/emergencycalldata.deviceinfo+xml": { - "source": "iana", - "compressible": true - }, - "application/emergencycalldata.ecall.msd": { - "source": "iana" - }, - "application/emergencycalldata.providerinfo+xml": { - "source": "iana", - "compressible": true - }, - "application/emergencycalldata.serviceinfo+xml": { - "source": "iana", - "compressible": true - }, - "application/emergencycalldata.subscriberinfo+xml": { - "source": "iana", - "compressible": true - }, - "application/emergencycalldata.veds+xml": { - "source": "iana", - "compressible": true - }, - "application/emma+xml": { - "source": "iana", - "compressible": true, - "extensions": ["emma"] - }, - "application/emotionml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["emotionml"] - }, - "application/encaprtp": { - "source": "iana" - }, - "application/epp+xml": { - "source": "iana", - "compressible": true - }, - "application/epub+zip": { - "source": "iana", - "compressible": false, - "extensions": ["epub"] - }, - "application/eshop": { - "source": "iana" - }, - "application/exi": { - "source": "iana", - "extensions": ["exi"] - }, - "application/expect-ct-report+json": { - "source": "iana", - "compressible": true - }, - "application/express": { - "source": "iana", - "extensions": ["exp"] - }, - "application/fastinfoset": { - "source": "iana" - }, - "application/fastsoap": { - "source": "iana" - }, - "application/fdt+xml": { - "source": "iana", - "compressible": true, - "extensions": ["fdt"] - }, - "application/fhir+json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/fhir+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/fido.trusted-apps+json": { - "compressible": true - }, - "application/fits": { - "source": "iana" - }, - "application/flexfec": { - "source": "iana" - }, - "application/font-sfnt": { - "source": "iana" - }, - "application/font-tdpfr": { - "source": "iana", - "extensions": ["pfr"] - }, - "application/font-woff": { - "source": "iana", - "compressible": false - }, - "application/framework-attributes+xml": { - "source": "iana", - "compressible": true - }, - "application/geo+json": { - "source": "iana", - "compressible": true, - "extensions": ["geojson"] - }, - "application/geo+json-seq": { - "source": "iana" - }, - "application/geopackage+sqlite3": { - "source": "iana" - }, - "application/geoxacml+xml": { - "source": "iana", - "compressible": true - }, - "application/gltf-buffer": { - "source": "iana" - }, - "application/gml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["gml"] - }, - "application/gpx+xml": { - "source": "apache", - "compressible": true, - "extensions": ["gpx"] - }, - "application/gxf": { - "source": "apache", - "extensions": ["gxf"] - }, - "application/gzip": { - "source": "iana", - "compressible": false, - "extensions": ["gz"] - }, - "application/h224": { - "source": "iana" - }, - "application/held+xml": { - "source": "iana", - "compressible": true - }, - "application/hjson": { - "extensions": ["hjson"] - }, - "application/http": { - "source": "iana" - }, - "application/hyperstudio": { - "source": "iana", - "extensions": ["stk"] - }, - "application/ibe-key-request+xml": { - "source": "iana", - "compressible": true - }, - "application/ibe-pkg-reply+xml": { - "source": "iana", - "compressible": true - }, - "application/ibe-pp-data": { - "source": "iana" - }, - "application/iges": { - "source": "iana" - }, - "application/im-iscomposing+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/index": { - "source": "iana" - }, - "application/index.cmd": { - "source": "iana" - }, - "application/index.obj": { - "source": "iana" - }, - "application/index.response": { - "source": "iana" - }, - "application/index.vnd": { - "source": "iana" - }, - "application/inkml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ink","inkml"] - }, - "application/iotp": { - "source": "iana" - }, - "application/ipfix": { - "source": "iana", - "extensions": ["ipfix"] - }, - "application/ipp": { - "source": "iana" - }, - "application/isup": { - "source": "iana" - }, - "application/its+xml": { - "source": "iana", - "compressible": true, - "extensions": ["its"] - }, - "application/java-archive": { - "source": "apache", - "compressible": false, - "extensions": ["jar","war","ear"] - }, - "application/java-serialized-object": { - "source": "apache", - "compressible": false, - "extensions": ["ser"] - }, - "application/java-vm": { - "source": "apache", - "compressible": false, - "extensions": ["class"] - }, - "application/javascript": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["js","mjs"] - }, - "application/jf2feed+json": { - "source": "iana", - "compressible": true - }, - "application/jose": { - "source": "iana" - }, - "application/jose+json": { - "source": "iana", - "compressible": true - }, - "application/jrd+json": { - "source": "iana", - "compressible": true - }, - "application/jscalendar+json": { - "source": "iana", - "compressible": true - }, - "application/json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["json","map"] - }, - "application/json-patch+json": { - "source": "iana", - "compressible": true - }, - "application/json-seq": { - "source": "iana" - }, - "application/json5": { - "extensions": ["json5"] - }, - "application/jsonml+json": { - "source": "apache", - "compressible": true, - "extensions": ["jsonml"] - }, - "application/jwk+json": { - "source": "iana", - "compressible": true - }, - "application/jwk-set+json": { - "source": "iana", - "compressible": true - }, - "application/jwt": { - "source": "iana" - }, - "application/kpml-request+xml": { - "source": "iana", - "compressible": true - }, - "application/kpml-response+xml": { - "source": "iana", - "compressible": true - }, - "application/ld+json": { - "source": "iana", - "compressible": true, - "extensions": ["jsonld"] - }, - "application/lgr+xml": { - "source": "iana", - "compressible": true, - "extensions": ["lgr"] - }, - "application/link-format": { - "source": "iana" - }, - "application/load-control+xml": { - "source": "iana", - "compressible": true - }, - "application/lost+xml": { - "source": "iana", - "compressible": true, - "extensions": ["lostxml"] - }, - "application/lostsync+xml": { - "source": "iana", - "compressible": true - }, - "application/lpf+zip": { - "source": "iana", - "compressible": false - }, - "application/lxf": { - "source": "iana" - }, - "application/mac-binhex40": { - "source": "iana", - "extensions": ["hqx"] - }, - "application/mac-compactpro": { - "source": "apache", - "extensions": ["cpt"] - }, - "application/macwriteii": { - "source": "iana" - }, - "application/mads+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mads"] - }, - "application/manifest+json": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["webmanifest"] - }, - "application/marc": { - "source": "iana", - "extensions": ["mrc"] - }, - "application/marcxml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mrcx"] - }, - "application/mathematica": { - "source": "iana", - "extensions": ["ma","nb","mb"] - }, - "application/mathml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mathml"] - }, - "application/mathml-content+xml": { - "source": "iana", - "compressible": true - }, - "application/mathml-presentation+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-associated-procedure-description+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-deregister+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-envelope+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-msk+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-msk-response+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-protection-description+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-reception-report+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-register+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-register-response+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-schedule+xml": { - "source": "iana", - "compressible": true - }, - "application/mbms-user-service-description+xml": { - "source": "iana", - "compressible": true - }, - "application/mbox": { - "source": "iana", - "extensions": ["mbox"] - }, - "application/media-policy-dataset+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mpf"] - }, - "application/media_control+xml": { - "source": "iana", - "compressible": true - }, - "application/mediaservercontrol+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mscml"] - }, - "application/merge-patch+json": { - "source": "iana", - "compressible": true - }, - "application/metalink+xml": { - "source": "apache", - "compressible": true, - "extensions": ["metalink"] - }, - "application/metalink4+xml": { - "source": "iana", - "compressible": true, - "extensions": ["meta4"] - }, - "application/mets+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mets"] - }, - "application/mf4": { - "source": "iana" - }, - "application/mikey": { - "source": "iana" - }, - "application/mipc": { - "source": "iana" - }, - "application/missing-blocks+cbor-seq": { - "source": "iana" - }, - "application/mmt-aei+xml": { - "source": "iana", - "compressible": true, - "extensions": ["maei"] - }, - "application/mmt-usd+xml": { - "source": "iana", - "compressible": true, - "extensions": ["musd"] - }, - "application/mods+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mods"] - }, - "application/moss-keys": { - "source": "iana" - }, - "application/moss-signature": { - "source": "iana" - }, - "application/mosskey-data": { - "source": "iana" - }, - "application/mosskey-request": { - "source": "iana" - }, - "application/mp21": { - "source": "iana", - "extensions": ["m21","mp21"] - }, - "application/mp4": { - "source": "iana", - "extensions": ["mp4s","m4p"] - }, - "application/mpeg4-generic": { - "source": "iana" - }, - "application/mpeg4-iod": { - "source": "iana" - }, - "application/mpeg4-iod-xmt": { - "source": "iana" - }, - "application/mrb-consumer+xml": { - "source": "iana", - "compressible": true - }, - "application/mrb-publish+xml": { - "source": "iana", - "compressible": true - }, - "application/msc-ivr+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/msc-mixer+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/msword": { - "source": "iana", - "compressible": false, - "extensions": ["doc","dot"] - }, - "application/mud+json": { - "source": "iana", - "compressible": true - }, - "application/multipart-core": { - "source": "iana" - }, - "application/mxf": { - "source": "iana", - "extensions": ["mxf"] - }, - "application/n-quads": { - "source": "iana", - "extensions": ["nq"] - }, - "application/n-triples": { - "source": "iana", - "extensions": ["nt"] - }, - "application/nasdata": { - "source": "iana" - }, - "application/news-checkgroups": { - "source": "iana", - "charset": "US-ASCII" - }, - "application/news-groupinfo": { - "source": "iana", - "charset": "US-ASCII" - }, - "application/news-transmission": { - "source": "iana" - }, - "application/nlsml+xml": { - "source": "iana", - "compressible": true - }, - "application/node": { - "source": "iana", - "extensions": ["cjs"] - }, - "application/nss": { - "source": "iana" - }, - "application/oauth-authz-req+jwt": { - "source": "iana" - }, - "application/oblivious-dns-message": { - "source": "iana" - }, - "application/ocsp-request": { - "source": "iana" - }, - "application/ocsp-response": { - "source": "iana" - }, - "application/octet-stream": { - "source": "iana", - "compressible": false, - "extensions": ["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"] - }, - "application/oda": { - "source": "iana", - "extensions": ["oda"] - }, - "application/odm+xml": { - "source": "iana", - "compressible": true - }, - "application/odx": { - "source": "iana" - }, - "application/oebps-package+xml": { - "source": "iana", - "compressible": true, - "extensions": ["opf"] - }, - "application/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["ogx"] - }, - "application/omdoc+xml": { - "source": "apache", - "compressible": true, - "extensions": ["omdoc"] - }, - "application/onenote": { - "source": "apache", - "extensions": ["onetoc","onetoc2","onetmp","onepkg"] - }, - "application/opc-nodeset+xml": { - "source": "iana", - "compressible": true - }, - "application/oscore": { - "source": "iana" - }, - "application/oxps": { - "source": "iana", - "extensions": ["oxps"] - }, - "application/p21": { - "source": "iana" - }, - "application/p21+zip": { - "source": "iana", - "compressible": false - }, - "application/p2p-overlay+xml": { - "source": "iana", - "compressible": true, - "extensions": ["relo"] - }, - "application/parityfec": { - "source": "iana" - }, - "application/passport": { - "source": "iana" - }, - "application/patch-ops-error+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xer"] - }, - "application/pdf": { - "source": "iana", - "compressible": false, - "extensions": ["pdf"] - }, - "application/pdx": { - "source": "iana" - }, - "application/pem-certificate-chain": { - "source": "iana" - }, - "application/pgp-encrypted": { - "source": "iana", - "compressible": false, - "extensions": ["pgp"] - }, - "application/pgp-keys": { - "source": "iana", - "extensions": ["asc"] - }, - "application/pgp-signature": { - "source": "iana", - "extensions": ["asc","sig"] - }, - "application/pics-rules": { - "source": "apache", - "extensions": ["prf"] - }, - "application/pidf+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/pidf-diff+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/pkcs10": { - "source": "iana", - "extensions": ["p10"] - }, - "application/pkcs12": { - "source": "iana" - }, - "application/pkcs7-mime": { - "source": "iana", - "extensions": ["p7m","p7c"] - }, - "application/pkcs7-signature": { - "source": "iana", - "extensions": ["p7s"] - }, - "application/pkcs8": { - "source": "iana", - "extensions": ["p8"] - }, - "application/pkcs8-encrypted": { - "source": "iana" - }, - "application/pkix-attr-cert": { - "source": "iana", - "extensions": ["ac"] - }, - "application/pkix-cert": { - "source": "iana", - "extensions": ["cer"] - }, - "application/pkix-crl": { - "source": "iana", - "extensions": ["crl"] - }, - "application/pkix-pkipath": { - "source": "iana", - "extensions": ["pkipath"] - }, - "application/pkixcmp": { - "source": "iana", - "extensions": ["pki"] - }, - "application/pls+xml": { - "source": "iana", - "compressible": true, - "extensions": ["pls"] - }, - "application/poc-settings+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/postscript": { - "source": "iana", - "compressible": true, - "extensions": ["ai","eps","ps"] - }, - "application/ppsp-tracker+json": { - "source": "iana", - "compressible": true - }, - "application/problem+json": { - "source": "iana", - "compressible": true - }, - "application/problem+xml": { - "source": "iana", - "compressible": true - }, - "application/provenance+xml": { - "source": "iana", - "compressible": true, - "extensions": ["provx"] - }, - "application/prs.alvestrand.titrax-sheet": { - "source": "iana" - }, - "application/prs.cww": { - "source": "iana", - "extensions": ["cww"] - }, - "application/prs.cyn": { - "source": "iana", - "charset": "7-BIT" - }, - "application/prs.hpub+zip": { - "source": "iana", - "compressible": false - }, - "application/prs.nprend": { - "source": "iana" - }, - "application/prs.plucker": { - "source": "iana" - }, - "application/prs.rdf-xml-crypt": { - "source": "iana" - }, - "application/prs.xsf+xml": { - "source": "iana", - "compressible": true - }, - "application/pskc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["pskcxml"] - }, - "application/pvd+json": { - "source": "iana", - "compressible": true - }, - "application/qsig": { - "source": "iana" - }, - "application/raml+yaml": { - "compressible": true, - "extensions": ["raml"] - }, - "application/raptorfec": { - "source": "iana" - }, - "application/rdap+json": { - "source": "iana", - "compressible": true - }, - "application/rdf+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rdf","owl"] - }, - "application/reginfo+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rif"] - }, - "application/relax-ng-compact-syntax": { - "source": "iana", - "extensions": ["rnc"] - }, - "application/remote-printing": { - "source": "iana" - }, - "application/reputon+json": { - "source": "iana", - "compressible": true - }, - "application/resource-lists+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rl"] - }, - "application/resource-lists-diff+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rld"] - }, - "application/rfc+xml": { - "source": "iana", - "compressible": true - }, - "application/riscos": { - "source": "iana" - }, - "application/rlmi+xml": { - "source": "iana", - "compressible": true - }, - "application/rls-services+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rs"] - }, - "application/route-apd+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rapd"] - }, - "application/route-s-tsid+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sls"] - }, - "application/route-usd+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rusd"] - }, - "application/rpki-ghostbusters": { - "source": "iana", - "extensions": ["gbr"] - }, - "application/rpki-manifest": { - "source": "iana", - "extensions": ["mft"] - }, - "application/rpki-publication": { - "source": "iana" - }, - "application/rpki-roa": { - "source": "iana", - "extensions": ["roa"] - }, - "application/rpki-updown": { - "source": "iana" - }, - "application/rsd+xml": { - "source": "apache", - "compressible": true, - "extensions": ["rsd"] - }, - "application/rss+xml": { - "source": "apache", - "compressible": true, - "extensions": ["rss"] - }, - "application/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"] - }, - "application/rtploopback": { - "source": "iana" - }, - "application/rtx": { - "source": "iana" - }, - "application/samlassertion+xml": { - "source": "iana", - "compressible": true - }, - "application/samlmetadata+xml": { - "source": "iana", - "compressible": true - }, - "application/sarif+json": { - "source": "iana", - "compressible": true - }, - "application/sarif-external-properties+json": { - "source": "iana", - "compressible": true - }, - "application/sbe": { - "source": "iana" - }, - "application/sbml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sbml"] - }, - "application/scaip+xml": { - "source": "iana", - "compressible": true - }, - "application/scim+json": { - "source": "iana", - "compressible": true - }, - "application/scvp-cv-request": { - "source": "iana", - "extensions": ["scq"] - }, - "application/scvp-cv-response": { - "source": "iana", - "extensions": ["scs"] - }, - "application/scvp-vp-request": { - "source": "iana", - "extensions": ["spq"] - }, - "application/scvp-vp-response": { - "source": "iana", - "extensions": ["spp"] - }, - "application/sdp": { - "source": "iana", - "extensions": ["sdp"] - }, - "application/secevent+jwt": { - "source": "iana" - }, - "application/senml+cbor": { - "source": "iana" - }, - "application/senml+json": { - "source": "iana", - "compressible": true - }, - "application/senml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["senmlx"] - }, - "application/senml-etch+cbor": { - "source": "iana" - }, - "application/senml-etch+json": { - "source": "iana", - "compressible": true - }, - "application/senml-exi": { - "source": "iana" - }, - "application/sensml+cbor": { - "source": "iana" - }, - "application/sensml+json": { - "source": "iana", - "compressible": true - }, - "application/sensml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sensmlx"] - }, - "application/sensml-exi": { - "source": "iana" - }, - "application/sep+xml": { - "source": "iana", - "compressible": true - }, - "application/sep-exi": { - "source": "iana" - }, - "application/session-info": { - "source": "iana" - }, - "application/set-payment": { - "source": "iana" - }, - "application/set-payment-initiation": { - "source": "iana", - "extensions": ["setpay"] - }, - "application/set-registration": { - "source": "iana" - }, - "application/set-registration-initiation": { - "source": "iana", - "extensions": ["setreg"] - }, - "application/sgml": { - "source": "iana" - }, - "application/sgml-open-catalog": { - "source": "iana" - }, - "application/shf+xml": { - "source": "iana", - "compressible": true, - "extensions": ["shf"] - }, - "application/sieve": { - "source": "iana", - "extensions": ["siv","sieve"] - }, - "application/simple-filter+xml": { - "source": "iana", - "compressible": true - }, - "application/simple-message-summary": { - "source": "iana" - }, - "application/simplesymbolcontainer": { - "source": "iana" - }, - "application/sipc": { - "source": "iana" - }, - "application/slate": { - "source": "iana" - }, - "application/smil": { - "source": "iana" - }, - "application/smil+xml": { - "source": "iana", - "compressible": true, - "extensions": ["smi","smil"] - }, - "application/smpte336m": { - "source": "iana" - }, - "application/soap+fastinfoset": { - "source": "iana" - }, - "application/soap+xml": { - "source": "iana", - "compressible": true - }, - "application/sparql-query": { - "source": "iana", - "extensions": ["rq"] - }, - "application/sparql-results+xml": { - "source": "iana", - "compressible": true, - "extensions": ["srx"] - }, - "application/spdx+json": { - "source": "iana", - "compressible": true - }, - "application/spirits-event+xml": { - "source": "iana", - "compressible": true - }, - "application/sql": { - "source": "iana" - }, - "application/srgs": { - "source": "iana", - "extensions": ["gram"] - }, - "application/srgs+xml": { - "source": "iana", - "compressible": true, - "extensions": ["grxml"] - }, - "application/sru+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sru"] - }, - "application/ssdl+xml": { - "source": "apache", - "compressible": true, - "extensions": ["ssdl"] - }, - "application/ssml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ssml"] - }, - "application/stix+json": { - "source": "iana", - "compressible": true - }, - "application/swid+xml": { - "source": "iana", - "compressible": true, - "extensions": ["swidtag"] - }, - "application/tamp-apex-update": { - "source": "iana" - }, - "application/tamp-apex-update-confirm": { - "source": "iana" - }, - "application/tamp-community-update": { - "source": "iana" - }, - "application/tamp-community-update-confirm": { - "source": "iana" - }, - "application/tamp-error": { - "source": "iana" - }, - "application/tamp-sequence-adjust": { - "source": "iana" - }, - "application/tamp-sequence-adjust-confirm": { - "source": "iana" - }, - "application/tamp-status-query": { - "source": "iana" - }, - "application/tamp-status-response": { - "source": "iana" - }, - "application/tamp-update": { - "source": "iana" - }, - "application/tamp-update-confirm": { - "source": "iana" - }, - "application/tar": { - "compressible": true - }, - "application/taxii+json": { - "source": "iana", - "compressible": true - }, - "application/td+json": { - "source": "iana", - "compressible": true - }, - "application/tei+xml": { - "source": "iana", - "compressible": true, - "extensions": ["tei","teicorpus"] - }, - "application/tetra_isi": { - "source": "iana" - }, - "application/thraud+xml": { - "source": "iana", - "compressible": true, - "extensions": ["tfi"] - }, - "application/timestamp-query": { - "source": "iana" - }, - "application/timestamp-reply": { - "source": "iana" - }, - "application/timestamped-data": { - "source": "iana", - "extensions": ["tsd"] - }, - "application/tlsrpt+gzip": { - "source": "iana" - }, - "application/tlsrpt+json": { - "source": "iana", - "compressible": true - }, - "application/tnauthlist": { - "source": "iana" - }, - "application/token-introspection+jwt": { - "source": "iana" - }, - "application/toml": { - "compressible": true, - "extensions": ["toml"] - }, - "application/trickle-ice-sdpfrag": { - "source": "iana" - }, - "application/trig": { - "source": "iana", - "extensions": ["trig"] - }, - "application/ttml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ttml"] - }, - "application/tve-trigger": { - "source": "iana" - }, - "application/tzif": { - "source": "iana" - }, - "application/tzif-leap": { - "source": "iana" - }, - "application/ubjson": { - "compressible": false, - "extensions": ["ubj"] - }, - "application/ulpfec": { - "source": "iana" - }, - "application/urc-grpsheet+xml": { - "source": "iana", - "compressible": true - }, - "application/urc-ressheet+xml": { - "source": "iana", - "compressible": true, - "extensions": ["rsheet"] - }, - "application/urc-targetdesc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["td"] - }, - "application/urc-uisocketdesc+xml": { - "source": "iana", - "compressible": true - }, - "application/vcard+json": { - "source": "iana", - "compressible": true - }, - "application/vcard+xml": { - "source": "iana", - "compressible": true - }, - "application/vemmi": { - "source": "iana" - }, - "application/vividence.scriptfile": { - "source": "apache" - }, - "application/vnd.1000minds.decision-model+xml": { - "source": "iana", - "compressible": true, - "extensions": ["1km"] - }, - "application/vnd.3gpp-prose+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp-prose-pc3ch+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp-v2x-local-service-information": { - "source": "iana" - }, - "application/vnd.3gpp.5gnas": { - "source": "iana" - }, - "application/vnd.3gpp.access-transfer-events+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.bsf+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.gmop+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.gtpc": { - "source": "iana" - }, - "application/vnd.3gpp.interworking-data": { - "source": "iana" - }, - "application/vnd.3gpp.lpp": { - "source": "iana" - }, - "application/vnd.3gpp.mc-signalling-ear": { - "source": "iana" - }, - "application/vnd.3gpp.mcdata-affiliation-command+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcdata-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcdata-payload": { - "source": "iana" - }, - "application/vnd.3gpp.mcdata-service-config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcdata-signalling": { - "source": "iana" - }, - "application/vnd.3gpp.mcdata-ue-config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcdata-user-profile+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-affiliation-command+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-floor-request+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-location-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-mbms-usage-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-service-config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-signed+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-ue-config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-ue-init-config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcptt-user-profile+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-affiliation-command+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-affiliation-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-location-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-service-config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-transmission-request+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-ue-config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mcvideo-user-profile+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.mid-call+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.ngap": { - "source": "iana" - }, - "application/vnd.3gpp.pfcp": { - "source": "iana" - }, - "application/vnd.3gpp.pic-bw-large": { - "source": "iana", - "extensions": ["plb"] - }, - "application/vnd.3gpp.pic-bw-small": { - "source": "iana", - "extensions": ["psb"] - }, - "application/vnd.3gpp.pic-bw-var": { - "source": "iana", - "extensions": ["pvb"] - }, - "application/vnd.3gpp.s1ap": { - "source": "iana" - }, - "application/vnd.3gpp.sms": { - "source": "iana" - }, - "application/vnd.3gpp.sms+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.srvcc-ext+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.srvcc-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.state-and-event-info+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp.ussd+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp2.bcmcsinfo+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.3gpp2.sms": { - "source": "iana" - }, - "application/vnd.3gpp2.tcap": { - "source": "iana", - "extensions": ["tcap"] - }, - "application/vnd.3lightssoftware.imagescal": { - "source": "iana" - }, - "application/vnd.3m.post-it-notes": { - "source": "iana", - "extensions": ["pwn"] - }, - "application/vnd.accpac.simply.aso": { - "source": "iana", - "extensions": ["aso"] - }, - "application/vnd.accpac.simply.imp": { - "source": "iana", - "extensions": ["imp"] - }, - "application/vnd.acucobol": { - "source": "iana", - "extensions": ["acu"] - }, - "application/vnd.acucorp": { - "source": "iana", - "extensions": ["atc","acutc"] - }, - "application/vnd.adobe.air-application-installer-package+zip": { - "source": "apache", - "compressible": false, - "extensions": ["air"] - }, - "application/vnd.adobe.flash.movie": { - "source": "iana" - }, - "application/vnd.adobe.formscentral.fcdt": { - "source": "iana", - "extensions": ["fcdt"] - }, - "application/vnd.adobe.fxp": { - "source": "iana", - "extensions": ["fxp","fxpl"] - }, - "application/vnd.adobe.partial-upload": { - "source": "iana" - }, - "application/vnd.adobe.xdp+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xdp"] - }, - "application/vnd.adobe.xfdf": { - "source": "iana", - "extensions": ["xfdf"] - }, - "application/vnd.aether.imp": { - "source": "iana" - }, - "application/vnd.afpc.afplinedata": { - "source": "iana" - }, - "application/vnd.afpc.afplinedata-pagedef": { - "source": "iana" - }, - "application/vnd.afpc.cmoca-cmresource": { - "source": "iana" - }, - "application/vnd.afpc.foca-charset": { - "source": "iana" - }, - "application/vnd.afpc.foca-codedfont": { - "source": "iana" - }, - "application/vnd.afpc.foca-codepage": { - "source": "iana" - }, - "application/vnd.afpc.modca": { - "source": "iana" - }, - "application/vnd.afpc.modca-cmtable": { - "source": "iana" - }, - "application/vnd.afpc.modca-formdef": { - "source": "iana" - }, - "application/vnd.afpc.modca-mediummap": { - "source": "iana" - }, - "application/vnd.afpc.modca-objectcontainer": { - "source": "iana" - }, - "application/vnd.afpc.modca-overlay": { - "source": "iana" - }, - "application/vnd.afpc.modca-pagesegment": { - "source": "iana" - }, - "application/vnd.age": { - "source": "iana", - "extensions": ["age"] - }, - "application/vnd.ah-barcode": { - "source": "iana" - }, - "application/vnd.ahead.space": { - "source": "iana", - "extensions": ["ahead"] - }, - "application/vnd.airzip.filesecure.azf": { - "source": "iana", - "extensions": ["azf"] - }, - "application/vnd.airzip.filesecure.azs": { - "source": "iana", - "extensions": ["azs"] - }, - "application/vnd.amadeus+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.amazon.ebook": { - "source": "apache", - "extensions": ["azw"] - }, - "application/vnd.amazon.mobi8-ebook": { - "source": "iana" - }, - "application/vnd.americandynamics.acc": { - "source": "iana", - "extensions": ["acc"] - }, - "application/vnd.amiga.ami": { - "source": "iana", - "extensions": ["ami"] - }, - "application/vnd.amundsen.maze+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.android.ota": { - "source": "iana" - }, - "application/vnd.android.package-archive": { - "source": "apache", - "compressible": false, - "extensions": ["apk"] - }, - "application/vnd.anki": { - "source": "iana" - }, - "application/vnd.anser-web-certificate-issue-initiation": { - "source": "iana", - "extensions": ["cii"] - }, - "application/vnd.anser-web-funds-transfer-initiation": { - "source": "apache", - "extensions": ["fti"] - }, - "application/vnd.antix.game-component": { - "source": "iana", - "extensions": ["atx"] - }, - "application/vnd.apache.arrow.file": { - "source": "iana" - }, - "application/vnd.apache.arrow.stream": { - "source": "iana" - }, - "application/vnd.apache.thrift.binary": { - "source": "iana" - }, - "application/vnd.apache.thrift.compact": { - "source": "iana" - }, - "application/vnd.apache.thrift.json": { - "source": "iana" - }, - "application/vnd.api+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.aplextor.warrp+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.apothekende.reservation+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.apple.installer+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mpkg"] - }, - "application/vnd.apple.keynote": { - "source": "iana", - "extensions": ["key"] - }, - "application/vnd.apple.mpegurl": { - "source": "iana", - "extensions": ["m3u8"] - }, - "application/vnd.apple.numbers": { - "source": "iana", - "extensions": ["numbers"] - }, - "application/vnd.apple.pages": { - "source": "iana", - "extensions": ["pages"] - }, - "application/vnd.apple.pkpass": { - "compressible": false, - "extensions": ["pkpass"] - }, - "application/vnd.arastra.swi": { - "source": "iana" - }, - "application/vnd.aristanetworks.swi": { - "source": "iana", - "extensions": ["swi"] - }, - "application/vnd.artisan+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.artsquare": { - "source": "iana" - }, - "application/vnd.astraea-software.iota": { - "source": "iana", - "extensions": ["iota"] - }, - "application/vnd.audiograph": { - "source": "iana", - "extensions": ["aep"] - }, - "application/vnd.autopackage": { - "source": "iana" - }, - "application/vnd.avalon+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.avistar+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.balsamiq.bmml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["bmml"] - }, - "application/vnd.balsamiq.bmpr": { - "source": "iana" - }, - "application/vnd.banana-accounting": { - "source": "iana" - }, - "application/vnd.bbf.usp.error": { - "source": "iana" - }, - "application/vnd.bbf.usp.msg": { - "source": "iana" - }, - "application/vnd.bbf.usp.msg+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.bekitzur-stech+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.bint.med-content": { - "source": "iana" - }, - "application/vnd.biopax.rdf+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.blink-idb-value-wrapper": { - "source": "iana" - }, - "application/vnd.blueice.multipass": { - "source": "iana", - "extensions": ["mpm"] - }, - "application/vnd.bluetooth.ep.oob": { - "source": "iana" - }, - "application/vnd.bluetooth.le.oob": { - "source": "iana" - }, - "application/vnd.bmi": { - "source": "iana", - "extensions": ["bmi"] - }, - "application/vnd.bpf": { - "source": "iana" - }, - "application/vnd.bpf3": { - "source": "iana" - }, - "application/vnd.businessobjects": { - "source": "iana", - "extensions": ["rep"] - }, - "application/vnd.byu.uapi+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.cab-jscript": { - "source": "iana" - }, - "application/vnd.canon-cpdl": { - "source": "iana" - }, - "application/vnd.canon-lips": { - "source": "iana" - }, - "application/vnd.capasystems-pg+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.cendio.thinlinc.clientconf": { - "source": "iana" - }, - "application/vnd.century-systems.tcp_stream": { - "source": "iana" - }, - "application/vnd.chemdraw+xml": { - "source": "iana", - "compressible": true, - "extensions": ["cdxml"] - }, - "application/vnd.chess-pgn": { - "source": "iana" - }, - "application/vnd.chipnuts.karaoke-mmd": { - "source": "iana", - "extensions": ["mmd"] - }, - "application/vnd.ciedi": { - "source": "iana" - }, - "application/vnd.cinderella": { - "source": "iana", - "extensions": ["cdy"] - }, - "application/vnd.cirpack.isdn-ext": { - "source": "iana" - }, - "application/vnd.citationstyles.style+xml": { - "source": "iana", - "compressible": true, - "extensions": ["csl"] - }, - "application/vnd.claymore": { - "source": "iana", - "extensions": ["cla"] - }, - "application/vnd.cloanto.rp9": { - "source": "iana", - "extensions": ["rp9"] - }, - "application/vnd.clonk.c4group": { - "source": "iana", - "extensions": ["c4g","c4d","c4f","c4p","c4u"] - }, - "application/vnd.cluetrust.cartomobile-config": { - "source": "iana", - "extensions": ["c11amc"] - }, - "application/vnd.cluetrust.cartomobile-config-pkg": { - "source": "iana", - "extensions": ["c11amz"] - }, - "application/vnd.coffeescript": { - "source": "iana" - }, - "application/vnd.collabio.xodocuments.document": { - "source": "iana" - }, - "application/vnd.collabio.xodocuments.document-template": { - "source": "iana" - }, - "application/vnd.collabio.xodocuments.presentation": { - "source": "iana" - }, - "application/vnd.collabio.xodocuments.presentation-template": { - "source": "iana" - }, - "application/vnd.collabio.xodocuments.spreadsheet": { - "source": "iana" - }, - "application/vnd.collabio.xodocuments.spreadsheet-template": { - "source": "iana" - }, - "application/vnd.collection+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.collection.doc+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.collection.next+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.comicbook+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.comicbook-rar": { - "source": "iana" - }, - "application/vnd.commerce-battelle": { - "source": "iana" - }, - "application/vnd.commonspace": { - "source": "iana", - "extensions": ["csp"] - }, - "application/vnd.contact.cmsg": { - "source": "iana", - "extensions": ["cdbcmsg"] - }, - "application/vnd.coreos.ignition+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.cosmocaller": { - "source": "iana", - "extensions": ["cmc"] - }, - "application/vnd.crick.clicker": { - "source": "iana", - "extensions": ["clkx"] - }, - "application/vnd.crick.clicker.keyboard": { - "source": "iana", - "extensions": ["clkk"] - }, - "application/vnd.crick.clicker.palette": { - "source": "iana", - "extensions": ["clkp"] - }, - "application/vnd.crick.clicker.template": { - "source": "iana", - "extensions": ["clkt"] - }, - "application/vnd.crick.clicker.wordbank": { - "source": "iana", - "extensions": ["clkw"] - }, - "application/vnd.criticaltools.wbs+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wbs"] - }, - "application/vnd.cryptii.pipe+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.crypto-shade-file": { - "source": "iana" - }, - "application/vnd.cryptomator.encrypted": { - "source": "iana" - }, - "application/vnd.cryptomator.vault": { - "source": "iana" - }, - "application/vnd.ctc-posml": { - "source": "iana", - "extensions": ["pml"] - }, - "application/vnd.ctct.ws+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.cups-pdf": { - "source": "iana" - }, - "application/vnd.cups-postscript": { - "source": "iana" - }, - "application/vnd.cups-ppd": { - "source": "iana", - "extensions": ["ppd"] - }, - "application/vnd.cups-raster": { - "source": "iana" - }, - "application/vnd.cups-raw": { - "source": "iana" - }, - "application/vnd.curl": { - "source": "iana" - }, - "application/vnd.curl.car": { - "source": "apache", - "extensions": ["car"] - }, - "application/vnd.curl.pcurl": { - "source": "apache", - "extensions": ["pcurl"] - }, - "application/vnd.cyan.dean.root+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.cybank": { - "source": "iana" - }, - "application/vnd.cyclonedx+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.cyclonedx+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.d2l.coursepackage1p0+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.d3m-dataset": { - "source": "iana" - }, - "application/vnd.d3m-problem": { - "source": "iana" - }, - "application/vnd.dart": { - "source": "iana", - "compressible": true, - "extensions": ["dart"] - }, - "application/vnd.data-vision.rdz": { - "source": "iana", - "extensions": ["rdz"] - }, - "application/vnd.datapackage+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.dataresource+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.dbf": { - "source": "iana", - "extensions": ["dbf"] - }, - "application/vnd.debian.binary-package": { - "source": "iana" - }, - "application/vnd.dece.data": { - "source": "iana", - "extensions": ["uvf","uvvf","uvd","uvvd"] - }, - "application/vnd.dece.ttml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["uvt","uvvt"] - }, - "application/vnd.dece.unspecified": { - "source": "iana", - "extensions": ["uvx","uvvx"] - }, - "application/vnd.dece.zip": { - "source": "iana", - "extensions": ["uvz","uvvz"] - }, - "application/vnd.denovo.fcselayout-link": { - "source": "iana", - "extensions": ["fe_launch"] - }, - "application/vnd.desmume.movie": { - "source": "iana" - }, - "application/vnd.dir-bi.plate-dl-nosuffix": { - "source": "iana" - }, - "application/vnd.dm.delegation+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dna": { - "source": "iana", - "extensions": ["dna"] - }, - "application/vnd.document+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.dolby.mlp": { - "source": "apache", - "extensions": ["mlp"] - }, - "application/vnd.dolby.mobile.1": { - "source": "iana" - }, - "application/vnd.dolby.mobile.2": { - "source": "iana" - }, - "application/vnd.doremir.scorecloud-binary-document": { - "source": "iana" - }, - "application/vnd.dpgraph": { - "source": "iana", - "extensions": ["dpg"] - }, - "application/vnd.dreamfactory": { - "source": "iana", - "extensions": ["dfac"] - }, - "application/vnd.drive+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ds-keypoint": { - "source": "apache", - "extensions": ["kpxx"] - }, - "application/vnd.dtg.local": { - "source": "iana" - }, - "application/vnd.dtg.local.flash": { - "source": "iana" - }, - "application/vnd.dtg.local.html": { - "source": "iana" - }, - "application/vnd.dvb.ait": { - "source": "iana", - "extensions": ["ait"] - }, - "application/vnd.dvb.dvbisl+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.dvbj": { - "source": "iana" - }, - "application/vnd.dvb.esgcontainer": { - "source": "iana" - }, - "application/vnd.dvb.ipdcdftnotifaccess": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgaccess": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgaccess2": { - "source": "iana" - }, - "application/vnd.dvb.ipdcesgpdd": { - "source": "iana" - }, - "application/vnd.dvb.ipdcroaming": { - "source": "iana" - }, - "application/vnd.dvb.iptv.alfec-base": { - "source": "iana" - }, - "application/vnd.dvb.iptv.alfec-enhancement": { - "source": "iana" - }, - "application/vnd.dvb.notif-aggregate-root+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.notif-container+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.notif-generic+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.notif-ia-msglist+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.notif-ia-registration-request+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.notif-ia-registration-response+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.notif-init+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.dvb.pfr": { - "source": "iana" - }, - "application/vnd.dvb.service": { - "source": "iana", - "extensions": ["svc"] - }, - "application/vnd.dxr": { - "source": "iana" - }, - "application/vnd.dynageo": { - "source": "iana", - "extensions": ["geo"] - }, - "application/vnd.dzr": { - "source": "iana" - }, - "application/vnd.easykaraoke.cdgdownload": { - "source": "iana" - }, - "application/vnd.ecdis-update": { - "source": "iana" - }, - "application/vnd.ecip.rlp": { - "source": "iana" - }, - "application/vnd.eclipse.ditto+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ecowin.chart": { - "source": "iana", - "extensions": ["mag"] - }, - "application/vnd.ecowin.filerequest": { - "source": "iana" - }, - "application/vnd.ecowin.fileupdate": { - "source": "iana" - }, - "application/vnd.ecowin.series": { - "source": "iana" - }, - "application/vnd.ecowin.seriesrequest": { - "source": "iana" - }, - "application/vnd.ecowin.seriesupdate": { - "source": "iana" - }, - "application/vnd.efi.img": { - "source": "iana" - }, - "application/vnd.efi.iso": { - "source": "iana" - }, - "application/vnd.emclient.accessrequest+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.enliven": { - "source": "iana", - "extensions": ["nml"] - }, - "application/vnd.enphase.envoy": { - "source": "iana" - }, - "application/vnd.eprints.data+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.epson.esf": { - "source": "iana", - "extensions": ["esf"] - }, - "application/vnd.epson.msf": { - "source": "iana", - "extensions": ["msf"] - }, - "application/vnd.epson.quickanime": { - "source": "iana", - "extensions": ["qam"] - }, - "application/vnd.epson.salt": { - "source": "iana", - "extensions": ["slt"] - }, - "application/vnd.epson.ssf": { - "source": "iana", - "extensions": ["ssf"] - }, - "application/vnd.ericsson.quickcall": { - "source": "iana" - }, - "application/vnd.espass-espass+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.eszigno3+xml": { - "source": "iana", - "compressible": true, - "extensions": ["es3","et3"] - }, - "application/vnd.etsi.aoc+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.asic-e+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.etsi.asic-s+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.etsi.cug+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvcommand+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvdiscovery+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvprofile+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvsad-bc+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvsad-cod+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvsad-npvr+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvservice+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvsync+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.iptvueprofile+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.mcid+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.mheg5": { - "source": "iana" - }, - "application/vnd.etsi.overload-control-policy-dataset+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.pstn+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.sci+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.simservs+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.timestamp-token": { - "source": "iana" - }, - "application/vnd.etsi.tsl+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.etsi.tsl.der": { - "source": "iana" - }, - "application/vnd.eu.kasparian.car+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.eudora.data": { - "source": "iana" - }, - "application/vnd.evolv.ecig.profile": { - "source": "iana" - }, - "application/vnd.evolv.ecig.settings": { - "source": "iana" - }, - "application/vnd.evolv.ecig.theme": { - "source": "iana" - }, - "application/vnd.exstream-empower+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.exstream-package": { - "source": "iana" - }, - "application/vnd.ezpix-album": { - "source": "iana", - "extensions": ["ez2"] - }, - "application/vnd.ezpix-package": { - "source": "iana", - "extensions": ["ez3"] - }, - "application/vnd.f-secure.mobile": { - "source": "iana" - }, - "application/vnd.familysearch.gedcom+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.fastcopy-disk-image": { - "source": "iana" - }, - "application/vnd.fdf": { - "source": "iana", - "extensions": ["fdf"] - }, - "application/vnd.fdsn.mseed": { - "source": "iana", - "extensions": ["mseed"] - }, - "application/vnd.fdsn.seed": { - "source": "iana", - "extensions": ["seed","dataless"] - }, - "application/vnd.ffsns": { - "source": "iana" - }, - "application/vnd.ficlab.flb+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.filmit.zfc": { - "source": "iana" - }, - "application/vnd.fints": { - "source": "iana" - }, - "application/vnd.firemonkeys.cloudcell": { - "source": "iana" - }, - "application/vnd.flographit": { - "source": "iana", - "extensions": ["gph"] - }, - "application/vnd.fluxtime.clip": { - "source": "iana", - "extensions": ["ftc"] - }, - "application/vnd.font-fontforge-sfd": { - "source": "iana" - }, - "application/vnd.framemaker": { - "source": "iana", - "extensions": ["fm","frame","maker","book"] - }, - "application/vnd.frogans.fnc": { - "source": "iana", - "extensions": ["fnc"] - }, - "application/vnd.frogans.ltf": { - "source": "iana", - "extensions": ["ltf"] - }, - "application/vnd.fsc.weblaunch": { - "source": "iana", - "extensions": ["fsc"] - }, - "application/vnd.fujifilm.fb.docuworks": { - "source": "iana" - }, - "application/vnd.fujifilm.fb.docuworks.binder": { - "source": "iana" - }, - "application/vnd.fujifilm.fb.docuworks.container": { - "source": "iana" - }, - "application/vnd.fujifilm.fb.jfi+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.fujitsu.oasys": { - "source": "iana", - "extensions": ["oas"] - }, - "application/vnd.fujitsu.oasys2": { - "source": "iana", - "extensions": ["oa2"] - }, - "application/vnd.fujitsu.oasys3": { - "source": "iana", - "extensions": ["oa3"] - }, - "application/vnd.fujitsu.oasysgp": { - "source": "iana", - "extensions": ["fg5"] - }, - "application/vnd.fujitsu.oasysprs": { - "source": "iana", - "extensions": ["bh2"] - }, - "application/vnd.fujixerox.art-ex": { - "source": "iana" - }, - "application/vnd.fujixerox.art4": { - "source": "iana" - }, - "application/vnd.fujixerox.ddd": { - "source": "iana", - "extensions": ["ddd"] - }, - "application/vnd.fujixerox.docuworks": { - "source": "iana", - "extensions": ["xdw"] - }, - "application/vnd.fujixerox.docuworks.binder": { - "source": "iana", - "extensions": ["xbd"] - }, - "application/vnd.fujixerox.docuworks.container": { - "source": "iana" - }, - "application/vnd.fujixerox.hbpl": { - "source": "iana" - }, - "application/vnd.fut-misnet": { - "source": "iana" - }, - "application/vnd.futoin+cbor": { - "source": "iana" - }, - "application/vnd.futoin+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.fuzzysheet": { - "source": "iana", - "extensions": ["fzs"] - }, - "application/vnd.genomatix.tuxedo": { - "source": "iana", - "extensions": ["txd"] - }, - "application/vnd.gentics.grd+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.geo+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.geocube+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.geogebra.file": { - "source": "iana", - "extensions": ["ggb"] - }, - "application/vnd.geogebra.slides": { - "source": "iana" - }, - "application/vnd.geogebra.tool": { - "source": "iana", - "extensions": ["ggt"] - }, - "application/vnd.geometry-explorer": { - "source": "iana", - "extensions": ["gex","gre"] - }, - "application/vnd.geonext": { - "source": "iana", - "extensions": ["gxt"] - }, - "application/vnd.geoplan": { - "source": "iana", - "extensions": ["g2w"] - }, - "application/vnd.geospace": { - "source": "iana", - "extensions": ["g3w"] - }, - "application/vnd.gerber": { - "source": "iana" - }, - "application/vnd.globalplatform.card-content-mgt": { - "source": "iana" - }, - "application/vnd.globalplatform.card-content-mgt-response": { - "source": "iana" - }, - "application/vnd.gmx": { - "source": "iana", - "extensions": ["gmx"] - }, - "application/vnd.google-apps.document": { - "compressible": false, - "extensions": ["gdoc"] - }, - "application/vnd.google-apps.presentation": { - "compressible": false, - "extensions": ["gslides"] - }, - "application/vnd.google-apps.spreadsheet": { - "compressible": false, - "extensions": ["gsheet"] - }, - "application/vnd.google-earth.kml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["kml"] - }, - "application/vnd.google-earth.kmz": { - "source": "iana", - "compressible": false, - "extensions": ["kmz"] - }, - "application/vnd.gov.sk.e-form+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.gov.sk.e-form+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.gov.sk.xmldatacontainer+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.grafeq": { - "source": "iana", - "extensions": ["gqf","gqs"] - }, - "application/vnd.gridmp": { - "source": "iana" - }, - "application/vnd.groove-account": { - "source": "iana", - "extensions": ["gac"] - }, - "application/vnd.groove-help": { - "source": "iana", - "extensions": ["ghf"] - }, - "application/vnd.groove-identity-message": { - "source": "iana", - "extensions": ["gim"] - }, - "application/vnd.groove-injector": { - "source": "iana", - "extensions": ["grv"] - }, - "application/vnd.groove-tool-message": { - "source": "iana", - "extensions": ["gtm"] - }, - "application/vnd.groove-tool-template": { - "source": "iana", - "extensions": ["tpl"] - }, - "application/vnd.groove-vcard": { - "source": "iana", - "extensions": ["vcg"] - }, - "application/vnd.hal+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hal+xml": { - "source": "iana", - "compressible": true, - "extensions": ["hal"] - }, - "application/vnd.handheld-entertainment+xml": { - "source": "iana", - "compressible": true, - "extensions": ["zmm"] - }, - "application/vnd.hbci": { - "source": "iana", - "extensions": ["hbci"] - }, - "application/vnd.hc+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hcl-bireports": { - "source": "iana" - }, - "application/vnd.hdt": { - "source": "iana" - }, - "application/vnd.heroku+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hhe.lesson-player": { - "source": "iana", - "extensions": ["les"] - }, - "application/vnd.hl7cda+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/vnd.hl7v2+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/vnd.hp-hpgl": { - "source": "iana", - "extensions": ["hpgl"] - }, - "application/vnd.hp-hpid": { - "source": "iana", - "extensions": ["hpid"] - }, - "application/vnd.hp-hps": { - "source": "iana", - "extensions": ["hps"] - }, - "application/vnd.hp-jlyt": { - "source": "iana", - "extensions": ["jlt"] - }, - "application/vnd.hp-pcl": { - "source": "iana", - "extensions": ["pcl"] - }, - "application/vnd.hp-pclxl": { - "source": "iana", - "extensions": ["pclxl"] - }, - "application/vnd.httphone": { - "source": "iana" - }, - "application/vnd.hydrostatix.sof-data": { - "source": "iana", - "extensions": ["sfd-hdstx"] - }, - "application/vnd.hyper+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hyper-item+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hyperdrive+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.hzn-3d-crossword": { - "source": "iana" - }, - "application/vnd.ibm.afplinedata": { - "source": "iana" - }, - "application/vnd.ibm.electronic-media": { - "source": "iana" - }, - "application/vnd.ibm.minipay": { - "source": "iana", - "extensions": ["mpy"] - }, - "application/vnd.ibm.modcap": { - "source": "iana", - "extensions": ["afp","listafp","list3820"] - }, - "application/vnd.ibm.rights-management": { - "source": "iana", - "extensions": ["irm"] - }, - "application/vnd.ibm.secure-container": { - "source": "iana", - "extensions": ["sc"] - }, - "application/vnd.iccprofile": { - "source": "iana", - "extensions": ["icc","icm"] - }, - "application/vnd.ieee.1905": { - "source": "iana" - }, - "application/vnd.igloader": { - "source": "iana", - "extensions": ["igl"] - }, - "application/vnd.imagemeter.folder+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.imagemeter.image+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.immervision-ivp": { - "source": "iana", - "extensions": ["ivp"] - }, - "application/vnd.immervision-ivu": { - "source": "iana", - "extensions": ["ivu"] - }, - "application/vnd.ims.imsccv1p1": { - "source": "iana" - }, - "application/vnd.ims.imsccv1p2": { - "source": "iana" - }, - "application/vnd.ims.imsccv1p3": { - "source": "iana" - }, - "application/vnd.ims.lis.v2.result+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolconsumerprofile+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolproxy+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolproxy.id+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolsettings+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ims.lti.v2.toolsettings.simple+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.informedcontrol.rms+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.informix-visionary": { - "source": "iana" - }, - "application/vnd.infotech.project": { - "source": "iana" - }, - "application/vnd.infotech.project+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.innopath.wamp.notification": { - "source": "iana" - }, - "application/vnd.insors.igm": { - "source": "iana", - "extensions": ["igm"] - }, - "application/vnd.intercon.formnet": { - "source": "iana", - "extensions": ["xpw","xpx"] - }, - "application/vnd.intergeo": { - "source": "iana", - "extensions": ["i2g"] - }, - "application/vnd.intertrust.digibox": { - "source": "iana" - }, - "application/vnd.intertrust.nncp": { - "source": "iana" - }, - "application/vnd.intu.qbo": { - "source": "iana", - "extensions": ["qbo"] - }, - "application/vnd.intu.qfx": { - "source": "iana", - "extensions": ["qfx"] - }, - "application/vnd.iptc.g2.catalogitem+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.iptc.g2.conceptitem+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.iptc.g2.knowledgeitem+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.iptc.g2.newsitem+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.iptc.g2.newsmessage+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.iptc.g2.packageitem+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.iptc.g2.planningitem+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.ipunplugged.rcprofile": { - "source": "iana", - "extensions": ["rcprofile"] - }, - "application/vnd.irepository.package+xml": { - "source": "iana", - "compressible": true, - "extensions": ["irp"] - }, - "application/vnd.is-xpr": { - "source": "iana", - "extensions": ["xpr"] - }, - "application/vnd.isac.fcs": { - "source": "iana", - "extensions": ["fcs"] - }, - "application/vnd.iso11783-10+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.jam": { - "source": "iana", - "extensions": ["jam"] - }, - "application/vnd.japannet-directory-service": { - "source": "iana" - }, - "application/vnd.japannet-jpnstore-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-payment-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-registration": { - "source": "iana" - }, - "application/vnd.japannet-registration-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-setstore-wakeup": { - "source": "iana" - }, - "application/vnd.japannet-verification": { - "source": "iana" - }, - "application/vnd.japannet-verification-wakeup": { - "source": "iana" - }, - "application/vnd.jcp.javame.midlet-rms": { - "source": "iana", - "extensions": ["rms"] - }, - "application/vnd.jisp": { - "source": "iana", - "extensions": ["jisp"] - }, - "application/vnd.joost.joda-archive": { - "source": "iana", - "extensions": ["joda"] - }, - "application/vnd.jsk.isdn-ngn": { - "source": "iana" - }, - "application/vnd.kahootz": { - "source": "iana", - "extensions": ["ktz","ktr"] - }, - "application/vnd.kde.karbon": { - "source": "iana", - "extensions": ["karbon"] - }, - "application/vnd.kde.kchart": { - "source": "iana", - "extensions": ["chrt"] - }, - "application/vnd.kde.kformula": { - "source": "iana", - "extensions": ["kfo"] - }, - "application/vnd.kde.kivio": { - "source": "iana", - "extensions": ["flw"] - }, - "application/vnd.kde.kontour": { - "source": "iana", - "extensions": ["kon"] - }, - "application/vnd.kde.kpresenter": { - "source": "iana", - "extensions": ["kpr","kpt"] - }, - "application/vnd.kde.kspread": { - "source": "iana", - "extensions": ["ksp"] - }, - "application/vnd.kde.kword": { - "source": "iana", - "extensions": ["kwd","kwt"] - }, - "application/vnd.kenameaapp": { - "source": "iana", - "extensions": ["htke"] - }, - "application/vnd.kidspiration": { - "source": "iana", - "extensions": ["kia"] - }, - "application/vnd.kinar": { - "source": "iana", - "extensions": ["kne","knp"] - }, - "application/vnd.koan": { - "source": "iana", - "extensions": ["skp","skd","skt","skm"] - }, - "application/vnd.kodak-descriptor": { - "source": "iana", - "extensions": ["sse"] - }, - "application/vnd.las": { - "source": "iana" - }, - "application/vnd.las.las+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.las.las+xml": { - "source": "iana", - "compressible": true, - "extensions": ["lasxml"] - }, - "application/vnd.laszip": { - "source": "iana" - }, - "application/vnd.leap+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.liberty-request+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.llamagraphics.life-balance.desktop": { - "source": "iana", - "extensions": ["lbd"] - }, - "application/vnd.llamagraphics.life-balance.exchange+xml": { - "source": "iana", - "compressible": true, - "extensions": ["lbe"] - }, - "application/vnd.logipipe.circuit+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.loom": { - "source": "iana" - }, - "application/vnd.lotus-1-2-3": { - "source": "iana", - "extensions": ["123"] - }, - "application/vnd.lotus-approach": { - "source": "iana", - "extensions": ["apr"] - }, - "application/vnd.lotus-freelance": { - "source": "iana", - "extensions": ["pre"] - }, - "application/vnd.lotus-notes": { - "source": "iana", - "extensions": ["nsf"] - }, - "application/vnd.lotus-organizer": { - "source": "iana", - "extensions": ["org"] - }, - "application/vnd.lotus-screencam": { - "source": "iana", - "extensions": ["scm"] - }, - "application/vnd.lotus-wordpro": { - "source": "iana", - "extensions": ["lwp"] - }, - "application/vnd.macports.portpkg": { - "source": "iana", - "extensions": ["portpkg"] - }, - "application/vnd.mapbox-vector-tile": { - "source": "iana", - "extensions": ["mvt"] - }, - "application/vnd.marlin.drm.actiontoken+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.marlin.drm.conftoken+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.marlin.drm.license+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.marlin.drm.mdcf": { - "source": "iana" - }, - "application/vnd.mason+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.maxar.archive.3tz+zip": { - "source": "iana", - "compressible": false - }, - "application/vnd.maxmind.maxmind-db": { - "source": "iana" - }, - "application/vnd.mcd": { - "source": "iana", - "extensions": ["mcd"] - }, - "application/vnd.medcalcdata": { - "source": "iana", - "extensions": ["mc1"] - }, - "application/vnd.mediastation.cdkey": { - "source": "iana", - "extensions": ["cdkey"] - }, - "application/vnd.meridian-slingshot": { - "source": "iana" - }, - "application/vnd.mfer": { - "source": "iana", - "extensions": ["mwf"] - }, - "application/vnd.mfmp": { - "source": "iana", - "extensions": ["mfm"] - }, - "application/vnd.micro+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.micrografx.flo": { - "source": "iana", - "extensions": ["flo"] - }, - "application/vnd.micrografx.igx": { - "source": "iana", - "extensions": ["igx"] - }, - "application/vnd.microsoft.portable-executable": { - "source": "iana" - }, - "application/vnd.microsoft.windows.thumbnail-cache": { - "source": "iana" - }, - "application/vnd.miele+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.mif": { - "source": "iana", - "extensions": ["mif"] - }, - "application/vnd.minisoft-hp3000-save": { - "source": "iana" - }, - "application/vnd.mitsubishi.misty-guard.trustweb": { - "source": "iana" - }, - "application/vnd.mobius.daf": { - "source": "iana", - "extensions": ["daf"] - }, - "application/vnd.mobius.dis": { - "source": "iana", - "extensions": ["dis"] - }, - "application/vnd.mobius.mbk": { - "source": "iana", - "extensions": ["mbk"] - }, - "application/vnd.mobius.mqy": { - "source": "iana", - "extensions": ["mqy"] - }, - "application/vnd.mobius.msl": { - "source": "iana", - "extensions": ["msl"] - }, - "application/vnd.mobius.plc": { - "source": "iana", - "extensions": ["plc"] - }, - "application/vnd.mobius.txf": { - "source": "iana", - "extensions": ["txf"] - }, - "application/vnd.mophun.application": { - "source": "iana", - "extensions": ["mpn"] - }, - "application/vnd.mophun.certificate": { - "source": "iana", - "extensions": ["mpc"] - }, - "application/vnd.motorola.flexsuite": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.adsi": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.fis": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.gotap": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.kmr": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.ttc": { - "source": "iana" - }, - "application/vnd.motorola.flexsuite.wem": { - "source": "iana" - }, - "application/vnd.motorola.iprm": { - "source": "iana" - }, - "application/vnd.mozilla.xul+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xul"] - }, - "application/vnd.ms-3mfdocument": { - "source": "iana" - }, - "application/vnd.ms-artgalry": { - "source": "iana", - "extensions": ["cil"] - }, - "application/vnd.ms-asf": { - "source": "iana" - }, - "application/vnd.ms-cab-compressed": { - "source": "iana", - "extensions": ["cab"] - }, - "application/vnd.ms-color.iccprofile": { - "source": "apache" - }, - "application/vnd.ms-excel": { - "source": "iana", - "compressible": false, - "extensions": ["xls","xlm","xla","xlc","xlt","xlw"] - }, - "application/vnd.ms-excel.addin.macroenabled.12": { - "source": "iana", - "extensions": ["xlam"] - }, - "application/vnd.ms-excel.sheet.binary.macroenabled.12": { - "source": "iana", - "extensions": ["xlsb"] - }, - "application/vnd.ms-excel.sheet.macroenabled.12": { - "source": "iana", - "extensions": ["xlsm"] - }, - "application/vnd.ms-excel.template.macroenabled.12": { - "source": "iana", - "extensions": ["xltm"] - }, - "application/vnd.ms-fontobject": { - "source": "iana", - "compressible": true, - "extensions": ["eot"] - }, - "application/vnd.ms-htmlhelp": { - "source": "iana", - "extensions": ["chm"] - }, - "application/vnd.ms-ims": { - "source": "iana", - "extensions": ["ims"] - }, - "application/vnd.ms-lrm": { - "source": "iana", - "extensions": ["lrm"] - }, - "application/vnd.ms-office.activex+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.ms-officetheme": { - "source": "iana", - "extensions": ["thmx"] - }, - "application/vnd.ms-opentype": { - "source": "apache", - "compressible": true - }, - "application/vnd.ms-outlook": { - "compressible": false, - "extensions": ["msg"] - }, - "application/vnd.ms-package.obfuscated-opentype": { - "source": "apache" - }, - "application/vnd.ms-pki.seccat": { - "source": "apache", - "extensions": ["cat"] - }, - "application/vnd.ms-pki.stl": { - "source": "apache", - "extensions": ["stl"] - }, - "application/vnd.ms-playready.initiator+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.ms-powerpoint": { - "source": "iana", - "compressible": false, - "extensions": ["ppt","pps","pot"] - }, - "application/vnd.ms-powerpoint.addin.macroenabled.12": { - "source": "iana", - "extensions": ["ppam"] - }, - "application/vnd.ms-powerpoint.presentation.macroenabled.12": { - "source": "iana", - "extensions": ["pptm"] - }, - "application/vnd.ms-powerpoint.slide.macroenabled.12": { - "source": "iana", - "extensions": ["sldm"] - }, - "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { - "source": "iana", - "extensions": ["ppsm"] - }, - "application/vnd.ms-powerpoint.template.macroenabled.12": { - "source": "iana", - "extensions": ["potm"] - }, - "application/vnd.ms-printdevicecapabilities+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.ms-printing.printticket+xml": { - "source": "apache", - "compressible": true - }, - "application/vnd.ms-printschematicket+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.ms-project": { - "source": "iana", - "extensions": ["mpp","mpt"] - }, - "application/vnd.ms-tnef": { - "source": "iana" - }, - "application/vnd.ms-windows.devicepairing": { - "source": "iana" - }, - "application/vnd.ms-windows.nwprinting.oob": { - "source": "iana" - }, - "application/vnd.ms-windows.printerpairing": { - "source": "iana" - }, - "application/vnd.ms-windows.wsd.oob": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.lic-chlg-req": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.lic-resp": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.meter-chlg-req": { - "source": "iana" - }, - "application/vnd.ms-wmdrm.meter-resp": { - "source": "iana" - }, - "application/vnd.ms-word.document.macroenabled.12": { - "source": "iana", - "extensions": ["docm"] - }, - "application/vnd.ms-word.template.macroenabled.12": { - "source": "iana", - "extensions": ["dotm"] - }, - "application/vnd.ms-works": { - "source": "iana", - "extensions": ["wps","wks","wcm","wdb"] - }, - "application/vnd.ms-wpl": { - "source": "iana", - "extensions": ["wpl"] - }, - "application/vnd.ms-xpsdocument": { - "source": "iana", - "compressible": false, - "extensions": ["xps"] - }, - "application/vnd.msa-disk-image": { - "source": "iana" - }, - "application/vnd.mseq": { - "source": "iana", - "extensions": ["mseq"] - }, - "application/vnd.msign": { - "source": "iana" - }, - "application/vnd.multiad.creator": { - "source": "iana" - }, - "application/vnd.multiad.creator.cif": { - "source": "iana" - }, - "application/vnd.music-niff": { - "source": "iana" - }, - "application/vnd.musician": { - "source": "iana", - "extensions": ["mus"] - }, - "application/vnd.muvee.style": { - "source": "iana", - "extensions": ["msty"] - }, - "application/vnd.mynfc": { - "source": "iana", - "extensions": ["taglet"] - }, - "application/vnd.nacamar.ybrid+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.ncd.control": { - "source": "iana" - }, - "application/vnd.ncd.reference": { - "source": "iana" - }, - "application/vnd.nearst.inv+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.nebumind.line": { - "source": "iana" - }, - "application/vnd.nervana": { - "source": "iana" - }, - "application/vnd.netfpx": { - "source": "iana" - }, - "application/vnd.neurolanguage.nlu": { - "source": "iana", - "extensions": ["nlu"] - }, - "application/vnd.nimn": { - "source": "iana" - }, - "application/vnd.nintendo.nitro.rom": { - "source": "iana" - }, - "application/vnd.nintendo.snes.rom": { - "source": "iana" - }, - "application/vnd.nitf": { - "source": "iana", - "extensions": ["ntf","nitf"] - }, - "application/vnd.noblenet-directory": { - "source": "iana", - "extensions": ["nnd"] - }, - "application/vnd.noblenet-sealer": { - "source": "iana", - "extensions": ["nns"] - }, - "application/vnd.noblenet-web": { - "source": "iana", - "extensions": ["nnw"] - }, - "application/vnd.nokia.catalogs": { - "source": "iana" - }, - "application/vnd.nokia.conml+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.conml+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.nokia.iptv.config+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.nokia.isds-radio-presets": { - "source": "iana" - }, - "application/vnd.nokia.landmark+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.landmark+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.nokia.landmarkcollection+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.nokia.n-gage.ac+xml": { - "source": "iana", - "compressible": true, - "extensions": ["ac"] - }, - "application/vnd.nokia.n-gage.data": { - "source": "iana", - "extensions": ["ngdat"] - }, - "application/vnd.nokia.n-gage.symbian.install": { - "source": "iana", - "extensions": ["n-gage"] - }, - "application/vnd.nokia.ncd": { - "source": "iana" - }, - "application/vnd.nokia.pcd+wbxml": { - "source": "iana" - }, - "application/vnd.nokia.pcd+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.nokia.radio-preset": { - "source": "iana", - "extensions": ["rpst"] - }, - "application/vnd.nokia.radio-presets": { - "source": "iana", - "extensions": ["rpss"] - }, - "application/vnd.novadigm.edm": { - "source": "iana", - "extensions": ["edm"] - }, - "application/vnd.novadigm.edx": { - "source": "iana", - "extensions": ["edx"] - }, - "application/vnd.novadigm.ext": { - "source": "iana", - "extensions": ["ext"] - }, - "application/vnd.ntt-local.content-share": { - "source": "iana" - }, - "application/vnd.ntt-local.file-transfer": { - "source": "iana" - }, - "application/vnd.ntt-local.ogw_remote-access": { - "source": "iana" - }, - "application/vnd.ntt-local.sip-ta_remote": { - "source": "iana" - }, - "application/vnd.ntt-local.sip-ta_tcp_stream": { - "source": "iana" - }, - "application/vnd.oasis.opendocument.chart": { - "source": "iana", - "extensions": ["odc"] - }, - "application/vnd.oasis.opendocument.chart-template": { - "source": "iana", - "extensions": ["otc"] - }, - "application/vnd.oasis.opendocument.database": { - "source": "iana", - "extensions": ["odb"] - }, - "application/vnd.oasis.opendocument.formula": { - "source": "iana", - "extensions": ["odf"] - }, - "application/vnd.oasis.opendocument.formula-template": { - "source": "iana", - "extensions": ["odft"] - }, - "application/vnd.oasis.opendocument.graphics": { - "source": "iana", - "compressible": false, - "extensions": ["odg"] - }, - "application/vnd.oasis.opendocument.graphics-template": { - "source": "iana", - "extensions": ["otg"] - }, - "application/vnd.oasis.opendocument.image": { - "source": "iana", - "extensions": ["odi"] - }, - "application/vnd.oasis.opendocument.image-template": { - "source": "iana", - "extensions": ["oti"] - }, - "application/vnd.oasis.opendocument.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["odp"] - }, - "application/vnd.oasis.opendocument.presentation-template": { - "source": "iana", - "extensions": ["otp"] - }, - "application/vnd.oasis.opendocument.spreadsheet": { - "source": "iana", - "compressible": false, - "extensions": ["ods"] - }, - "application/vnd.oasis.opendocument.spreadsheet-template": { - "source": "iana", - "extensions": ["ots"] - }, - "application/vnd.oasis.opendocument.text": { - "source": "iana", - "compressible": false, - "extensions": ["odt"] - }, - "application/vnd.oasis.opendocument.text-master": { - "source": "iana", - "extensions": ["odm"] - }, - "application/vnd.oasis.opendocument.text-template": { - "source": "iana", - "extensions": ["ott"] - }, - "application/vnd.oasis.opendocument.text-web": { - "source": "iana", - "extensions": ["oth"] - }, - "application/vnd.obn": { - "source": "iana" - }, - "application/vnd.ocf+cbor": { - "source": "iana" - }, - "application/vnd.oci.image.manifest.v1+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oftn.l10n+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.contentaccessdownload+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.contentaccessstreaming+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.cspg-hexbinary": { - "source": "iana" - }, - "application/vnd.oipf.dae.svg+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.dae.xhtml+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.mippvcontrolmessage+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.pae.gem": { - "source": "iana" - }, - "application/vnd.oipf.spdiscovery+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.spdlist+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.ueprofile+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oipf.userprofile+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.olpc-sugar": { - "source": "iana", - "extensions": ["xo"] - }, - "application/vnd.oma-scws-config": { - "source": "iana" - }, - "application/vnd.oma-scws-http-request": { - "source": "iana" - }, - "application/vnd.oma-scws-http-response": { - "source": "iana" - }, - "application/vnd.oma.bcast.associated-procedure-parameter+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.bcast.drm-trigger+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.bcast.imd+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.bcast.ltkm": { - "source": "iana" - }, - "application/vnd.oma.bcast.notification+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.bcast.provisioningtrigger": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgboot": { - "source": "iana" - }, - "application/vnd.oma.bcast.sgdd+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.bcast.sgdu": { - "source": "iana" - }, - "application/vnd.oma.bcast.simple-symbol-container": { - "source": "iana" - }, - "application/vnd.oma.bcast.smartcard-trigger+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.bcast.sprov+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.bcast.stkm": { - "source": "iana" - }, - "application/vnd.oma.cab-address-book+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.cab-feature-handler+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.cab-pcc+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.cab-subs-invite+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.cab-user-prefs+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.dcd": { - "source": "iana" - }, - "application/vnd.oma.dcdc": { - "source": "iana" - }, - "application/vnd.oma.dd2+xml": { - "source": "iana", - "compressible": true, - "extensions": ["dd2"] - }, - "application/vnd.oma.drm.risd+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.group-usage-list+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.lwm2m+cbor": { - "source": "iana" - }, - "application/vnd.oma.lwm2m+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.lwm2m+tlv": { - "source": "iana" - }, - "application/vnd.oma.pal+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.poc.detailed-progress-report+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.poc.final-report+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.poc.groups+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.poc.invocation-descriptor+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.poc.optimized-progress-report+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.push": { - "source": "iana" - }, - "application/vnd.oma.scidm.messages+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oma.xcap-directory+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.omads-email+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/vnd.omads-file+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/vnd.omads-folder+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/vnd.omaloc-supl-init": { - "source": "iana" - }, - "application/vnd.onepager": { - "source": "iana" - }, - "application/vnd.onepagertamp": { - "source": "iana" - }, - "application/vnd.onepagertamx": { - "source": "iana" - }, - "application/vnd.onepagertat": { - "source": "iana" - }, - "application/vnd.onepagertatp": { - "source": "iana" - }, - "application/vnd.onepagertatx": { - "source": "iana" - }, - "application/vnd.openblox.game+xml": { - "source": "iana", - "compressible": true, - "extensions": ["obgx"] - }, - "application/vnd.openblox.game-binary": { - "source": "iana" - }, - "application/vnd.openeye.oeb": { - "source": "iana" - }, - "application/vnd.openofficeorg.extension": { - "source": "apache", - "extensions": ["oxt"] - }, - "application/vnd.openstreetmap.data+xml": { - "source": "iana", - "compressible": true, - "extensions": ["osm"] - }, - "application/vnd.opentimestamps.ots": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.custom-properties+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.drawing+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.extended-properties+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation": { - "source": "iana", - "compressible": false, - "extensions": ["pptx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide": { - "source": "iana", - "extensions": ["sldx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { - "source": "iana", - "extensions": ["ppsx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.template": { - "source": "iana", - "extensions": ["potx"] - }, - "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { - "source": "iana", - "compressible": false, - "extensions": ["xlsx"] - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { - "source": "iana", - "extensions": ["xltx"] - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.theme+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.themeoverride+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.vmldrawing": { - "source": "iana" - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { - "source": "iana", - "compressible": false, - "extensions": ["docx"] - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { - "source": "iana", - "extensions": ["dotx"] - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-package.core-properties+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.openxmlformats-package.relationships+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oracle.resource+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.orange.indata": { - "source": "iana" - }, - "application/vnd.osa.netdeploy": { - "source": "iana" - }, - "application/vnd.osgeo.mapguide.package": { - "source": "iana", - "extensions": ["mgp"] - }, - "application/vnd.osgi.bundle": { - "source": "iana" - }, - "application/vnd.osgi.dp": { - "source": "iana", - "extensions": ["dp"] - }, - "application/vnd.osgi.subsystem": { - "source": "iana", - "extensions": ["esa"] - }, - "application/vnd.otps.ct-kip+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.oxli.countgraph": { - "source": "iana" - }, - "application/vnd.pagerduty+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.palm": { - "source": "iana", - "extensions": ["pdb","pqa","oprc"] - }, - "application/vnd.panoply": { - "source": "iana" - }, - "application/vnd.paos.xml": { - "source": "iana" - }, - "application/vnd.patentdive": { - "source": "iana" - }, - "application/vnd.patientecommsdoc": { - "source": "iana" - }, - "application/vnd.pawaafile": { - "source": "iana", - "extensions": ["paw"] - }, - "application/vnd.pcos": { - "source": "iana" - }, - "application/vnd.pg.format": { - "source": "iana", - "extensions": ["str"] - }, - "application/vnd.pg.osasli": { - "source": "iana", - "extensions": ["ei6"] - }, - "application/vnd.piaccess.application-licence": { - "source": "iana" - }, - "application/vnd.picsel": { - "source": "iana", - "extensions": ["efif"] - }, - "application/vnd.pmi.widget": { - "source": "iana", - "extensions": ["wg"] - }, - "application/vnd.poc.group-advertisement+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.pocketlearn": { - "source": "iana", - "extensions": ["plf"] - }, - "application/vnd.powerbuilder6": { - "source": "iana", - "extensions": ["pbd"] - }, - "application/vnd.powerbuilder6-s": { - "source": "iana" - }, - "application/vnd.powerbuilder7": { - "source": "iana" - }, - "application/vnd.powerbuilder7-s": { - "source": "iana" - }, - "application/vnd.powerbuilder75": { - "source": "iana" - }, - "application/vnd.powerbuilder75-s": { - "source": "iana" - }, - "application/vnd.preminet": { - "source": "iana" - }, - "application/vnd.previewsystems.box": { - "source": "iana", - "extensions": ["box"] - }, - "application/vnd.proteus.magazine": { - "source": "iana", - "extensions": ["mgz"] - }, - "application/vnd.psfs": { - "source": "iana" - }, - "application/vnd.publishare-delta-tree": { - "source": "iana", - "extensions": ["qps"] - }, - "application/vnd.pvi.ptid1": { - "source": "iana", - "extensions": ["ptid"] - }, - "application/vnd.pwg-multiplexed": { - "source": "iana" - }, - "application/vnd.pwg-xhtml-print+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.qualcomm.brew-app-res": { - "source": "iana" - }, - "application/vnd.quarantainenet": { - "source": "iana" - }, - "application/vnd.quark.quarkxpress": { - "source": "iana", - "extensions": ["qxd","qxt","qwd","qwt","qxl","qxb"] - }, - "application/vnd.quobject-quoxdocument": { - "source": "iana" - }, - "application/vnd.radisys.moml+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-audit+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-audit-conf+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-audit-conn+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-audit-dialog+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-audit-stream+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-conf+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-dialog+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-dialog-base+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-dialog-fax-detect+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-dialog-group+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-dialog-speech+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.radisys.msml-dialog-transform+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.rainstor.data": { - "source": "iana" - }, - "application/vnd.rapid": { - "source": "iana" - }, - "application/vnd.rar": { - "source": "iana", - "extensions": ["rar"] - }, - "application/vnd.realvnc.bed": { - "source": "iana", - "extensions": ["bed"] - }, - "application/vnd.recordare.musicxml": { - "source": "iana", - "extensions": ["mxl"] - }, - "application/vnd.recordare.musicxml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["musicxml"] - }, - "application/vnd.renlearn.rlprint": { - "source": "iana" - }, - "application/vnd.resilient.logic": { - "source": "iana" - }, - "application/vnd.restful+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.rig.cryptonote": { - "source": "iana", - "extensions": ["cryptonote"] - }, - "application/vnd.rim.cod": { - "source": "apache", - "extensions": ["cod"] - }, - "application/vnd.rn-realmedia": { - "source": "apache", - "extensions": ["rm"] - }, - "application/vnd.rn-realmedia-vbr": { - "source": "apache", - "extensions": ["rmvb"] - }, - "application/vnd.route66.link66+xml": { - "source": "iana", - "compressible": true, - "extensions": ["link66"] - }, - "application/vnd.rs-274x": { - "source": "iana" - }, - "application/vnd.ruckus.download": { - "source": "iana" - }, - "application/vnd.s3sms": { - "source": "iana" - }, - "application/vnd.sailingtracker.track": { - "source": "iana", - "extensions": ["st"] - }, - "application/vnd.sar": { - "source": "iana" - }, - "application/vnd.sbm.cid": { - "source": "iana" - }, - "application/vnd.sbm.mid2": { - "source": "iana" - }, - "application/vnd.scribus": { - "source": "iana" - }, - "application/vnd.sealed.3df": { - "source": "iana" - }, - "application/vnd.sealed.csf": { - "source": "iana" - }, - "application/vnd.sealed.doc": { - "source": "iana" - }, - "application/vnd.sealed.eml": { - "source": "iana" - }, - "application/vnd.sealed.mht": { - "source": "iana" - }, - "application/vnd.sealed.net": { - "source": "iana" - }, - "application/vnd.sealed.ppt": { - "source": "iana" - }, - "application/vnd.sealed.tiff": { - "source": "iana" - }, - "application/vnd.sealed.xls": { - "source": "iana" - }, - "application/vnd.sealedmedia.softseal.html": { - "source": "iana" - }, - "application/vnd.sealedmedia.softseal.pdf": { - "source": "iana" - }, - "application/vnd.seemail": { - "source": "iana", - "extensions": ["see"] - }, - "application/vnd.seis+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.sema": { - "source": "iana", - "extensions": ["sema"] - }, - "application/vnd.semd": { - "source": "iana", - "extensions": ["semd"] - }, - "application/vnd.semf": { - "source": "iana", - "extensions": ["semf"] - }, - "application/vnd.shade-save-file": { - "source": "iana" - }, - "application/vnd.shana.informed.formdata": { - "source": "iana", - "extensions": ["ifm"] - }, - "application/vnd.shana.informed.formtemplate": { - "source": "iana", - "extensions": ["itp"] - }, - "application/vnd.shana.informed.interchange": { - "source": "iana", - "extensions": ["iif"] - }, - "application/vnd.shana.informed.package": { - "source": "iana", - "extensions": ["ipk"] - }, - "application/vnd.shootproof+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.shopkick+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.shp": { - "source": "iana" - }, - "application/vnd.shx": { - "source": "iana" - }, - "application/vnd.sigrok.session": { - "source": "iana" - }, - "application/vnd.simtech-mindmapper": { - "source": "iana", - "extensions": ["twd","twds"] - }, - "application/vnd.siren+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.smaf": { - "source": "iana", - "extensions": ["mmf"] - }, - "application/vnd.smart.notebook": { - "source": "iana" - }, - "application/vnd.smart.teacher": { - "source": "iana", - "extensions": ["teacher"] - }, - "application/vnd.snesdev-page-table": { - "source": "iana" - }, - "application/vnd.software602.filler.form+xml": { - "source": "iana", - "compressible": true, - "extensions": ["fo"] - }, - "application/vnd.software602.filler.form-xml-zip": { - "source": "iana" - }, - "application/vnd.solent.sdkm+xml": { - "source": "iana", - "compressible": true, - "extensions": ["sdkm","sdkd"] - }, - "application/vnd.spotfire.dxp": { - "source": "iana", - "extensions": ["dxp"] - }, - "application/vnd.spotfire.sfs": { - "source": "iana", - "extensions": ["sfs"] - }, - "application/vnd.sqlite3": { - "source": "iana" - }, - "application/vnd.sss-cod": { - "source": "iana" - }, - "application/vnd.sss-dtf": { - "source": "iana" - }, - "application/vnd.sss-ntf": { - "source": "iana" - }, - "application/vnd.stardivision.calc": { - "source": "apache", - "extensions": ["sdc"] - }, - "application/vnd.stardivision.draw": { - "source": "apache", - "extensions": ["sda"] - }, - "application/vnd.stardivision.impress": { - "source": "apache", - "extensions": ["sdd"] - }, - "application/vnd.stardivision.math": { - "source": "apache", - "extensions": ["smf"] - }, - "application/vnd.stardivision.writer": { - "source": "apache", - "extensions": ["sdw","vor"] - }, - "application/vnd.stardivision.writer-global": { - "source": "apache", - "extensions": ["sgl"] - }, - "application/vnd.stepmania.package": { - "source": "iana", - "extensions": ["smzip"] - }, - "application/vnd.stepmania.stepchart": { - "source": "iana", - "extensions": ["sm"] - }, - "application/vnd.street-stream": { - "source": "iana" - }, - "application/vnd.sun.wadl+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wadl"] - }, - "application/vnd.sun.xml.calc": { - "source": "apache", - "extensions": ["sxc"] - }, - "application/vnd.sun.xml.calc.template": { - "source": "apache", - "extensions": ["stc"] - }, - "application/vnd.sun.xml.draw": { - "source": "apache", - "extensions": ["sxd"] - }, - "application/vnd.sun.xml.draw.template": { - "source": "apache", - "extensions": ["std"] - }, - "application/vnd.sun.xml.impress": { - "source": "apache", - "extensions": ["sxi"] - }, - "application/vnd.sun.xml.impress.template": { - "source": "apache", - "extensions": ["sti"] - }, - "application/vnd.sun.xml.math": { - "source": "apache", - "extensions": ["sxm"] - }, - "application/vnd.sun.xml.writer": { - "source": "apache", - "extensions": ["sxw"] - }, - "application/vnd.sun.xml.writer.global": { - "source": "apache", - "extensions": ["sxg"] - }, - "application/vnd.sun.xml.writer.template": { - "source": "apache", - "extensions": ["stw"] - }, - "application/vnd.sus-calendar": { - "source": "iana", - "extensions": ["sus","susp"] - }, - "application/vnd.svd": { - "source": "iana", - "extensions": ["svd"] - }, - "application/vnd.swiftview-ics": { - "source": "iana" - }, - "application/vnd.sycle+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.syft+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.symbian.install": { - "source": "apache", - "extensions": ["sis","sisx"] - }, - "application/vnd.syncml+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["xsm"] - }, - "application/vnd.syncml.dm+wbxml": { - "source": "iana", - "charset": "UTF-8", - "extensions": ["bdm"] - }, - "application/vnd.syncml.dm+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["xdm"] - }, - "application/vnd.syncml.dm.notification": { - "source": "iana" - }, - "application/vnd.syncml.dmddf+wbxml": { - "source": "iana" - }, - "application/vnd.syncml.dmddf+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["ddf"] - }, - "application/vnd.syncml.dmtnds+wbxml": { - "source": "iana" - }, - "application/vnd.syncml.dmtnds+xml": { - "source": "iana", - "charset": "UTF-8", - "compressible": true - }, - "application/vnd.syncml.ds.notification": { - "source": "iana" - }, - "application/vnd.tableschema+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.tao.intent-module-archive": { - "source": "iana", - "extensions": ["tao"] - }, - "application/vnd.tcpdump.pcap": { - "source": "iana", - "extensions": ["pcap","cap","dmp"] - }, - "application/vnd.think-cell.ppttc+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.tmd.mediaflex.api+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.tml": { - "source": "iana" - }, - "application/vnd.tmobile-livetv": { - "source": "iana", - "extensions": ["tmo"] - }, - "application/vnd.tri.onesource": { - "source": "iana" - }, - "application/vnd.trid.tpt": { - "source": "iana", - "extensions": ["tpt"] - }, - "application/vnd.triscape.mxs": { - "source": "iana", - "extensions": ["mxs"] - }, - "application/vnd.trueapp": { - "source": "iana", - "extensions": ["tra"] - }, - "application/vnd.truedoc": { - "source": "iana" - }, - "application/vnd.ubisoft.webplayer": { - "source": "iana" - }, - "application/vnd.ufdl": { - "source": "iana", - "extensions": ["ufd","ufdl"] - }, - "application/vnd.uiq.theme": { - "source": "iana", - "extensions": ["utz"] - }, - "application/vnd.umajin": { - "source": "iana", - "extensions": ["umj"] - }, - "application/vnd.unity": { - "source": "iana", - "extensions": ["unityweb"] - }, - "application/vnd.uoml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["uoml"] - }, - "application/vnd.uplanet.alert": { - "source": "iana" - }, - "application/vnd.uplanet.alert-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.bearer-choice": { - "source": "iana" - }, - "application/vnd.uplanet.bearer-choice-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.cacheop": { - "source": "iana" - }, - "application/vnd.uplanet.cacheop-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.channel": { - "source": "iana" - }, - "application/vnd.uplanet.channel-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.list": { - "source": "iana" - }, - "application/vnd.uplanet.list-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.listcmd": { - "source": "iana" - }, - "application/vnd.uplanet.listcmd-wbxml": { - "source": "iana" - }, - "application/vnd.uplanet.signal": { - "source": "iana" - }, - "application/vnd.uri-map": { - "source": "iana" - }, - "application/vnd.valve.source.material": { - "source": "iana" - }, - "application/vnd.vcx": { - "source": "iana", - "extensions": ["vcx"] - }, - "application/vnd.vd-study": { - "source": "iana" - }, - "application/vnd.vectorworks": { - "source": "iana" - }, - "application/vnd.vel+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.verimatrix.vcas": { - "source": "iana" - }, - "application/vnd.veritone.aion+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.veryant.thin": { - "source": "iana" - }, - "application/vnd.ves.encrypted": { - "source": "iana" - }, - "application/vnd.vidsoft.vidconference": { - "source": "iana" - }, - "application/vnd.visio": { - "source": "iana", - "extensions": ["vsd","vst","vss","vsw"] - }, - "application/vnd.visionary": { - "source": "iana", - "extensions": ["vis"] - }, - "application/vnd.vividence.scriptfile": { - "source": "iana" - }, - "application/vnd.vsf": { - "source": "iana", - "extensions": ["vsf"] - }, - "application/vnd.wap.sic": { - "source": "iana" - }, - "application/vnd.wap.slc": { - "source": "iana" - }, - "application/vnd.wap.wbxml": { - "source": "iana", - "charset": "UTF-8", - "extensions": ["wbxml"] - }, - "application/vnd.wap.wmlc": { - "source": "iana", - "extensions": ["wmlc"] - }, - "application/vnd.wap.wmlscriptc": { - "source": "iana", - "extensions": ["wmlsc"] - }, - "application/vnd.webturbo": { - "source": "iana", - "extensions": ["wtb"] - }, - "application/vnd.wfa.dpp": { - "source": "iana" - }, - "application/vnd.wfa.p2p": { - "source": "iana" - }, - "application/vnd.wfa.wsc": { - "source": "iana" - }, - "application/vnd.windows.devicepairing": { - "source": "iana" - }, - "application/vnd.wmc": { - "source": "iana" - }, - "application/vnd.wmf.bootstrap": { - "source": "iana" - }, - "application/vnd.wolfram.mathematica": { - "source": "iana" - }, - "application/vnd.wolfram.mathematica.package": { - "source": "iana" - }, - "application/vnd.wolfram.player": { - "source": "iana", - "extensions": ["nbp"] - }, - "application/vnd.wordperfect": { - "source": "iana", - "extensions": ["wpd"] - }, - "application/vnd.wqd": { - "source": "iana", - "extensions": ["wqd"] - }, - "application/vnd.wrq-hp3000-labelled": { - "source": "iana" - }, - "application/vnd.wt.stf": { - "source": "iana", - "extensions": ["stf"] - }, - "application/vnd.wv.csp+wbxml": { - "source": "iana" - }, - "application/vnd.wv.csp+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.wv.ssp+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.xacml+json": { - "source": "iana", - "compressible": true - }, - "application/vnd.xara": { - "source": "iana", - "extensions": ["xar"] - }, - "application/vnd.xfdl": { - "source": "iana", - "extensions": ["xfdl"] - }, - "application/vnd.xfdl.webform": { - "source": "iana" - }, - "application/vnd.xmi+xml": { - "source": "iana", - "compressible": true - }, - "application/vnd.xmpie.cpkg": { - "source": "iana" - }, - "application/vnd.xmpie.dpkg": { - "source": "iana" - }, - "application/vnd.xmpie.plan": { - "source": "iana" - }, - "application/vnd.xmpie.ppkg": { - "source": "iana" - }, - "application/vnd.xmpie.xlim": { - "source": "iana" - }, - "application/vnd.yamaha.hv-dic": { - "source": "iana", - "extensions": ["hvd"] - }, - "application/vnd.yamaha.hv-script": { - "source": "iana", - "extensions": ["hvs"] - }, - "application/vnd.yamaha.hv-voice": { - "source": "iana", - "extensions": ["hvp"] - }, - "application/vnd.yamaha.openscoreformat": { - "source": "iana", - "extensions": ["osf"] - }, - "application/vnd.yamaha.openscoreformat.osfpvg+xml": { - "source": "iana", - "compressible": true, - "extensions": ["osfpvg"] - }, - "application/vnd.yamaha.remote-setup": { - "source": "iana" - }, - "application/vnd.yamaha.smaf-audio": { - "source": "iana", - "extensions": ["saf"] - }, - "application/vnd.yamaha.smaf-phrase": { - "source": "iana", - "extensions": ["spf"] - }, - "application/vnd.yamaha.through-ngn": { - "source": "iana" - }, - "application/vnd.yamaha.tunnel-udpencap": { - "source": "iana" - }, - "application/vnd.yaoweme": { - "source": "iana" - }, - "application/vnd.yellowriver-custom-menu": { - "source": "iana", - "extensions": ["cmp"] - }, - "application/vnd.youtube.yt": { - "source": "iana" - }, - "application/vnd.zul": { - "source": "iana", - "extensions": ["zir","zirz"] - }, - "application/vnd.zzazz.deck+xml": { - "source": "iana", - "compressible": true, - "extensions": ["zaz"] - }, - "application/voicexml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["vxml"] - }, - "application/voucher-cms+json": { - "source": "iana", - "compressible": true - }, - "application/vq-rtcpxr": { - "source": "iana" - }, - "application/wasm": { - "source": "iana", - "compressible": true, - "extensions": ["wasm"] - }, - "application/watcherinfo+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wif"] - }, - "application/webpush-options+json": { - "source": "iana", - "compressible": true - }, - "application/whoispp-query": { - "source": "iana" - }, - "application/whoispp-response": { - "source": "iana" - }, - "application/widget": { - "source": "iana", - "extensions": ["wgt"] - }, - "application/winhlp": { - "source": "apache", - "extensions": ["hlp"] - }, - "application/wita": { - "source": "iana" - }, - "application/wordperfect5.1": { - "source": "iana" - }, - "application/wsdl+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wsdl"] - }, - "application/wspolicy+xml": { - "source": "iana", - "compressible": true, - "extensions": ["wspolicy"] - }, - "application/x-7z-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["7z"] - }, - "application/x-abiword": { - "source": "apache", - "extensions": ["abw"] - }, - "application/x-ace-compressed": { - "source": "apache", - "extensions": ["ace"] - }, - "application/x-amf": { - "source": "apache" - }, - "application/x-apple-diskimage": { - "source": "apache", - "extensions": ["dmg"] - }, - "application/x-arj": { - "compressible": false, - "extensions": ["arj"] - }, - "application/x-authorware-bin": { - "source": "apache", - "extensions": ["aab","x32","u32","vox"] - }, - "application/x-authorware-map": { - "source": "apache", - "extensions": ["aam"] - }, - "application/x-authorware-seg": { - "source": "apache", - "extensions": ["aas"] - }, - "application/x-bcpio": { - "source": "apache", - "extensions": ["bcpio"] - }, - "application/x-bdoc": { - "compressible": false, - "extensions": ["bdoc"] - }, - "application/x-bittorrent": { - "source": "apache", - "extensions": ["torrent"] - }, - "application/x-blorb": { - "source": "apache", - "extensions": ["blb","blorb"] - }, - "application/x-bzip": { - "source": "apache", - "compressible": false, - "extensions": ["bz"] - }, - "application/x-bzip2": { - "source": "apache", - "compressible": false, - "extensions": ["bz2","boz"] - }, - "application/x-cbr": { - "source": "apache", - "extensions": ["cbr","cba","cbt","cbz","cb7"] - }, - "application/x-cdlink": { - "source": "apache", - "extensions": ["vcd"] - }, - "application/x-cfs-compressed": { - "source": "apache", - "extensions": ["cfs"] - }, - "application/x-chat": { - "source": "apache", - "extensions": ["chat"] - }, - "application/x-chess-pgn": { - "source": "apache", - "extensions": ["pgn"] - }, - "application/x-chrome-extension": { - "extensions": ["crx"] - }, - "application/x-cocoa": { - "source": "nginx", - "extensions": ["cco"] - }, - "application/x-compress": { - "source": "apache" - }, - "application/x-conference": { - "source": "apache", - "extensions": ["nsc"] - }, - "application/x-cpio": { - "source": "apache", - "extensions": ["cpio"] - }, - "application/x-csh": { - "source": "apache", - "extensions": ["csh"] - }, - "application/x-deb": { - "compressible": false - }, - "application/x-debian-package": { - "source": "apache", - "extensions": ["deb","udeb"] - }, - "application/x-dgc-compressed": { - "source": "apache", - "extensions": ["dgc"] - }, - "application/x-director": { - "source": "apache", - "extensions": ["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"] - }, - "application/x-doom": { - "source": "apache", - "extensions": ["wad"] - }, - "application/x-dtbncx+xml": { - "source": "apache", - "compressible": true, - "extensions": ["ncx"] - }, - "application/x-dtbook+xml": { - "source": "apache", - "compressible": true, - "extensions": ["dtb"] - }, - "application/x-dtbresource+xml": { - "source": "apache", - "compressible": true, - "extensions": ["res"] - }, - "application/x-dvi": { - "source": "apache", - "compressible": false, - "extensions": ["dvi"] - }, - "application/x-envoy": { - "source": "apache", - "extensions": ["evy"] - }, - "application/x-eva": { - "source": "apache", - "extensions": ["eva"] - }, - "application/x-font-bdf": { - "source": "apache", - "extensions": ["bdf"] - }, - "application/x-font-dos": { - "source": "apache" - }, - "application/x-font-framemaker": { - "source": "apache" - }, - "application/x-font-ghostscript": { - "source": "apache", - "extensions": ["gsf"] - }, - "application/x-font-libgrx": { - "source": "apache" - }, - "application/x-font-linux-psf": { - "source": "apache", - "extensions": ["psf"] - }, - "application/x-font-pcf": { - "source": "apache", - "extensions": ["pcf"] - }, - "application/x-font-snf": { - "source": "apache", - "extensions": ["snf"] - }, - "application/x-font-speedo": { - "source": "apache" - }, - "application/x-font-sunos-news": { - "source": "apache" - }, - "application/x-font-type1": { - "source": "apache", - "extensions": ["pfa","pfb","pfm","afm"] - }, - "application/x-font-vfont": { - "source": "apache" - }, - "application/x-freearc": { - "source": "apache", - "extensions": ["arc"] - }, - "application/x-futuresplash": { - "source": "apache", - "extensions": ["spl"] - }, - "application/x-gca-compressed": { - "source": "apache", - "extensions": ["gca"] - }, - "application/x-glulx": { - "source": "apache", - "extensions": ["ulx"] - }, - "application/x-gnumeric": { - "source": "apache", - "extensions": ["gnumeric"] - }, - "application/x-gramps-xml": { - "source": "apache", - "extensions": ["gramps"] - }, - "application/x-gtar": { - "source": "apache", - "extensions": ["gtar"] - }, - "application/x-gzip": { - "source": "apache" - }, - "application/x-hdf": { - "source": "apache", - "extensions": ["hdf"] - }, - "application/x-httpd-php": { - "compressible": true, - "extensions": ["php"] - }, - "application/x-install-instructions": { - "source": "apache", - "extensions": ["install"] - }, - "application/x-iso9660-image": { - "source": "apache", - "extensions": ["iso"] - }, - "application/x-iwork-keynote-sffkey": { - "extensions": ["key"] - }, - "application/x-iwork-numbers-sffnumbers": { - "extensions": ["numbers"] - }, - "application/x-iwork-pages-sffpages": { - "extensions": ["pages"] - }, - "application/x-java-archive-diff": { - "source": "nginx", - "extensions": ["jardiff"] - }, - "application/x-java-jnlp-file": { - "source": "apache", - "compressible": false, - "extensions": ["jnlp"] - }, - "application/x-javascript": { - "compressible": true - }, - "application/x-keepass2": { - "extensions": ["kdbx"] - }, - "application/x-latex": { - "source": "apache", - "compressible": false, - "extensions": ["latex"] - }, - "application/x-lua-bytecode": { - "extensions": ["luac"] - }, - "application/x-lzh-compressed": { - "source": "apache", - "extensions": ["lzh","lha"] - }, - "application/x-makeself": { - "source": "nginx", - "extensions": ["run"] - }, - "application/x-mie": { - "source": "apache", - "extensions": ["mie"] - }, - "application/x-mobipocket-ebook": { - "source": "apache", - "extensions": ["prc","mobi"] - }, - "application/x-mpegurl": { - "compressible": false - }, - "application/x-ms-application": { - "source": "apache", - "extensions": ["application"] - }, - "application/x-ms-shortcut": { - "source": "apache", - "extensions": ["lnk"] - }, - "application/x-ms-wmd": { - "source": "apache", - "extensions": ["wmd"] - }, - "application/x-ms-wmz": { - "source": "apache", - "extensions": ["wmz"] - }, - "application/x-ms-xbap": { - "source": "apache", - "extensions": ["xbap"] - }, - "application/x-msaccess": { - "source": "apache", - "extensions": ["mdb"] - }, - "application/x-msbinder": { - "source": "apache", - "extensions": ["obd"] - }, - "application/x-mscardfile": { - "source": "apache", - "extensions": ["crd"] - }, - "application/x-msclip": { - "source": "apache", - "extensions": ["clp"] - }, - "application/x-msdos-program": { - "extensions": ["exe"] - }, - "application/x-msdownload": { - "source": "apache", - "extensions": ["exe","dll","com","bat","msi"] - }, - "application/x-msmediaview": { - "source": "apache", - "extensions": ["mvb","m13","m14"] - }, - "application/x-msmetafile": { - "source": "apache", - "extensions": ["wmf","wmz","emf","emz"] - }, - "application/x-msmoney": { - "source": "apache", - "extensions": ["mny"] - }, - "application/x-mspublisher": { - "source": "apache", - "extensions": ["pub"] - }, - "application/x-msschedule": { - "source": "apache", - "extensions": ["scd"] - }, - "application/x-msterminal": { - "source": "apache", - "extensions": ["trm"] - }, - "application/x-mswrite": { - "source": "apache", - "extensions": ["wri"] - }, - "application/x-netcdf": { - "source": "apache", - "extensions": ["nc","cdf"] - }, - "application/x-ns-proxy-autoconfig": { - "compressible": true, - "extensions": ["pac"] - }, - "application/x-nzb": { - "source": "apache", - "extensions": ["nzb"] - }, - "application/x-perl": { - "source": "nginx", - "extensions": ["pl","pm"] - }, - "application/x-pilot": { - "source": "nginx", - "extensions": ["prc","pdb"] - }, - "application/x-pkcs12": { - "source": "apache", - "compressible": false, - "extensions": ["p12","pfx"] - }, - "application/x-pkcs7-certificates": { - "source": "apache", - "extensions": ["p7b","spc"] - }, - "application/x-pkcs7-certreqresp": { - "source": "apache", - "extensions": ["p7r"] - }, - "application/x-pki-message": { - "source": "iana" - }, - "application/x-rar-compressed": { - "source": "apache", - "compressible": false, - "extensions": ["rar"] - }, - "application/x-redhat-package-manager": { - "source": "nginx", - "extensions": ["rpm"] - }, - "application/x-research-info-systems": { - "source": "apache", - "extensions": ["ris"] - }, - "application/x-sea": { - "source": "nginx", - "extensions": ["sea"] - }, - "application/x-sh": { - "source": "apache", - "compressible": true, - "extensions": ["sh"] - }, - "application/x-shar": { - "source": "apache", - "extensions": ["shar"] - }, - "application/x-shockwave-flash": { - "source": "apache", - "compressible": false, - "extensions": ["swf"] - }, - "application/x-silverlight-app": { - "source": "apache", - "extensions": ["xap"] - }, - "application/x-sql": { - "source": "apache", - "extensions": ["sql"] - }, - "application/x-stuffit": { - "source": "apache", - "compressible": false, - "extensions": ["sit"] - }, - "application/x-stuffitx": { - "source": "apache", - "extensions": ["sitx"] - }, - "application/x-subrip": { - "source": "apache", - "extensions": ["srt"] - }, - "application/x-sv4cpio": { - "source": "apache", - "extensions": ["sv4cpio"] - }, - "application/x-sv4crc": { - "source": "apache", - "extensions": ["sv4crc"] - }, - "application/x-t3vm-image": { - "source": "apache", - "extensions": ["t3"] - }, - "application/x-tads": { - "source": "apache", - "extensions": ["gam"] - }, - "application/x-tar": { - "source": "apache", - "compressible": true, - "extensions": ["tar"] - }, - "application/x-tcl": { - "source": "apache", - "extensions": ["tcl","tk"] - }, - "application/x-tex": { - "source": "apache", - "extensions": ["tex"] - }, - "application/x-tex-tfm": { - "source": "apache", - "extensions": ["tfm"] - }, - "application/x-texinfo": { - "source": "apache", - "extensions": ["texinfo","texi"] - }, - "application/x-tgif": { - "source": "apache", - "extensions": ["obj"] - }, - "application/x-ustar": { - "source": "apache", - "extensions": ["ustar"] - }, - "application/x-virtualbox-hdd": { - "compressible": true, - "extensions": ["hdd"] - }, - "application/x-virtualbox-ova": { - "compressible": true, - "extensions": ["ova"] - }, - "application/x-virtualbox-ovf": { - "compressible": true, - "extensions": ["ovf"] - }, - "application/x-virtualbox-vbox": { - "compressible": true, - "extensions": ["vbox"] - }, - "application/x-virtualbox-vbox-extpack": { - "compressible": false, - "extensions": ["vbox-extpack"] - }, - "application/x-virtualbox-vdi": { - "compressible": true, - "extensions": ["vdi"] - }, - "application/x-virtualbox-vhd": { - "compressible": true, - "extensions": ["vhd"] - }, - "application/x-virtualbox-vmdk": { - "compressible": true, - "extensions": ["vmdk"] - }, - "application/x-wais-source": { - "source": "apache", - "extensions": ["src"] - }, - "application/x-web-app-manifest+json": { - "compressible": true, - "extensions": ["webapp"] - }, - "application/x-www-form-urlencoded": { - "source": "iana", - "compressible": true - }, - "application/x-x509-ca-cert": { - "source": "iana", - "extensions": ["der","crt","pem"] - }, - "application/x-x509-ca-ra-cert": { - "source": "iana" - }, - "application/x-x509-next-ca-cert": { - "source": "iana" - }, - "application/x-xfig": { - "source": "apache", - "extensions": ["fig"] - }, - "application/x-xliff+xml": { - "source": "apache", - "compressible": true, - "extensions": ["xlf"] - }, - "application/x-xpinstall": { - "source": "apache", - "compressible": false, - "extensions": ["xpi"] - }, - "application/x-xz": { - "source": "apache", - "extensions": ["xz"] - }, - "application/x-zmachine": { - "source": "apache", - "extensions": ["z1","z2","z3","z4","z5","z6","z7","z8"] - }, - "application/x400-bp": { - "source": "iana" - }, - "application/xacml+xml": { - "source": "iana", - "compressible": true - }, - "application/xaml+xml": { - "source": "apache", - "compressible": true, - "extensions": ["xaml"] - }, - "application/xcap-att+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xav"] - }, - "application/xcap-caps+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xca"] - }, - "application/xcap-diff+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xdf"] - }, - "application/xcap-el+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xel"] - }, - "application/xcap-error+xml": { - "source": "iana", - "compressible": true - }, - "application/xcap-ns+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xns"] - }, - "application/xcon-conference-info+xml": { - "source": "iana", - "compressible": true - }, - "application/xcon-conference-info-diff+xml": { - "source": "iana", - "compressible": true - }, - "application/xenc+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xenc"] - }, - "application/xhtml+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xhtml","xht"] - }, - "application/xhtml-voice+xml": { - "source": "apache", - "compressible": true - }, - "application/xliff+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xlf"] - }, - "application/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml","xsl","xsd","rng"] - }, - "application/xml-dtd": { - "source": "iana", - "compressible": true, - "extensions": ["dtd"] - }, - "application/xml-external-parsed-entity": { - "source": "iana" - }, - "application/xml-patch+xml": { - "source": "iana", - "compressible": true - }, - "application/xmpp+xml": { - "source": "iana", - "compressible": true - }, - "application/xop+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xop"] - }, - "application/xproc+xml": { - "source": "apache", - "compressible": true, - "extensions": ["xpl"] - }, - "application/xslt+xml": { - "source": "iana", - "compressible": true, - "extensions": ["xsl","xslt"] - }, - "application/xspf+xml": { - "source": "apache", - "compressible": true, - "extensions": ["xspf"] - }, - "application/xv+xml": { - "source": "iana", - "compressible": true, - "extensions": ["mxml","xhvml","xvml","xvm"] - }, - "application/yang": { - "source": "iana", - "extensions": ["yang"] - }, - "application/yang-data+json": { - "source": "iana", - "compressible": true - }, - "application/yang-data+xml": { - "source": "iana", - "compressible": true - }, - "application/yang-patch+json": { - "source": "iana", - "compressible": true - }, - "application/yang-patch+xml": { - "source": "iana", - "compressible": true - }, - "application/yin+xml": { - "source": "iana", - "compressible": true, - "extensions": ["yin"] - }, - "application/zip": { - "source": "iana", - "compressible": false, - "extensions": ["zip"] - }, - "application/zlib": { - "source": "iana" - }, - "application/zstd": { - "source": "iana" - }, - "audio/1d-interleaved-parityfec": { - "source": "iana" - }, - "audio/32kadpcm": { - "source": "iana" - }, - "audio/3gpp": { - "source": "iana", - "compressible": false, - "extensions": ["3gpp"] - }, - "audio/3gpp2": { - "source": "iana" - }, - "audio/aac": { - "source": "iana" - }, - "audio/ac3": { - "source": "iana" - }, - "audio/adpcm": { - "source": "apache", - "extensions": ["adp"] - }, - "audio/amr": { - "source": "iana", - "extensions": ["amr"] - }, - "audio/amr-wb": { - "source": "iana" - }, - "audio/amr-wb+": { - "source": "iana" - }, - "audio/aptx": { - "source": "iana" - }, - "audio/asc": { - "source": "iana" - }, - "audio/atrac-advanced-lossless": { - "source": "iana" - }, - "audio/atrac-x": { - "source": "iana" - }, - "audio/atrac3": { - "source": "iana" - }, - "audio/basic": { - "source": "iana", - "compressible": false, - "extensions": ["au","snd"] - }, - "audio/bv16": { - "source": "iana" - }, - "audio/bv32": { - "source": "iana" - }, - "audio/clearmode": { - "source": "iana" - }, - "audio/cn": { - "source": "iana" - }, - "audio/dat12": { - "source": "iana" - }, - "audio/dls": { - "source": "iana" - }, - "audio/dsr-es201108": { - "source": "iana" - }, - "audio/dsr-es202050": { - "source": "iana" - }, - "audio/dsr-es202211": { - "source": "iana" - }, - "audio/dsr-es202212": { - "source": "iana" - }, - "audio/dv": { - "source": "iana" - }, - "audio/dvi4": { - "source": "iana" - }, - "audio/eac3": { - "source": "iana" - }, - "audio/encaprtp": { - "source": "iana" - }, - "audio/evrc": { - "source": "iana" - }, - "audio/evrc-qcp": { - "source": "iana" - }, - "audio/evrc0": { - "source": "iana" - }, - "audio/evrc1": { - "source": "iana" - }, - "audio/evrcb": { - "source": "iana" - }, - "audio/evrcb0": { - "source": "iana" - }, - "audio/evrcb1": { - "source": "iana" - }, - "audio/evrcnw": { - "source": "iana" - }, - "audio/evrcnw0": { - "source": "iana" - }, - "audio/evrcnw1": { - "source": "iana" - }, - "audio/evrcwb": { - "source": "iana" - }, - "audio/evrcwb0": { - "source": "iana" - }, - "audio/evrcwb1": { - "source": "iana" - }, - "audio/evs": { - "source": "iana" - }, - "audio/flexfec": { - "source": "iana" - }, - "audio/fwdred": { - "source": "iana" - }, - "audio/g711-0": { - "source": "iana" - }, - "audio/g719": { - "source": "iana" - }, - "audio/g722": { - "source": "iana" - }, - "audio/g7221": { - "source": "iana" - }, - "audio/g723": { - "source": "iana" - }, - "audio/g726-16": { - "source": "iana" - }, - "audio/g726-24": { - "source": "iana" - }, - "audio/g726-32": { - "source": "iana" - }, - "audio/g726-40": { - "source": "iana" - }, - "audio/g728": { - "source": "iana" - }, - "audio/g729": { - "source": "iana" - }, - "audio/g7291": { - "source": "iana" - }, - "audio/g729d": { - "source": "iana" - }, - "audio/g729e": { - "source": "iana" - }, - "audio/gsm": { - "source": "iana" - }, - "audio/gsm-efr": { - "source": "iana" - }, - "audio/gsm-hr-08": { - "source": "iana" - }, - "audio/ilbc": { - "source": "iana" - }, - "audio/ip-mr_v2.5": { - "source": "iana" - }, - "audio/isac": { - "source": "apache" - }, - "audio/l16": { - "source": "iana" - }, - "audio/l20": { - "source": "iana" - }, - "audio/l24": { - "source": "iana", - "compressible": false - }, - "audio/l8": { - "source": "iana" - }, - "audio/lpc": { - "source": "iana" - }, - "audio/melp": { - "source": "iana" - }, - "audio/melp1200": { - "source": "iana" - }, - "audio/melp2400": { - "source": "iana" - }, - "audio/melp600": { - "source": "iana" - }, - "audio/mhas": { - "source": "iana" - }, - "audio/midi": { - "source": "apache", - "extensions": ["mid","midi","kar","rmi"] - }, - "audio/mobile-xmf": { - "source": "iana", - "extensions": ["mxmf"] - }, - "audio/mp3": { - "compressible": false, - "extensions": ["mp3"] - }, - "audio/mp4": { - "source": "iana", - "compressible": false, - "extensions": ["m4a","mp4a"] - }, - "audio/mp4a-latm": { - "source": "iana" - }, - "audio/mpa": { - "source": "iana" - }, - "audio/mpa-robust": { - "source": "iana" - }, - "audio/mpeg": { - "source": "iana", - "compressible": false, - "extensions": ["mpga","mp2","mp2a","mp3","m2a","m3a"] - }, - "audio/mpeg4-generic": { - "source": "iana" - }, - "audio/musepack": { - "source": "apache" - }, - "audio/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["oga","ogg","spx","opus"] - }, - "audio/opus": { - "source": "iana" - }, - "audio/parityfec": { - "source": "iana" - }, - "audio/pcma": { - "source": "iana" - }, - "audio/pcma-wb": { - "source": "iana" - }, - "audio/pcmu": { - "source": "iana" - }, - "audio/pcmu-wb": { - "source": "iana" - }, - "audio/prs.sid": { - "source": "iana" - }, - "audio/qcelp": { - "source": "iana" - }, - "audio/raptorfec": { - "source": "iana" - }, - "audio/red": { - "source": "iana" - }, - "audio/rtp-enc-aescm128": { - "source": "iana" - }, - "audio/rtp-midi": { - "source": "iana" - }, - "audio/rtploopback": { - "source": "iana" - }, - "audio/rtx": { - "source": "iana" - }, - "audio/s3m": { - "source": "apache", - "extensions": ["s3m"] - }, - "audio/scip": { - "source": "iana" - }, - "audio/silk": { - "source": "apache", - "extensions": ["sil"] - }, - "audio/smv": { - "source": "iana" - }, - "audio/smv-qcp": { - "source": "iana" - }, - "audio/smv0": { - "source": "iana" - }, - "audio/sofa": { - "source": "iana" - }, - "audio/sp-midi": { - "source": "iana" - }, - "audio/speex": { - "source": "iana" - }, - "audio/t140c": { - "source": "iana" - }, - "audio/t38": { - "source": "iana" - }, - "audio/telephone-event": { - "source": "iana" - }, - "audio/tetra_acelp": { - "source": "iana" - }, - "audio/tetra_acelp_bb": { - "source": "iana" - }, - "audio/tone": { - "source": "iana" - }, - "audio/tsvcis": { - "source": "iana" - }, - "audio/uemclip": { - "source": "iana" - }, - "audio/ulpfec": { - "source": "iana" - }, - "audio/usac": { - "source": "iana" - }, - "audio/vdvi": { - "source": "iana" - }, - "audio/vmr-wb": { - "source": "iana" - }, - "audio/vnd.3gpp.iufp": { - "source": "iana" - }, - "audio/vnd.4sb": { - "source": "iana" - }, - "audio/vnd.audiokoz": { - "source": "iana" - }, - "audio/vnd.celp": { - "source": "iana" - }, - "audio/vnd.cisco.nse": { - "source": "iana" - }, - "audio/vnd.cmles.radio-events": { - "source": "iana" - }, - "audio/vnd.cns.anp1": { - "source": "iana" - }, - "audio/vnd.cns.inf1": { - "source": "iana" - }, - "audio/vnd.dece.audio": { - "source": "iana", - "extensions": ["uva","uvva"] - }, - "audio/vnd.digital-winds": { - "source": "iana", - "extensions": ["eol"] - }, - "audio/vnd.dlna.adts": { - "source": "iana" - }, - "audio/vnd.dolby.heaac.1": { - "source": "iana" - }, - "audio/vnd.dolby.heaac.2": { - "source": "iana" - }, - "audio/vnd.dolby.mlp": { - "source": "iana" - }, - "audio/vnd.dolby.mps": { - "source": "iana" - }, - "audio/vnd.dolby.pl2": { - "source": "iana" - }, - "audio/vnd.dolby.pl2x": { - "source": "iana" - }, - "audio/vnd.dolby.pl2z": { - "source": "iana" - }, - "audio/vnd.dolby.pulse.1": { - "source": "iana" - }, - "audio/vnd.dra": { - "source": "iana", - "extensions": ["dra"] - }, - "audio/vnd.dts": { - "source": "iana", - "extensions": ["dts"] - }, - "audio/vnd.dts.hd": { - "source": "iana", - "extensions": ["dtshd"] - }, - "audio/vnd.dts.uhd": { - "source": "iana" - }, - "audio/vnd.dvb.file": { - "source": "iana" - }, - "audio/vnd.everad.plj": { - "source": "iana" - }, - "audio/vnd.hns.audio": { - "source": "iana" - }, - "audio/vnd.lucent.voice": { - "source": "iana", - "extensions": ["lvp"] - }, - "audio/vnd.ms-playready.media.pya": { - "source": "iana", - "extensions": ["pya"] - }, - "audio/vnd.nokia.mobile-xmf": { - "source": "iana" - }, - "audio/vnd.nortel.vbk": { - "source": "iana" - }, - "audio/vnd.nuera.ecelp4800": { - "source": "iana", - "extensions": ["ecelp4800"] - }, - "audio/vnd.nuera.ecelp7470": { - "source": "iana", - "extensions": ["ecelp7470"] - }, - "audio/vnd.nuera.ecelp9600": { - "source": "iana", - "extensions": ["ecelp9600"] - }, - "audio/vnd.octel.sbc": { - "source": "iana" - }, - "audio/vnd.presonus.multitrack": { - "source": "iana" - }, - "audio/vnd.qcelp": { - "source": "iana" - }, - "audio/vnd.rhetorex.32kadpcm": { - "source": "iana" - }, - "audio/vnd.rip": { - "source": "iana", - "extensions": ["rip"] - }, - "audio/vnd.rn-realaudio": { - "compressible": false - }, - "audio/vnd.sealedmedia.softseal.mpeg": { - "source": "iana" - }, - "audio/vnd.vmx.cvsd": { - "source": "iana" - }, - "audio/vnd.wave": { - "compressible": false - }, - "audio/vorbis": { - "source": "iana", - "compressible": false - }, - "audio/vorbis-config": { - "source": "iana" - }, - "audio/wav": { - "compressible": false, - "extensions": ["wav"] - }, - "audio/wave": { - "compressible": false, - "extensions": ["wav"] - }, - "audio/webm": { - "source": "apache", - "compressible": false, - "extensions": ["weba"] - }, - "audio/x-aac": { - "source": "apache", - "compressible": false, - "extensions": ["aac"] - }, - "audio/x-aiff": { - "source": "apache", - "extensions": ["aif","aiff","aifc"] - }, - "audio/x-caf": { - "source": "apache", - "compressible": false, - "extensions": ["caf"] - }, - "audio/x-flac": { - "source": "apache", - "extensions": ["flac"] - }, - "audio/x-m4a": { - "source": "nginx", - "extensions": ["m4a"] - }, - "audio/x-matroska": { - "source": "apache", - "extensions": ["mka"] - }, - "audio/x-mpegurl": { - "source": "apache", - "extensions": ["m3u"] - }, - "audio/x-ms-wax": { - "source": "apache", - "extensions": ["wax"] - }, - "audio/x-ms-wma": { - "source": "apache", - "extensions": ["wma"] - }, - "audio/x-pn-realaudio": { - "source": "apache", - "extensions": ["ram","ra"] - }, - "audio/x-pn-realaudio-plugin": { - "source": "apache", - "extensions": ["rmp"] - }, - "audio/x-realaudio": { - "source": "nginx", - "extensions": ["ra"] - }, - "audio/x-tta": { - "source": "apache" - }, - "audio/x-wav": { - "source": "apache", - "extensions": ["wav"] - }, - "audio/xm": { - "source": "apache", - "extensions": ["xm"] - }, - "chemical/x-cdx": { - "source": "apache", - "extensions": ["cdx"] - }, - "chemical/x-cif": { - "source": "apache", - "extensions": ["cif"] - }, - "chemical/x-cmdf": { - "source": "apache", - "extensions": ["cmdf"] - }, - "chemical/x-cml": { - "source": "apache", - "extensions": ["cml"] - }, - "chemical/x-csml": { - "source": "apache", - "extensions": ["csml"] - }, - "chemical/x-pdb": { - "source": "apache" - }, - "chemical/x-xyz": { - "source": "apache", - "extensions": ["xyz"] - }, - "font/collection": { - "source": "iana", - "extensions": ["ttc"] - }, - "font/otf": { - "source": "iana", - "compressible": true, - "extensions": ["otf"] - }, - "font/sfnt": { - "source": "iana" - }, - "font/ttf": { - "source": "iana", - "compressible": true, - "extensions": ["ttf"] - }, - "font/woff": { - "source": "iana", - "extensions": ["woff"] - }, - "font/woff2": { - "source": "iana", - "extensions": ["woff2"] - }, - "image/aces": { - "source": "iana", - "extensions": ["exr"] - }, - "image/apng": { - "compressible": false, - "extensions": ["apng"] - }, - "image/avci": { - "source": "iana", - "extensions": ["avci"] - }, - "image/avcs": { - "source": "iana", - "extensions": ["avcs"] - }, - "image/avif": { - "source": "iana", - "compressible": false, - "extensions": ["avif"] - }, - "image/bmp": { - "source": "iana", - "compressible": true, - "extensions": ["bmp"] - }, - "image/cgm": { - "source": "iana", - "extensions": ["cgm"] - }, - "image/dicom-rle": { - "source": "iana", - "extensions": ["drle"] - }, - "image/emf": { - "source": "iana", - "extensions": ["emf"] - }, - "image/fits": { - "source": "iana", - "extensions": ["fits"] - }, - "image/g3fax": { - "source": "iana", - "extensions": ["g3"] - }, - "image/gif": { - "source": "iana", - "compressible": false, - "extensions": ["gif"] - }, - "image/heic": { - "source": "iana", - "extensions": ["heic"] - }, - "image/heic-sequence": { - "source": "iana", - "extensions": ["heics"] - }, - "image/heif": { - "source": "iana", - "extensions": ["heif"] - }, - "image/heif-sequence": { - "source": "iana", - "extensions": ["heifs"] - }, - "image/hej2k": { - "source": "iana", - "extensions": ["hej2"] - }, - "image/hsj2": { - "source": "iana", - "extensions": ["hsj2"] - }, - "image/ief": { - "source": "iana", - "extensions": ["ief"] - }, - "image/jls": { - "source": "iana", - "extensions": ["jls"] - }, - "image/jp2": { - "source": "iana", - "compressible": false, - "extensions": ["jp2","jpg2"] - }, - "image/jpeg": { - "source": "iana", - "compressible": false, - "extensions": ["jpeg","jpg","jpe"] - }, - "image/jph": { - "source": "iana", - "extensions": ["jph"] - }, - "image/jphc": { - "source": "iana", - "extensions": ["jhc"] - }, - "image/jpm": { - "source": "iana", - "compressible": false, - "extensions": ["jpm"] - }, - "image/jpx": { - "source": "iana", - "compressible": false, - "extensions": ["jpx","jpf"] - }, - "image/jxr": { - "source": "iana", - "extensions": ["jxr"] - }, - "image/jxra": { - "source": "iana", - "extensions": ["jxra"] - }, - "image/jxrs": { - "source": "iana", - "extensions": ["jxrs"] - }, - "image/jxs": { - "source": "iana", - "extensions": ["jxs"] - }, - "image/jxsc": { - "source": "iana", - "extensions": ["jxsc"] - }, - "image/jxsi": { - "source": "iana", - "extensions": ["jxsi"] - }, - "image/jxss": { - "source": "iana", - "extensions": ["jxss"] - }, - "image/ktx": { - "source": "iana", - "extensions": ["ktx"] - }, - "image/ktx2": { - "source": "iana", - "extensions": ["ktx2"] - }, - "image/naplps": { - "source": "iana" - }, - "image/pjpeg": { - "compressible": false - }, - "image/png": { - "source": "iana", - "compressible": false, - "extensions": ["png"] - }, - "image/prs.btif": { - "source": "iana", - "extensions": ["btif"] - }, - "image/prs.pti": { - "source": "iana", - "extensions": ["pti"] - }, - "image/pwg-raster": { - "source": "iana" - }, - "image/sgi": { - "source": "apache", - "extensions": ["sgi"] - }, - "image/svg+xml": { - "source": "iana", - "compressible": true, - "extensions": ["svg","svgz"] - }, - "image/t38": { - "source": "iana", - "extensions": ["t38"] - }, - "image/tiff": { - "source": "iana", - "compressible": false, - "extensions": ["tif","tiff"] - }, - "image/tiff-fx": { - "source": "iana", - "extensions": ["tfx"] - }, - "image/vnd.adobe.photoshop": { - "source": "iana", - "compressible": true, - "extensions": ["psd"] - }, - "image/vnd.airzip.accelerator.azv": { - "source": "iana", - "extensions": ["azv"] - }, - "image/vnd.cns.inf2": { - "source": "iana" - }, - "image/vnd.dece.graphic": { - "source": "iana", - "extensions": ["uvi","uvvi","uvg","uvvg"] - }, - "image/vnd.djvu": { - "source": "iana", - "extensions": ["djvu","djv"] - }, - "image/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"] - }, - "image/vnd.dwg": { - "source": "iana", - "extensions": ["dwg"] - }, - "image/vnd.dxf": { - "source": "iana", - "extensions": ["dxf"] - }, - "image/vnd.fastbidsheet": { - "source": "iana", - "extensions": ["fbs"] - }, - "image/vnd.fpx": { - "source": "iana", - "extensions": ["fpx"] - }, - "image/vnd.fst": { - "source": "iana", - "extensions": ["fst"] - }, - "image/vnd.fujixerox.edmics-mmr": { - "source": "iana", - "extensions": ["mmr"] - }, - "image/vnd.fujixerox.edmics-rlc": { - "source": "iana", - "extensions": ["rlc"] - }, - "image/vnd.globalgraphics.pgb": { - "source": "iana" - }, - "image/vnd.microsoft.icon": { - "source": "iana", - "compressible": true, - "extensions": ["ico"] - }, - "image/vnd.mix": { - "source": "iana" - }, - "image/vnd.mozilla.apng": { - "source": "iana" - }, - "image/vnd.ms-dds": { - "compressible": true, - "extensions": ["dds"] - }, - "image/vnd.ms-modi": { - "source": "iana", - "extensions": ["mdi"] - }, - "image/vnd.ms-photo": { - "source": "apache", - "extensions": ["wdp"] - }, - "image/vnd.net-fpx": { - "source": "iana", - "extensions": ["npx"] - }, - "image/vnd.pco.b16": { - "source": "iana", - "extensions": ["b16"] - }, - "image/vnd.radiance": { - "source": "iana" - }, - "image/vnd.sealed.png": { - "source": "iana" - }, - "image/vnd.sealedmedia.softseal.gif": { - "source": "iana" - }, - "image/vnd.sealedmedia.softseal.jpg": { - "source": "iana" - }, - "image/vnd.svf": { - "source": "iana" - }, - "image/vnd.tencent.tap": { - "source": "iana", - "extensions": ["tap"] - }, - "image/vnd.valve.source.texture": { - "source": "iana", - "extensions": ["vtf"] - }, - "image/vnd.wap.wbmp": { - "source": "iana", - "extensions": ["wbmp"] - }, - "image/vnd.xiff": { - "source": "iana", - "extensions": ["xif"] - }, - "image/vnd.zbrush.pcx": { - "source": "iana", - "extensions": ["pcx"] - }, - "image/webp": { - "source": "apache", - "extensions": ["webp"] - }, - "image/wmf": { - "source": "iana", - "extensions": ["wmf"] - }, - "image/x-3ds": { - "source": "apache", - "extensions": ["3ds"] - }, - "image/x-cmu-raster": { - "source": "apache", - "extensions": ["ras"] - }, - "image/x-cmx": { - "source": "apache", - "extensions": ["cmx"] - }, - "image/x-freehand": { - "source": "apache", - "extensions": ["fh","fhc","fh4","fh5","fh7"] - }, - "image/x-icon": { - "source": "apache", - "compressible": true, - "extensions": ["ico"] - }, - "image/x-jng": { - "source": "nginx", - "extensions": ["jng"] - }, - "image/x-mrsid-image": { - "source": "apache", - "extensions": ["sid"] - }, - "image/x-ms-bmp": { - "source": "nginx", - "compressible": true, - "extensions": ["bmp"] - }, - "image/x-pcx": { - "source": "apache", - "extensions": ["pcx"] - }, - "image/x-pict": { - "source": "apache", - "extensions": ["pic","pct"] - }, - "image/x-portable-anymap": { - "source": "apache", - "extensions": ["pnm"] - }, - "image/x-portable-bitmap": { - "source": "apache", - "extensions": ["pbm"] - }, - "image/x-portable-graymap": { - "source": "apache", - "extensions": ["pgm"] - }, - "image/x-portable-pixmap": { - "source": "apache", - "extensions": ["ppm"] - }, - "image/x-rgb": { - "source": "apache", - "extensions": ["rgb"] - }, - "image/x-tga": { - "source": "apache", - "extensions": ["tga"] - }, - "image/x-xbitmap": { - "source": "apache", - "extensions": ["xbm"] - }, - "image/x-xcf": { - "compressible": false - }, - "image/x-xpixmap": { - "source": "apache", - "extensions": ["xpm"] - }, - "image/x-xwindowdump": { - "source": "apache", - "extensions": ["xwd"] - }, - "message/cpim": { - "source": "iana" - }, - "message/delivery-status": { - "source": "iana" - }, - "message/disposition-notification": { - "source": "iana", - "extensions": [ - "disposition-notification" - ] - }, - "message/external-body": { - "source": "iana" - }, - "message/feedback-report": { - "source": "iana" - }, - "message/global": { - "source": "iana", - "extensions": ["u8msg"] - }, - "message/global-delivery-status": { - "source": "iana", - "extensions": ["u8dsn"] - }, - "message/global-disposition-notification": { - "source": "iana", - "extensions": ["u8mdn"] - }, - "message/global-headers": { - "source": "iana", - "extensions": ["u8hdr"] - }, - "message/http": { - "source": "iana", - "compressible": false - }, - "message/imdn+xml": { - "source": "iana", - "compressible": true - }, - "message/news": { - "source": "iana" - }, - "message/partial": { - "source": "iana", - "compressible": false - }, - "message/rfc822": { - "source": "iana", - "compressible": true, - "extensions": ["eml","mime"] - }, - "message/s-http": { - "source": "iana" - }, - "message/sip": { - "source": "iana" - }, - "message/sipfrag": { - "source": "iana" - }, - "message/tracking-status": { - "source": "iana" - }, - "message/vnd.si.simp": { - "source": "iana" - }, - "message/vnd.wfa.wsc": { - "source": "iana", - "extensions": ["wsc"] - }, - "model/3mf": { - "source": "iana", - "extensions": ["3mf"] - }, - "model/e57": { - "source": "iana" - }, - "model/gltf+json": { - "source": "iana", - "compressible": true, - "extensions": ["gltf"] - }, - "model/gltf-binary": { - "source": "iana", - "compressible": true, - "extensions": ["glb"] - }, - "model/iges": { - "source": "iana", - "compressible": false, - "extensions": ["igs","iges"] - }, - "model/mesh": { - "source": "iana", - "compressible": false, - "extensions": ["msh","mesh","silo"] - }, - "model/mtl": { - "source": "iana", - "extensions": ["mtl"] - }, - "model/obj": { - "source": "iana", - "extensions": ["obj"] - }, - "model/step": { - "source": "iana" - }, - "model/step+xml": { - "source": "iana", - "compressible": true, - "extensions": ["stpx"] - }, - "model/step+zip": { - "source": "iana", - "compressible": false, - "extensions": ["stpz"] - }, - "model/step-xml+zip": { - "source": "iana", - "compressible": false, - "extensions": ["stpxz"] - }, - "model/stl": { - "source": "iana", - "extensions": ["stl"] - }, - "model/vnd.collada+xml": { - "source": "iana", - "compressible": true, - "extensions": ["dae"] - }, - "model/vnd.dwf": { - "source": "iana", - "extensions": ["dwf"] - }, - "model/vnd.flatland.3dml": { - "source": "iana" - }, - "model/vnd.gdl": { - "source": "iana", - "extensions": ["gdl"] - }, - "model/vnd.gs-gdl": { - "source": "apache" - }, - "model/vnd.gs.gdl": { - "source": "iana" - }, - "model/vnd.gtw": { - "source": "iana", - "extensions": ["gtw"] - }, - "model/vnd.moml+xml": { - "source": "iana", - "compressible": true - }, - "model/vnd.mts": { - "source": "iana", - "extensions": ["mts"] - }, - "model/vnd.opengex": { - "source": "iana", - "extensions": ["ogex"] - }, - "model/vnd.parasolid.transmit.binary": { - "source": "iana", - "extensions": ["x_b"] - }, - "model/vnd.parasolid.transmit.text": { - "source": "iana", - "extensions": ["x_t"] - }, - "model/vnd.pytha.pyox": { - "source": "iana" - }, - "model/vnd.rosette.annotated-data-model": { - "source": "iana" - }, - "model/vnd.sap.vds": { - "source": "iana", - "extensions": ["vds"] - }, - "model/vnd.usdz+zip": { - "source": "iana", - "compressible": false, - "extensions": ["usdz"] - }, - "model/vnd.valve.source.compiled-map": { - "source": "iana", - "extensions": ["bsp"] - }, - "model/vnd.vtu": { - "source": "iana", - "extensions": ["vtu"] - }, - "model/vrml": { - "source": "iana", - "compressible": false, - "extensions": ["wrl","vrml"] - }, - "model/x3d+binary": { - "source": "apache", - "compressible": false, - "extensions": ["x3db","x3dbz"] - }, - "model/x3d+fastinfoset": { - "source": "iana", - "extensions": ["x3db"] - }, - "model/x3d+vrml": { - "source": "apache", - "compressible": false, - "extensions": ["x3dv","x3dvz"] - }, - "model/x3d+xml": { - "source": "iana", - "compressible": true, - "extensions": ["x3d","x3dz"] - }, - "model/x3d-vrml": { - "source": "iana", - "extensions": ["x3dv"] - }, - "multipart/alternative": { - "source": "iana", - "compressible": false - }, - "multipart/appledouble": { - "source": "iana" - }, - "multipart/byteranges": { - "source": "iana" - }, - "multipart/digest": { - "source": "iana" - }, - "multipart/encrypted": { - "source": "iana", - "compressible": false - }, - "multipart/form-data": { - "source": "iana", - "compressible": false - }, - "multipart/header-set": { - "source": "iana" - }, - "multipart/mixed": { - "source": "iana" - }, - "multipart/multilingual": { - "source": "iana" - }, - "multipart/parallel": { - "source": "iana" - }, - "multipart/related": { - "source": "iana", - "compressible": false - }, - "multipart/report": { - "source": "iana" - }, - "multipart/signed": { - "source": "iana", - "compressible": false - }, - "multipart/vnd.bint.med-plus": { - "source": "iana" - }, - "multipart/voice-message": { - "source": "iana" - }, - "multipart/x-mixed-replace": { - "source": "iana" - }, - "text/1d-interleaved-parityfec": { - "source": "iana" - }, - "text/cache-manifest": { - "source": "iana", - "compressible": true, - "extensions": ["appcache","manifest"] - }, - "text/calendar": { - "source": "iana", - "extensions": ["ics","ifb"] - }, - "text/calender": { - "compressible": true - }, - "text/cmd": { - "compressible": true - }, - "text/coffeescript": { - "extensions": ["coffee","litcoffee"] - }, - "text/cql": { - "source": "iana" - }, - "text/cql-expression": { - "source": "iana" - }, - "text/cql-identifier": { - "source": "iana" - }, - "text/css": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["css"] - }, - "text/csv": { - "source": "iana", - "compressible": true, - "extensions": ["csv"] - }, - "text/csv-schema": { - "source": "iana" - }, - "text/directory": { - "source": "iana" - }, - "text/dns": { - "source": "iana" - }, - "text/ecmascript": { - "source": "iana" - }, - "text/encaprtp": { - "source": "iana" - }, - "text/enriched": { - "source": "iana" - }, - "text/fhirpath": { - "source": "iana" - }, - "text/flexfec": { - "source": "iana" - }, - "text/fwdred": { - "source": "iana" - }, - "text/gff3": { - "source": "iana" - }, - "text/grammar-ref-list": { - "source": "iana" - }, - "text/html": { - "source": "iana", - "compressible": true, - "extensions": ["html","htm","shtml"] - }, - "text/jade": { - "extensions": ["jade"] - }, - "text/javascript": { - "source": "iana", - "compressible": true - }, - "text/jcr-cnd": { - "source": "iana" - }, - "text/jsx": { - "compressible": true, - "extensions": ["jsx"] - }, - "text/less": { - "compressible": true, - "extensions": ["less"] - }, - "text/markdown": { - "source": "iana", - "compressible": true, - "extensions": ["markdown","md"] - }, - "text/mathml": { - "source": "nginx", - "extensions": ["mml"] - }, - "text/mdx": { - "compressible": true, - "extensions": ["mdx"] - }, - "text/mizar": { - "source": "iana" - }, - "text/n3": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["n3"] - }, - "text/parameters": { - "source": "iana", - "charset": "UTF-8" - }, - "text/parityfec": { - "source": "iana" - }, - "text/plain": { - "source": "iana", - "compressible": true, - "extensions": ["txt","text","conf","def","list","log","in","ini"] - }, - "text/provenance-notation": { - "source": "iana", - "charset": "UTF-8" - }, - "text/prs.fallenstein.rst": { - "source": "iana" - }, - "text/prs.lines.tag": { - "source": "iana", - "extensions": ["dsc"] - }, - "text/prs.prop.logic": { - "source": "iana" - }, - "text/raptorfec": { - "source": "iana" - }, - "text/red": { - "source": "iana" - }, - "text/rfc822-headers": { - "source": "iana" - }, - "text/richtext": { - "source": "iana", - "compressible": true, - "extensions": ["rtx"] - }, - "text/rtf": { - "source": "iana", - "compressible": true, - "extensions": ["rtf"] - }, - "text/rtp-enc-aescm128": { - "source": "iana" - }, - "text/rtploopback": { - "source": "iana" - }, - "text/rtx": { - "source": "iana" - }, - "text/sgml": { - "source": "iana", - "extensions": ["sgml","sgm"] - }, - "text/shaclc": { - "source": "iana" - }, - "text/shex": { - "source": "iana", - "extensions": ["shex"] - }, - "text/slim": { - "extensions": ["slim","slm"] - }, - "text/spdx": { - "source": "iana", - "extensions": ["spdx"] - }, - "text/strings": { - "source": "iana" - }, - "text/stylus": { - "extensions": ["stylus","styl"] - }, - "text/t140": { - "source": "iana" - }, - "text/tab-separated-values": { - "source": "iana", - "compressible": true, - "extensions": ["tsv"] - }, - "text/troff": { - "source": "iana", - "extensions": ["t","tr","roff","man","me","ms"] - }, - "text/turtle": { - "source": "iana", - "charset": "UTF-8", - "extensions": ["ttl"] - }, - "text/ulpfec": { - "source": "iana" - }, - "text/uri-list": { - "source": "iana", - "compressible": true, - "extensions": ["uri","uris","urls"] - }, - "text/vcard": { - "source": "iana", - "compressible": true, - "extensions": ["vcard"] - }, - "text/vnd.a": { - "source": "iana" - }, - "text/vnd.abc": { - "source": "iana" - }, - "text/vnd.ascii-art": { - "source": "iana" - }, - "text/vnd.curl": { - "source": "iana", - "extensions": ["curl"] - }, - "text/vnd.curl.dcurl": { - "source": "apache", - "extensions": ["dcurl"] - }, - "text/vnd.curl.mcurl": { - "source": "apache", - "extensions": ["mcurl"] - }, - "text/vnd.curl.scurl": { - "source": "apache", - "extensions": ["scurl"] - }, - "text/vnd.debian.copyright": { - "source": "iana", - "charset": "UTF-8" - }, - "text/vnd.dmclientscript": { - "source": "iana" - }, - "text/vnd.dvb.subtitle": { - "source": "iana", - "extensions": ["sub"] - }, - "text/vnd.esmertec.theme-descriptor": { - "source": "iana", - "charset": "UTF-8" - }, - "text/vnd.familysearch.gedcom": { - "source": "iana", - "extensions": ["ged"] - }, - "text/vnd.ficlab.flt": { - "source": "iana" - }, - "text/vnd.fly": { - "source": "iana", - "extensions": ["fly"] - }, - "text/vnd.fmi.flexstor": { - "source": "iana", - "extensions": ["flx"] - }, - "text/vnd.gml": { - "source": "iana" - }, - "text/vnd.graphviz": { - "source": "iana", - "extensions": ["gv"] - }, - "text/vnd.hans": { - "source": "iana" - }, - "text/vnd.hgl": { - "source": "iana" - }, - "text/vnd.in3d.3dml": { - "source": "iana", - "extensions": ["3dml"] - }, - "text/vnd.in3d.spot": { - "source": "iana", - "extensions": ["spot"] - }, - "text/vnd.iptc.newsml": { - "source": "iana" - }, - "text/vnd.iptc.nitf": { - "source": "iana" - }, - "text/vnd.latex-z": { - "source": "iana" - }, - "text/vnd.motorola.reflex": { - "source": "iana" - }, - "text/vnd.ms-mediapackage": { - "source": "iana" - }, - "text/vnd.net2phone.commcenter.command": { - "source": "iana" - }, - "text/vnd.radisys.msml-basic-layout": { - "source": "iana" - }, - "text/vnd.senx.warpscript": { - "source": "iana" - }, - "text/vnd.si.uricatalogue": { - "source": "iana" - }, - "text/vnd.sosi": { - "source": "iana" - }, - "text/vnd.sun.j2me.app-descriptor": { - "source": "iana", - "charset": "UTF-8", - "extensions": ["jad"] - }, - "text/vnd.trolltech.linguist": { - "source": "iana", - "charset": "UTF-8" - }, - "text/vnd.wap.si": { - "source": "iana" - }, - "text/vnd.wap.sl": { - "source": "iana" - }, - "text/vnd.wap.wml": { - "source": "iana", - "extensions": ["wml"] - }, - "text/vnd.wap.wmlscript": { - "source": "iana", - "extensions": ["wmls"] - }, - "text/vtt": { - "source": "iana", - "charset": "UTF-8", - "compressible": true, - "extensions": ["vtt"] - }, - "text/x-asm": { - "source": "apache", - "extensions": ["s","asm"] - }, - "text/x-c": { - "source": "apache", - "extensions": ["c","cc","cxx","cpp","h","hh","dic"] - }, - "text/x-component": { - "source": "nginx", - "extensions": ["htc"] - }, - "text/x-fortran": { - "source": "apache", - "extensions": ["f","for","f77","f90"] - }, - "text/x-gwt-rpc": { - "compressible": true - }, - "text/x-handlebars-template": { - "extensions": ["hbs"] - }, - "text/x-java-source": { - "source": "apache", - "extensions": ["java"] - }, - "text/x-jquery-tmpl": { - "compressible": true - }, - "text/x-lua": { - "extensions": ["lua"] - }, - "text/x-markdown": { - "compressible": true, - "extensions": ["mkd"] - }, - "text/x-nfo": { - "source": "apache", - "extensions": ["nfo"] - }, - "text/x-opml": { - "source": "apache", - "extensions": ["opml"] - }, - "text/x-org": { - "compressible": true, - "extensions": ["org"] - }, - "text/x-pascal": { - "source": "apache", - "extensions": ["p","pas"] - }, - "text/x-processing": { - "compressible": true, - "extensions": ["pde"] - }, - "text/x-sass": { - "extensions": ["sass"] - }, - "text/x-scss": { - "extensions": ["scss"] - }, - "text/x-setext": { - "source": "apache", - "extensions": ["etx"] - }, - "text/x-sfv": { - "source": "apache", - "extensions": ["sfv"] - }, - "text/x-suse-ymp": { - "compressible": true, - "extensions": ["ymp"] - }, - "text/x-uuencode": { - "source": "apache", - "extensions": ["uu"] - }, - "text/x-vcalendar": { - "source": "apache", - "extensions": ["vcs"] - }, - "text/x-vcard": { - "source": "apache", - "extensions": ["vcf"] - }, - "text/xml": { - "source": "iana", - "compressible": true, - "extensions": ["xml"] - }, - "text/xml-external-parsed-entity": { - "source": "iana" - }, - "text/yaml": { - "compressible": true, - "extensions": ["yaml","yml"] - }, - "video/1d-interleaved-parityfec": { - "source": "iana" - }, - "video/3gpp": { - "source": "iana", - "extensions": ["3gp","3gpp"] - }, - "video/3gpp-tt": { - "source": "iana" - }, - "video/3gpp2": { - "source": "iana", - "extensions": ["3g2"] - }, - "video/av1": { - "source": "iana" - }, - "video/bmpeg": { - "source": "iana" - }, - "video/bt656": { - "source": "iana" - }, - "video/celb": { - "source": "iana" - }, - "video/dv": { - "source": "iana" - }, - "video/encaprtp": { - "source": "iana" - }, - "video/ffv1": { - "source": "iana" - }, - "video/flexfec": { - "source": "iana" - }, - "video/h261": { - "source": "iana", - "extensions": ["h261"] - }, - "video/h263": { - "source": "iana", - "extensions": ["h263"] - }, - "video/h263-1998": { - "source": "iana" - }, - "video/h263-2000": { - "source": "iana" - }, - "video/h264": { - "source": "iana", - "extensions": ["h264"] - }, - "video/h264-rcdo": { - "source": "iana" - }, - "video/h264-svc": { - "source": "iana" - }, - "video/h265": { - "source": "iana" - }, - "video/iso.segment": { - "source": "iana", - "extensions": ["m4s"] - }, - "video/jpeg": { - "source": "iana", - "extensions": ["jpgv"] - }, - "video/jpeg2000": { - "source": "iana" - }, - "video/jpm": { - "source": "apache", - "extensions": ["jpm","jpgm"] - }, - "video/jxsv": { - "source": "iana" - }, - "video/mj2": { - "source": "iana", - "extensions": ["mj2","mjp2"] - }, - "video/mp1s": { - "source": "iana" - }, - "video/mp2p": { - "source": "iana" - }, - "video/mp2t": { - "source": "iana", - "extensions": ["ts"] - }, - "video/mp4": { - "source": "iana", - "compressible": false, - "extensions": ["mp4","mp4v","mpg4"] - }, - "video/mp4v-es": { - "source": "iana" - }, - "video/mpeg": { - "source": "iana", - "compressible": false, - "extensions": ["mpeg","mpg","mpe","m1v","m2v"] - }, - "video/mpeg4-generic": { - "source": "iana" - }, - "video/mpv": { - "source": "iana" - }, - "video/nv": { - "source": "iana" - }, - "video/ogg": { - "source": "iana", - "compressible": false, - "extensions": ["ogv"] - }, - "video/parityfec": { - "source": "iana" - }, - "video/pointer": { - "source": "iana" - }, - "video/quicktime": { - "source": "iana", - "compressible": false, - "extensions": ["qt","mov"] - }, - "video/raptorfec": { - "source": "iana" - }, - "video/raw": { - "source": "iana" - }, - "video/rtp-enc-aescm128": { - "source": "iana" - }, - "video/rtploopback": { - "source": "iana" - }, - "video/rtx": { - "source": "iana" - }, - "video/scip": { - "source": "iana" - }, - "video/smpte291": { - "source": "iana" - }, - "video/smpte292m": { - "source": "iana" - }, - "video/ulpfec": { - "source": "iana" - }, - "video/vc1": { - "source": "iana" - }, - "video/vc2": { - "source": "iana" - }, - "video/vnd.cctv": { - "source": "iana" - }, - "video/vnd.dece.hd": { - "source": "iana", - "extensions": ["uvh","uvvh"] - }, - "video/vnd.dece.mobile": { - "source": "iana", - "extensions": ["uvm","uvvm"] - }, - "video/vnd.dece.mp4": { - "source": "iana" - }, - "video/vnd.dece.pd": { - "source": "iana", - "extensions": ["uvp","uvvp"] - }, - "video/vnd.dece.sd": { - "source": "iana", - "extensions": ["uvs","uvvs"] - }, - "video/vnd.dece.video": { - "source": "iana", - "extensions": ["uvv","uvvv"] - }, - "video/vnd.directv.mpeg": { - "source": "iana" - }, - "video/vnd.directv.mpeg-tts": { - "source": "iana" - }, - "video/vnd.dlna.mpeg-tts": { - "source": "iana" - }, - "video/vnd.dvb.file": { - "source": "iana", - "extensions": ["dvb"] - }, - "video/vnd.fvt": { - "source": "iana", - "extensions": ["fvt"] - }, - "video/vnd.hns.video": { - "source": "iana" - }, - "video/vnd.iptvforum.1dparityfec-1010": { - "source": "iana" - }, - "video/vnd.iptvforum.1dparityfec-2005": { - "source": "iana" - }, - "video/vnd.iptvforum.2dparityfec-1010": { - "source": "iana" - }, - "video/vnd.iptvforum.2dparityfec-2005": { - "source": "iana" - }, - "video/vnd.iptvforum.ttsavc": { - "source": "iana" - }, - "video/vnd.iptvforum.ttsmpeg2": { - "source": "iana" - }, - "video/vnd.motorola.video": { - "source": "iana" - }, - "video/vnd.motorola.videop": { - "source": "iana" - }, - "video/vnd.mpegurl": { - "source": "iana", - "extensions": ["mxu","m4u"] - }, - "video/vnd.ms-playready.media.pyv": { - "source": "iana", - "extensions": ["pyv"] - }, - "video/vnd.nokia.interleaved-multimedia": { - "source": "iana" - }, - "video/vnd.nokia.mp4vr": { - "source": "iana" - }, - "video/vnd.nokia.videovoip": { - "source": "iana" - }, - "video/vnd.objectvideo": { - "source": "iana" - }, - "video/vnd.radgamettools.bink": { - "source": "iana" - }, - "video/vnd.radgamettools.smacker": { - "source": "iana" - }, - "video/vnd.sealed.mpeg1": { - "source": "iana" - }, - "video/vnd.sealed.mpeg4": { - "source": "iana" - }, - "video/vnd.sealed.swf": { - "source": "iana" - }, - "video/vnd.sealedmedia.softseal.mov": { - "source": "iana" - }, - "video/vnd.uvvu.mp4": { - "source": "iana", - "extensions": ["uvu","uvvu"] - }, - "video/vnd.vivo": { - "source": "iana", - "extensions": ["viv"] - }, - "video/vnd.youtube.yt": { - "source": "iana" - }, - "video/vp8": { - "source": "iana" - }, - "video/vp9": { - "source": "iana" - }, - "video/webm": { - "source": "apache", - "compressible": false, - "extensions": ["webm"] - }, - "video/x-f4v": { - "source": "apache", - "extensions": ["f4v"] - }, - "video/x-fli": { - "source": "apache", - "extensions": ["fli"] - }, - "video/x-flv": { - "source": "apache", - "compressible": false, - "extensions": ["flv"] - }, - "video/x-m4v": { - "source": "apache", - "extensions": ["m4v"] - }, - "video/x-matroska": { - "source": "apache", - "compressible": false, - "extensions": ["mkv","mk3d","mks"] - }, - "video/x-mng": { - "source": "apache", - "extensions": ["mng"] - }, - "video/x-ms-asf": { - "source": "apache", - "extensions": ["asf","asx"] - }, - "video/x-ms-vob": { - "source": "apache", - "extensions": ["vob"] - }, - "video/x-ms-wm": { - "source": "apache", - "extensions": ["wm"] - }, - "video/x-ms-wmv": { - "source": "apache", - "compressible": false, - "extensions": ["wmv"] - }, - "video/x-ms-wmx": { - "source": "apache", - "extensions": ["wmx"] - }, - "video/x-ms-wvx": { - "source": "apache", - "extensions": ["wvx"] - }, - "video/x-msvideo": { - "source": "apache", - "extensions": ["avi"] - }, - "video/x-sgi-movie": { - "source": "apache", - "extensions": ["movie"] - }, - "video/x-smv": { - "source": "apache", - "extensions": ["smv"] - }, - "x-conference/x-cooltalk": { - "source": "apache", - "extensions": ["ice"] - }, - "x-shader/x-fragment": { - "compressible": true - }, - "x-shader/x-vertex": { - "compressible": true - } -} - -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322126); -})() -//miniprogram-npm-outsideDeps=[] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/mime-db/index.js.map b/government-mini-program/miniprogram_npm/mime-db/index.js.map deleted file mode 100644 index 7f9d2fb..0000000 --- a/government-mini-program/miniprogram_npm/mime-db/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js","db.json"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;ACFA,ADGA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","module.exports = {\n \"application/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"application/3gpdash-qoe-report+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/3gpp-ims+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphalforms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/a2l\": {\n \"source\": \"iana\"\n },\n \"application/ace+cbor\": {\n \"source\": \"iana\"\n },\n \"application/activemessage\": {\n \"source\": \"iana\"\n },\n \"application/activity+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-directory+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcost+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcostparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointprop+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointpropparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-error+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamcontrol+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/aml\": {\n \"source\": \"iana\"\n },\n \"application/andrew-inset\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez\"]\n },\n \"application/applefile\": {\n \"source\": \"iana\"\n },\n \"application/applixware\": {\n \"source\": \"apache\",\n \"extensions\": [\"aw\"]\n },\n \"application/at+jwt\": {\n \"source\": \"iana\"\n },\n \"application/atf\": {\n \"source\": \"iana\"\n },\n \"application/atfx\": {\n \"source\": \"iana\"\n },\n \"application/atom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atom\"]\n },\n \"application/atomcat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomcat\"]\n },\n \"application/atomdeleted+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomdeleted\"]\n },\n \"application/atomicmail\": {\n \"source\": \"iana\"\n },\n \"application/atomsvc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomsvc\"]\n },\n \"application/atsc-dwd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dwd\"]\n },\n \"application/atsc-dynamic-event-message\": {\n \"source\": \"iana\"\n },\n \"application/atsc-held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"held\"]\n },\n \"application/atsc-rdt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/atsc-rsat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsat\"]\n },\n \"application/atxml\": {\n \"source\": \"iana\"\n },\n \"application/auth-policy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/bacnet-xdd+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/batch-smtp\": {\n \"source\": \"iana\"\n },\n \"application/bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/beep+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/calendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/calendar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xcs\"]\n },\n \"application/call-completion\": {\n \"source\": \"iana\"\n },\n \"application/cals-1840\": {\n \"source\": \"iana\"\n },\n \"application/captive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cbor\": {\n \"source\": \"iana\"\n },\n \"application/cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/cccex\": {\n \"source\": \"iana\"\n },\n \"application/ccmp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ccxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ccxml\"]\n },\n \"application/cdfx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdfx\"]\n },\n \"application/cdmi-capability\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmia\"]\n },\n \"application/cdmi-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmic\"]\n },\n \"application/cdmi-domain\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmid\"]\n },\n \"application/cdmi-object\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmio\"]\n },\n \"application/cdmi-queue\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmiq\"]\n },\n \"application/cdni\": {\n \"source\": \"iana\"\n },\n \"application/cea\": {\n \"source\": \"iana\"\n },\n \"application/cea-2018+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cellml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cfw\": {\n \"source\": \"iana\"\n },\n \"application/city+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clr\": {\n \"source\": \"iana\"\n },\n \"application/clue+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clue_info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cms\": {\n \"source\": \"iana\"\n },\n \"application/cnrp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-group+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-payload\": {\n \"source\": \"iana\"\n },\n \"application/commonground\": {\n \"source\": \"iana\"\n },\n \"application/conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cose\": {\n \"source\": \"iana\"\n },\n \"application/cose-key\": {\n \"source\": \"iana\"\n },\n \"application/cose-key-set\": {\n \"source\": \"iana\"\n },\n \"application/cpl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cpl\"]\n },\n \"application/csrattrs\": {\n \"source\": \"iana\"\n },\n \"application/csta+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cstadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/csvm+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cu-seeme\": {\n \"source\": \"apache\",\n \"extensions\": [\"cu\"]\n },\n \"application/cwt\": {\n \"source\": \"iana\"\n },\n \"application/cybercash\": {\n \"source\": \"iana\"\n },\n \"application/dart\": {\n \"compressible\": true\n },\n \"application/dash+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpd\"]\n },\n \"application/dash-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpp\"]\n },\n \"application/dashdelta\": {\n \"source\": \"iana\"\n },\n \"application/davmount+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"davmount\"]\n },\n \"application/dca-rft\": {\n \"source\": \"iana\"\n },\n \"application/dcd\": {\n \"source\": \"iana\"\n },\n \"application/dec-dx\": {\n \"source\": \"iana\"\n },\n \"application/dialog-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom\": {\n \"source\": \"iana\"\n },\n \"application/dicom+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dii\": {\n \"source\": \"iana\"\n },\n \"application/dit\": {\n \"source\": \"iana\"\n },\n \"application/dns\": {\n \"source\": \"iana\"\n },\n \"application/dns+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dns-message\": {\n \"source\": \"iana\"\n },\n \"application/docbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dbk\"]\n },\n \"application/dots+cbor\": {\n \"source\": \"iana\"\n },\n \"application/dskpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dssc+der\": {\n \"source\": \"iana\",\n \"extensions\": [\"dssc\"]\n },\n \"application/dssc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdssc\"]\n },\n \"application/dvcs\": {\n \"source\": \"iana\"\n },\n \"application/ecmascript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es\",\"ecma\"]\n },\n \"application/edi-consent\": {\n \"source\": \"iana\"\n },\n \"application/edi-x12\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/edifact\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/efi\": {\n \"source\": \"iana\"\n },\n \"application/elm+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/elm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.cap+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/emergencycalldata.comment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.deviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.ecall.msd\": {\n \"source\": \"iana\"\n },\n \"application/emergencycalldata.providerinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.serviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.subscriberinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.veds+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emma+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emma\"]\n },\n \"application/emotionml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emotionml\"]\n },\n \"application/encaprtp\": {\n \"source\": \"iana\"\n },\n \"application/epp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/epub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"epub\"]\n },\n \"application/eshop\": {\n \"source\": \"iana\"\n },\n \"application/exi\": {\n \"source\": \"iana\",\n \"extensions\": [\"exi\"]\n },\n \"application/expect-ct-report+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/express\": {\n \"source\": \"iana\",\n \"extensions\": [\"exp\"]\n },\n \"application/fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/fastsoap\": {\n \"source\": \"iana\"\n },\n \"application/fdt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fdt\"]\n },\n \"application/fhir+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fhir+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fido.trusted-apps+json\": {\n \"compressible\": true\n },\n \"application/fits\": {\n \"source\": \"iana\"\n },\n \"application/flexfec\": {\n \"source\": \"iana\"\n },\n \"application/font-sfnt\": {\n \"source\": \"iana\"\n },\n \"application/font-tdpfr\": {\n \"source\": \"iana\",\n \"extensions\": [\"pfr\"]\n },\n \"application/font-woff\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/framework-attributes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"geojson\"]\n },\n \"application/geo+json-seq\": {\n \"source\": \"iana\"\n },\n \"application/geopackage+sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/geoxacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/gltf-buffer\": {\n \"source\": \"iana\"\n },\n \"application/gml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gml\"]\n },\n \"application/gpx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"gpx\"]\n },\n \"application/gxf\": {\n \"source\": \"apache\",\n \"extensions\": [\"gxf\"]\n },\n \"application/gzip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gz\"]\n },\n \"application/h224\": {\n \"source\": \"iana\"\n },\n \"application/held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/hjson\": {\n \"extensions\": [\"hjson\"]\n },\n \"application/http\": {\n \"source\": \"iana\"\n },\n \"application/hyperstudio\": {\n \"source\": \"iana\",\n \"extensions\": [\"stk\"]\n },\n \"application/ibe-key-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pkg-reply+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pp-data\": {\n \"source\": \"iana\"\n },\n \"application/iges\": {\n \"source\": \"iana\"\n },\n \"application/im-iscomposing+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/index\": {\n \"source\": \"iana\"\n },\n \"application/index.cmd\": {\n \"source\": \"iana\"\n },\n \"application/index.obj\": {\n \"source\": \"iana\"\n },\n \"application/index.response\": {\n \"source\": \"iana\"\n },\n \"application/index.vnd\": {\n \"source\": \"iana\"\n },\n \"application/inkml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ink\",\"inkml\"]\n },\n \"application/iotp\": {\n \"source\": \"iana\"\n },\n \"application/ipfix\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipfix\"]\n },\n \"application/ipp\": {\n \"source\": \"iana\"\n },\n \"application/isup\": {\n \"source\": \"iana\"\n },\n \"application/its+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"its\"]\n },\n \"application/java-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jar\",\"war\",\"ear\"]\n },\n \"application/java-serialized-object\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"ser\"]\n },\n \"application/java-vm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"class\"]\n },\n \"application/javascript\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"js\",\"mjs\"]\n },\n \"application/jf2feed+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jose\": {\n \"source\": \"iana\"\n },\n \"application/jose+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jrd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jscalendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"json\",\"map\"]\n },\n \"application/json-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json-seq\": {\n \"source\": \"iana\"\n },\n \"application/json5\": {\n \"extensions\": [\"json5\"]\n },\n \"application/jsonml+json\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"jsonml\"]\n },\n \"application/jwk+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwk-set+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwt\": {\n \"source\": \"iana\"\n },\n \"application/kpml-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/kpml-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ld+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"jsonld\"]\n },\n \"application/lgr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lgr\"]\n },\n \"application/link-format\": {\n \"source\": \"iana\"\n },\n \"application/load-control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lost+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lostxml\"]\n },\n \"application/lostsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lpf+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/lxf\": {\n \"source\": \"iana\"\n },\n \"application/mac-binhex40\": {\n \"source\": \"iana\",\n \"extensions\": [\"hqx\"]\n },\n \"application/mac-compactpro\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpt\"]\n },\n \"application/macwriteii\": {\n \"source\": \"iana\"\n },\n \"application/mads+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mads\"]\n },\n \"application/manifest+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"webmanifest\"]\n },\n \"application/marc\": {\n \"source\": \"iana\",\n \"extensions\": [\"mrc\"]\n },\n \"application/marcxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mrcx\"]\n },\n \"application/mathematica\": {\n \"source\": \"iana\",\n \"extensions\": [\"ma\",\"nb\",\"mb\"]\n },\n \"application/mathml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mathml\"]\n },\n \"application/mathml-content+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mathml-presentation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-associated-procedure-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-deregister+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-envelope+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-protection-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-reception-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-schedule+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-user-service-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbox\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbox\"]\n },\n \"application/media-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpf\"]\n },\n \"application/media_control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mediaservercontrol+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mscml\"]\n },\n \"application/merge-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/metalink+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"metalink\"]\n },\n \"application/metalink4+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"meta4\"]\n },\n \"application/mets+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mets\"]\n },\n \"application/mf4\": {\n \"source\": \"iana\"\n },\n \"application/mikey\": {\n \"source\": \"iana\"\n },\n \"application/mipc\": {\n \"source\": \"iana\"\n },\n \"application/missing-blocks+cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/mmt-aei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"maei\"]\n },\n \"application/mmt-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musd\"]\n },\n \"application/mods+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mods\"]\n },\n \"application/moss-keys\": {\n \"source\": \"iana\"\n },\n \"application/moss-signature\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-data\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-request\": {\n \"source\": \"iana\"\n },\n \"application/mp21\": {\n \"source\": \"iana\",\n \"extensions\": [\"m21\",\"mp21\"]\n },\n \"application/mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"mp4s\",\"m4p\"]\n },\n \"application/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod-xmt\": {\n \"source\": \"iana\"\n },\n \"application/mrb-consumer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mrb-publish+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/msc-ivr+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msc-mixer+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msword\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"doc\",\"dot\"]\n },\n \"application/mud+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/multipart-core\": {\n \"source\": \"iana\"\n },\n \"application/mxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxf\"]\n },\n \"application/n-quads\": {\n \"source\": \"iana\",\n \"extensions\": [\"nq\"]\n },\n \"application/n-triples\": {\n \"source\": \"iana\",\n \"extensions\": [\"nt\"]\n },\n \"application/nasdata\": {\n \"source\": \"iana\"\n },\n \"application/news-checkgroups\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-groupinfo\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-transmission\": {\n \"source\": \"iana\"\n },\n \"application/nlsml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/node\": {\n \"source\": \"iana\",\n \"extensions\": [\"cjs\"]\n },\n \"application/nss\": {\n \"source\": \"iana\"\n },\n \"application/oauth-authz-req+jwt\": {\n \"source\": \"iana\"\n },\n \"application/oblivious-dns-message\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-request\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-response\": {\n \"source\": \"iana\"\n },\n \"application/octet-stream\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]\n },\n \"application/oda\": {\n \"source\": \"iana\",\n \"extensions\": [\"oda\"]\n },\n \"application/odm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/odx\": {\n \"source\": \"iana\"\n },\n \"application/oebps-package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"opf\"]\n },\n \"application/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogx\"]\n },\n \"application/omdoc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"omdoc\"]\n },\n \"application/onenote\": {\n \"source\": \"apache\",\n \"extensions\": [\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"]\n },\n \"application/opc-nodeset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/oscore\": {\n \"source\": \"iana\"\n },\n \"application/oxps\": {\n \"source\": \"iana\",\n \"extensions\": [\"oxps\"]\n },\n \"application/p21\": {\n \"source\": \"iana\"\n },\n \"application/p21+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/p2p-overlay+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"relo\"]\n },\n \"application/parityfec\": {\n \"source\": \"iana\"\n },\n \"application/passport\": {\n \"source\": \"iana\"\n },\n \"application/patch-ops-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xer\"]\n },\n \"application/pdf\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pdf\"]\n },\n \"application/pdx\": {\n \"source\": \"iana\"\n },\n \"application/pem-certificate-chain\": {\n \"source\": \"iana\"\n },\n \"application/pgp-encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pgp\"]\n },\n \"application/pgp-keys\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\"]\n },\n \"application/pgp-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\",\"sig\"]\n },\n \"application/pics-rules\": {\n \"source\": \"apache\",\n \"extensions\": [\"prf\"]\n },\n \"application/pidf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pidf-diff+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pkcs10\": {\n \"source\": \"iana\",\n \"extensions\": [\"p10\"]\n },\n \"application/pkcs12\": {\n \"source\": \"iana\"\n },\n \"application/pkcs7-mime\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7m\",\"p7c\"]\n },\n \"application/pkcs7-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7s\"]\n },\n \"application/pkcs8\": {\n \"source\": \"iana\",\n \"extensions\": [\"p8\"]\n },\n \"application/pkcs8-encrypted\": {\n \"source\": \"iana\"\n },\n \"application/pkix-attr-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"ac\"]\n },\n \"application/pkix-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"cer\"]\n },\n \"application/pkix-crl\": {\n \"source\": \"iana\",\n \"extensions\": [\"crl\"]\n },\n \"application/pkix-pkipath\": {\n \"source\": \"iana\",\n \"extensions\": [\"pkipath\"]\n },\n \"application/pkixcmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"pki\"]\n },\n \"application/pls+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pls\"]\n },\n \"application/poc-settings+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/postscript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ai\",\"eps\",\"ps\"]\n },\n \"application/ppsp-tracker+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/provenance+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"provx\"]\n },\n \"application/prs.alvestrand.titrax-sheet\": {\n \"source\": \"iana\"\n },\n \"application/prs.cww\": {\n \"source\": \"iana\",\n \"extensions\": [\"cww\"]\n },\n \"application/prs.cyn\": {\n \"source\": \"iana\",\n \"charset\": \"7-BIT\"\n },\n \"application/prs.hpub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/prs.nprend\": {\n \"source\": \"iana\"\n },\n \"application/prs.plucker\": {\n \"source\": \"iana\"\n },\n \"application/prs.rdf-xml-crypt\": {\n \"source\": \"iana\"\n },\n \"application/prs.xsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/pskc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pskcxml\"]\n },\n \"application/pvd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/qsig\": {\n \"source\": \"iana\"\n },\n \"application/raml+yaml\": {\n \"compressible\": true,\n \"extensions\": [\"raml\"]\n },\n \"application/raptorfec\": {\n \"source\": \"iana\"\n },\n \"application/rdap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rdf\",\"owl\"]\n },\n \"application/reginfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rif\"]\n },\n \"application/relax-ng-compact-syntax\": {\n \"source\": \"iana\",\n \"extensions\": [\"rnc\"]\n },\n \"application/remote-printing\": {\n \"source\": \"iana\"\n },\n \"application/reputon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/resource-lists+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rl\"]\n },\n \"application/resource-lists-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rld\"]\n },\n \"application/rfc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/riscos\": {\n \"source\": \"iana\"\n },\n \"application/rlmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rls-services+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rs\"]\n },\n \"application/route-apd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rapd\"]\n },\n \"application/route-s-tsid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sls\"]\n },\n \"application/route-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rusd\"]\n },\n \"application/rpki-ghostbusters\": {\n \"source\": \"iana\",\n \"extensions\": [\"gbr\"]\n },\n \"application/rpki-manifest\": {\n \"source\": \"iana\",\n \"extensions\": [\"mft\"]\n },\n \"application/rpki-publication\": {\n \"source\": \"iana\"\n },\n \"application/rpki-roa\": {\n \"source\": \"iana\",\n \"extensions\": [\"roa\"]\n },\n \"application/rpki-updown\": {\n \"source\": \"iana\"\n },\n \"application/rsd+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rsd\"]\n },\n \"application/rss+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rss\"]\n },\n \"application/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"application/rtploopback\": {\n \"source\": \"iana\"\n },\n \"application/rtx\": {\n \"source\": \"iana\"\n },\n \"application/samlassertion+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/samlmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif-external-properties+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sbe\": {\n \"source\": \"iana\"\n },\n \"application/sbml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sbml\"]\n },\n \"application/scaip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scim+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scvp-cv-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"scq\"]\n },\n \"application/scvp-cv-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"scs\"]\n },\n \"application/scvp-vp-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"spq\"]\n },\n \"application/scvp-vp-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"spp\"]\n },\n \"application/sdp\": {\n \"source\": \"iana\",\n \"extensions\": [\"sdp\"]\n },\n \"application/secevent+jwt\": {\n \"source\": \"iana\"\n },\n \"application/senml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"senmlx\"]\n },\n \"application/senml-etch+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml-etch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sensml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/sensml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sensml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sensmlx\"]\n },\n \"application/sensml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sep+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sep-exi\": {\n \"source\": \"iana\"\n },\n \"application/session-info\": {\n \"source\": \"iana\"\n },\n \"application/set-payment\": {\n \"source\": \"iana\"\n },\n \"application/set-payment-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setpay\"]\n },\n \"application/set-registration\": {\n \"source\": \"iana\"\n },\n \"application/set-registration-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setreg\"]\n },\n \"application/sgml\": {\n \"source\": \"iana\"\n },\n \"application/sgml-open-catalog\": {\n \"source\": \"iana\"\n },\n \"application/shf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"shf\"]\n },\n \"application/sieve\": {\n \"source\": \"iana\",\n \"extensions\": [\"siv\",\"sieve\"]\n },\n \"application/simple-filter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/simple-message-summary\": {\n \"source\": \"iana\"\n },\n \"application/simplesymbolcontainer\": {\n \"source\": \"iana\"\n },\n \"application/sipc\": {\n \"source\": \"iana\"\n },\n \"application/slate\": {\n \"source\": \"iana\"\n },\n \"application/smil\": {\n \"source\": \"iana\"\n },\n \"application/smil+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"smi\",\"smil\"]\n },\n \"application/smpte336m\": {\n \"source\": \"iana\"\n },\n \"application/soap+fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/soap+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sparql-query\": {\n \"source\": \"iana\",\n \"extensions\": [\"rq\"]\n },\n \"application/sparql-results+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"srx\"]\n },\n \"application/spdx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/spirits-event+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sql\": {\n \"source\": \"iana\"\n },\n \"application/srgs\": {\n \"source\": \"iana\",\n \"extensions\": [\"gram\"]\n },\n \"application/srgs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"grxml\"]\n },\n \"application/sru+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sru\"]\n },\n \"application/ssdl+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ssdl\"]\n },\n \"application/ssml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ssml\"]\n },\n \"application/stix+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/swid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"swidtag\"]\n },\n \"application/tamp-apex-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-apex-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-error\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-query\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-response\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tar\": {\n \"compressible\": true\n },\n \"application/taxii+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/td+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tei\",\"teicorpus\"]\n },\n \"application/tetra_isi\": {\n \"source\": \"iana\"\n },\n \"application/thraud+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tfi\"]\n },\n \"application/timestamp-query\": {\n \"source\": \"iana\"\n },\n \"application/timestamp-reply\": {\n \"source\": \"iana\"\n },\n \"application/timestamped-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"tsd\"]\n },\n \"application/tlsrpt+gzip\": {\n \"source\": \"iana\"\n },\n \"application/tlsrpt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tnauthlist\": {\n \"source\": \"iana\"\n },\n \"application/token-introspection+jwt\": {\n \"source\": \"iana\"\n },\n \"application/toml\": {\n \"compressible\": true,\n \"extensions\": [\"toml\"]\n },\n \"application/trickle-ice-sdpfrag\": {\n \"source\": \"iana\"\n },\n \"application/trig\": {\n \"source\": \"iana\",\n \"extensions\": [\"trig\"]\n },\n \"application/ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttml\"]\n },\n \"application/tve-trigger\": {\n \"source\": \"iana\"\n },\n \"application/tzif\": {\n \"source\": \"iana\"\n },\n \"application/tzif-leap\": {\n \"source\": \"iana\"\n },\n \"application/ubjson\": {\n \"compressible\": false,\n \"extensions\": [\"ubj\"]\n },\n \"application/ulpfec\": {\n \"source\": \"iana\"\n },\n \"application/urc-grpsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/urc-ressheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsheet\"]\n },\n \"application/urc-targetdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"td\"]\n },\n \"application/urc-uisocketdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vemmi\": {\n \"source\": \"iana\"\n },\n \"application/vividence.scriptfile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.1000minds.decision-model+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"1km\"]\n },\n \"application/vnd.3gpp-prose+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-prose-pc3ch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-v2x-local-service-information\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.5gnas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.access-transfer-events+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.bsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gmop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gtpc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.interworking-data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.lpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mc-signalling-ear\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-payload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-signalling\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-floor-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-signed+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-init-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-transmission-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mid-call+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ngap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pfcp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pic-bw-large\": {\n \"source\": \"iana\",\n \"extensions\": [\"plb\"]\n },\n \"application/vnd.3gpp.pic-bw-small\": {\n \"source\": \"iana\",\n \"extensions\": [\"psb\"]\n },\n \"application/vnd.3gpp.pic-bw-var\": {\n \"source\": \"iana\",\n \"extensions\": [\"pvb\"]\n },\n \"application/vnd.3gpp.s1ap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-ext+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.state-and-event-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ussd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.bcmcsinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp2.tcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tcap\"]\n },\n \"application/vnd.3lightssoftware.imagescal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3m.post-it-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"pwn\"]\n },\n \"application/vnd.accpac.simply.aso\": {\n \"source\": \"iana\",\n \"extensions\": [\"aso\"]\n },\n \"application/vnd.accpac.simply.imp\": {\n \"source\": \"iana\",\n \"extensions\": [\"imp\"]\n },\n \"application/vnd.acucobol\": {\n \"source\": \"iana\",\n \"extensions\": [\"acu\"]\n },\n \"application/vnd.acucorp\": {\n \"source\": \"iana\",\n \"extensions\": [\"atc\",\"acutc\"]\n },\n \"application/vnd.adobe.air-application-installer-package+zip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"air\"]\n },\n \"application/vnd.adobe.flash.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.formscentral.fcdt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcdt\"]\n },\n \"application/vnd.adobe.fxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fxp\",\"fxpl\"]\n },\n \"application/vnd.adobe.partial-upload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.xdp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdp\"]\n },\n \"application/vnd.adobe.xfdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdf\"]\n },\n \"application/vnd.aether.imp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata-pagedef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.cmoca-cmresource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-charset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codedfont\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codepage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-cmtable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-formdef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-mediummap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-objectcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-overlay\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-pagesegment\": {\n \"source\": \"iana\"\n },\n \"application/vnd.age\": {\n \"source\": \"iana\",\n \"extensions\": [\"age\"]\n },\n \"application/vnd.ah-barcode\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ahead.space\": {\n \"source\": \"iana\",\n \"extensions\": [\"ahead\"]\n },\n \"application/vnd.airzip.filesecure.azf\": {\n \"source\": \"iana\",\n \"extensions\": [\"azf\"]\n },\n \"application/vnd.airzip.filesecure.azs\": {\n \"source\": \"iana\",\n \"extensions\": [\"azs\"]\n },\n \"application/vnd.amadeus+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.amazon.ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"azw\"]\n },\n \"application/vnd.amazon.mobi8-ebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.americandynamics.acc\": {\n \"source\": \"iana\",\n \"extensions\": [\"acc\"]\n },\n \"application/vnd.amiga.ami\": {\n \"source\": \"iana\",\n \"extensions\": [\"ami\"]\n },\n \"application/vnd.amundsen.maze+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.android.ota\": {\n \"source\": \"iana\"\n },\n \"application/vnd.android.package-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"apk\"]\n },\n \"application/vnd.anki\": {\n \"source\": \"iana\"\n },\n \"application/vnd.anser-web-certificate-issue-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"cii\"]\n },\n \"application/vnd.anser-web-funds-transfer-initiation\": {\n \"source\": \"apache\",\n \"extensions\": [\"fti\"]\n },\n \"application/vnd.antix.game-component\": {\n \"source\": \"iana\",\n \"extensions\": [\"atx\"]\n },\n \"application/vnd.apache.arrow.file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.arrow.stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.compact\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.json\": {\n \"source\": \"iana\"\n },\n \"application/vnd.api+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.aplextor.warrp+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apothekende.reservation+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apple.installer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpkg\"]\n },\n \"application/vnd.apple.keynote\": {\n \"source\": \"iana\",\n \"extensions\": [\"key\"]\n },\n \"application/vnd.apple.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"m3u8\"]\n },\n \"application/vnd.apple.numbers\": {\n \"source\": \"iana\",\n \"extensions\": [\"numbers\"]\n },\n \"application/vnd.apple.pages\": {\n \"source\": \"iana\",\n \"extensions\": [\"pages\"]\n },\n \"application/vnd.apple.pkpass\": {\n \"compressible\": false,\n \"extensions\": [\"pkpass\"]\n },\n \"application/vnd.arastra.swi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.aristanetworks.swi\": {\n \"source\": \"iana\",\n \"extensions\": [\"swi\"]\n },\n \"application/vnd.artisan+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.artsquare\": {\n \"source\": \"iana\"\n },\n \"application/vnd.astraea-software.iota\": {\n \"source\": \"iana\",\n \"extensions\": [\"iota\"]\n },\n \"application/vnd.audiograph\": {\n \"source\": \"iana\",\n \"extensions\": [\"aep\"]\n },\n \"application/vnd.autopackage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.avalon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.avistar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.balsamiq.bmml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmml\"]\n },\n \"application/vnd.balsamiq.bmpr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.banana-accounting\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.error\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bekitzur-stech+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bint.med-content\": {\n \"source\": \"iana\"\n },\n \"application/vnd.biopax.rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.blink-idb-value-wrapper\": {\n \"source\": \"iana\"\n },\n \"application/vnd.blueice.multipass\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpm\"]\n },\n \"application/vnd.bluetooth.ep.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bluetooth.le.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bmi\": {\n \"source\": \"iana\",\n \"extensions\": [\"bmi\"]\n },\n \"application/vnd.bpf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bpf3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.businessobjects\": {\n \"source\": \"iana\",\n \"extensions\": [\"rep\"]\n },\n \"application/vnd.byu.uapi+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cab-jscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-cpdl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-lips\": {\n \"source\": \"iana\"\n },\n \"application/vnd.capasystems-pg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cendio.thinlinc.clientconf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.century-systems.tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chemdraw+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdxml\"]\n },\n \"application/vnd.chess-pgn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chipnuts.karaoke-mmd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmd\"]\n },\n \"application/vnd.ciedi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cinderella\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdy\"]\n },\n \"application/vnd.cirpack.isdn-ext\": {\n \"source\": \"iana\"\n },\n \"application/vnd.citationstyles.style+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csl\"]\n },\n \"application/vnd.claymore\": {\n \"source\": \"iana\",\n \"extensions\": [\"cla\"]\n },\n \"application/vnd.cloanto.rp9\": {\n \"source\": \"iana\",\n \"extensions\": [\"rp9\"]\n },\n \"application/vnd.clonk.c4group\": {\n \"source\": \"iana\",\n \"extensions\": [\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]\n },\n \"application/vnd.cluetrust.cartomobile-config\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amc\"]\n },\n \"application/vnd.cluetrust.cartomobile-config-pkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amz\"]\n },\n \"application/vnd.coffeescript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collection+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.doc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.next+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.comicbook+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.comicbook-rar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commerce-battelle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commonspace\": {\n \"source\": \"iana\",\n \"extensions\": [\"csp\"]\n },\n \"application/vnd.contact.cmsg\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdbcmsg\"]\n },\n \"application/vnd.coreos.ignition+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cosmocaller\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmc\"]\n },\n \"application/vnd.crick.clicker\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkx\"]\n },\n \"application/vnd.crick.clicker.keyboard\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkk\"]\n },\n \"application/vnd.crick.clicker.palette\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkp\"]\n },\n \"application/vnd.crick.clicker.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkt\"]\n },\n \"application/vnd.crick.clicker.wordbank\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkw\"]\n },\n \"application/vnd.criticaltools.wbs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wbs\"]\n },\n \"application/vnd.cryptii.pipe+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.crypto-shade-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.vault\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ctc-posml\": {\n \"source\": \"iana\",\n \"extensions\": [\"pml\"]\n },\n \"application/vnd.ctct.ws+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cups-pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-postscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-ppd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppd\"]\n },\n \"application/vnd.cups-raster\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-raw\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl.car\": {\n \"source\": \"apache\",\n \"extensions\": [\"car\"]\n },\n \"application/vnd.curl.pcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcurl\"]\n },\n \"application/vnd.cyan.dean.root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cybank\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cyclonedx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cyclonedx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.d2l.coursepackage1p0+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.d3m-dataset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.d3m-problem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dart\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dart\"]\n },\n \"application/vnd.data-vision.rdz\": {\n \"source\": \"iana\",\n \"extensions\": [\"rdz\"]\n },\n \"application/vnd.datapackage+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dataresource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dbf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dbf\"]\n },\n \"application/vnd.debian.binary-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dece.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]\n },\n \"application/vnd.dece.ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uvt\",\"uvvt\"]\n },\n \"application/vnd.dece.unspecified\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvx\",\"uvvx\"]\n },\n \"application/vnd.dece.zip\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvz\",\"uvvz\"]\n },\n \"application/vnd.denovo.fcselayout-link\": {\n \"source\": \"iana\",\n \"extensions\": [\"fe_launch\"]\n },\n \"application/vnd.desmume.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dir-bi.plate-dl-nosuffix\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dm.delegation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dna\": {\n \"source\": \"iana\",\n \"extensions\": [\"dna\"]\n },\n \"application/vnd.document+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dolby.mlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"mlp\"]\n },\n \"application/vnd.dolby.mobile.1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dolby.mobile.2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.doremir.scorecloud-binary-document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dpgraph\": {\n \"source\": \"iana\",\n \"extensions\": [\"dpg\"]\n },\n \"application/vnd.dreamfactory\": {\n \"source\": \"iana\",\n \"extensions\": [\"dfac\"]\n },\n \"application/vnd.drive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ds-keypoint\": {\n \"source\": \"apache\",\n \"extensions\": [\"kpxx\"]\n },\n \"application/vnd.dtg.local\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.flash\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ait\": {\n \"source\": \"iana\",\n \"extensions\": [\"ait\"]\n },\n \"application/vnd.dvb.dvbisl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.dvbj\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.esgcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcdftnotifaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgpdd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcroaming\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-base\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-enhancement\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.notif-aggregate-root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-container+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-generic+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-msglist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-init+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.pfr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.service\": {\n \"source\": \"iana\",\n \"extensions\": [\"svc\"]\n },\n \"application/vnd.dxr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dynageo\": {\n \"source\": \"iana\",\n \"extensions\": [\"geo\"]\n },\n \"application/vnd.dzr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.easykaraoke.cdgdownload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecdis-update\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecip.rlp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eclipse.ditto+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ecowin.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"mag\"]\n },\n \"application/vnd.ecowin.filerequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.fileupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.series\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesrequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.img\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.iso\": {\n \"source\": \"iana\"\n },\n \"application/vnd.emclient.accessrequest+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.enliven\": {\n \"source\": \"iana\",\n \"extensions\": [\"nml\"]\n },\n \"application/vnd.enphase.envoy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eprints.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.epson.esf\": {\n \"source\": \"iana\",\n \"extensions\": [\"esf\"]\n },\n \"application/vnd.epson.msf\": {\n \"source\": \"iana\",\n \"extensions\": [\"msf\"]\n },\n \"application/vnd.epson.quickanime\": {\n \"source\": \"iana\",\n \"extensions\": [\"qam\"]\n },\n \"application/vnd.epson.salt\": {\n \"source\": \"iana\",\n \"extensions\": [\"slt\"]\n },\n \"application/vnd.epson.ssf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ssf\"]\n },\n \"application/vnd.ericsson.quickcall\": {\n \"source\": \"iana\"\n },\n \"application/vnd.espass-espass+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.eszigno3+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es3\",\"et3\"]\n },\n \"application/vnd.etsi.aoc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.asic-e+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.asic-s+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.cug+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvcommand+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-bc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-cod+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-npvr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvservice+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mcid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mheg5\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.overload-control-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.pstn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.sci+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.simservs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.timestamp-token\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.tsl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.tsl.der\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eu.kasparian.car+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.eudora.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.profile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.settings\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.theme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.exstream-empower+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.exstream-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ezpix-album\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez2\"]\n },\n \"application/vnd.ezpix-package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez3\"]\n },\n \"application/vnd.f-secure.mobile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.familysearch.gedcom+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.fastcopy-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"fdf\"]\n },\n \"application/vnd.fdsn.mseed\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseed\"]\n },\n \"application/vnd.fdsn.seed\": {\n \"source\": \"iana\",\n \"extensions\": [\"seed\",\"dataless\"]\n },\n \"application/vnd.ffsns\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ficlab.flb+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.filmit.zfc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fints\": {\n \"source\": \"iana\"\n },\n \"application/vnd.firemonkeys.cloudcell\": {\n \"source\": \"iana\"\n },\n \"application/vnd.flographit\": {\n \"source\": \"iana\",\n \"extensions\": [\"gph\"]\n },\n \"application/vnd.fluxtime.clip\": {\n \"source\": \"iana\",\n \"extensions\": [\"ftc\"]\n },\n \"application/vnd.font-fontforge-sfd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.framemaker\": {\n \"source\": \"iana\",\n \"extensions\": [\"fm\",\"frame\",\"maker\",\"book\"]\n },\n \"application/vnd.frogans.fnc\": {\n \"source\": \"iana\",\n \"extensions\": [\"fnc\"]\n },\n \"application/vnd.frogans.ltf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ltf\"]\n },\n \"application/vnd.fsc.weblaunch\": {\n \"source\": \"iana\",\n \"extensions\": [\"fsc\"]\n },\n \"application/vnd.fujifilm.fb.docuworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.binder\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.jfi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fujitsu.oasys\": {\n \"source\": \"iana\",\n \"extensions\": [\"oas\"]\n },\n \"application/vnd.fujitsu.oasys2\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa2\"]\n },\n \"application/vnd.fujitsu.oasys3\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa3\"]\n },\n \"application/vnd.fujitsu.oasysgp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fg5\"]\n },\n \"application/vnd.fujitsu.oasysprs\": {\n \"source\": \"iana\",\n \"extensions\": [\"bh2\"]\n },\n \"application/vnd.fujixerox.art-ex\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.art4\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.ddd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ddd\"]\n },\n \"application/vnd.fujixerox.docuworks\": {\n \"source\": \"iana\",\n \"extensions\": [\"xdw\"]\n },\n \"application/vnd.fujixerox.docuworks.binder\": {\n \"source\": \"iana\",\n \"extensions\": [\"xbd\"]\n },\n \"application/vnd.fujixerox.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.hbpl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fut-misnet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fuzzysheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fzs\"]\n },\n \"application/vnd.genomatix.tuxedo\": {\n \"source\": \"iana\",\n \"extensions\": [\"txd\"]\n },\n \"application/vnd.gentics.grd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geocube+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geogebra.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggb\"]\n },\n \"application/vnd.geogebra.slides\": {\n \"source\": \"iana\"\n },\n \"application/vnd.geogebra.tool\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggt\"]\n },\n \"application/vnd.geometry-explorer\": {\n \"source\": \"iana\",\n \"extensions\": [\"gex\",\"gre\"]\n },\n \"application/vnd.geonext\": {\n \"source\": \"iana\",\n \"extensions\": [\"gxt\"]\n },\n \"application/vnd.geoplan\": {\n \"source\": \"iana\",\n \"extensions\": [\"g2w\"]\n },\n \"application/vnd.geospace\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3w\"]\n },\n \"application/vnd.gerber\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gmx\": {\n \"source\": \"iana\",\n \"extensions\": [\"gmx\"]\n },\n \"application/vnd.google-apps.document\": {\n \"compressible\": false,\n \"extensions\": [\"gdoc\"]\n },\n \"application/vnd.google-apps.presentation\": {\n \"compressible\": false,\n \"extensions\": [\"gslides\"]\n },\n \"application/vnd.google-apps.spreadsheet\": {\n \"compressible\": false,\n \"extensions\": [\"gsheet\"]\n },\n \"application/vnd.google-earth.kml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"kml\"]\n },\n \"application/vnd.google-earth.kmz\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"kmz\"]\n },\n \"application/vnd.gov.sk.e-form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.gov.sk.e-form+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.gov.sk.xmldatacontainer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.grafeq\": {\n \"source\": \"iana\",\n \"extensions\": [\"gqf\",\"gqs\"]\n },\n \"application/vnd.gridmp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.groove-account\": {\n \"source\": \"iana\",\n \"extensions\": [\"gac\"]\n },\n \"application/vnd.groove-help\": {\n \"source\": \"iana\",\n \"extensions\": [\"ghf\"]\n },\n \"application/vnd.groove-identity-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gim\"]\n },\n \"application/vnd.groove-injector\": {\n \"source\": \"iana\",\n \"extensions\": [\"grv\"]\n },\n \"application/vnd.groove-tool-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtm\"]\n },\n \"application/vnd.groove-tool-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpl\"]\n },\n \"application/vnd.groove-vcard\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcg\"]\n },\n \"application/vnd.hal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"hal\"]\n },\n \"application/vnd.handheld-entertainment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zmm\"]\n },\n \"application/vnd.hbci\": {\n \"source\": \"iana\",\n \"extensions\": [\"hbci\"]\n },\n \"application/vnd.hc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hcl-bireports\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hdt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.heroku+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hhe.lesson-player\": {\n \"source\": \"iana\",\n \"extensions\": [\"les\"]\n },\n \"application/vnd.hl7cda+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hl7v2+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hp-hpgl\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpgl\"]\n },\n \"application/vnd.hp-hpid\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpid\"]\n },\n \"application/vnd.hp-hps\": {\n \"source\": \"iana\",\n \"extensions\": [\"hps\"]\n },\n \"application/vnd.hp-jlyt\": {\n \"source\": \"iana\",\n \"extensions\": [\"jlt\"]\n },\n \"application/vnd.hp-pcl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcl\"]\n },\n \"application/vnd.hp-pclxl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pclxl\"]\n },\n \"application/vnd.httphone\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hydrostatix.sof-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfd-hdstx\"]\n },\n \"application/vnd.hyper+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyper-item+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyperdrive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hzn-3d-crossword\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.electronic-media\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.minipay\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpy\"]\n },\n \"application/vnd.ibm.modcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"afp\",\"listafp\",\"list3820\"]\n },\n \"application/vnd.ibm.rights-management\": {\n \"source\": \"iana\",\n \"extensions\": [\"irm\"]\n },\n \"application/vnd.ibm.secure-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"sc\"]\n },\n \"application/vnd.iccprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"icc\",\"icm\"]\n },\n \"application/vnd.ieee.1905\": {\n \"source\": \"iana\"\n },\n \"application/vnd.igloader\": {\n \"source\": \"iana\",\n \"extensions\": [\"igl\"]\n },\n \"application/vnd.imagemeter.folder+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.imagemeter.image+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.immervision-ivp\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivp\"]\n },\n \"application/vnd.immervision-ivu\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivu\"]\n },\n \"application/vnd.ims.imsccv1p1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.lis.v2.result+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolconsumerprofile+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy.id+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings.simple+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informedcontrol.rms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informix-visionary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.innopath.wamp.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.insors.igm\": {\n \"source\": \"iana\",\n \"extensions\": [\"igm\"]\n },\n \"application/vnd.intercon.formnet\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpw\",\"xpx\"]\n },\n \"application/vnd.intergeo\": {\n \"source\": \"iana\",\n \"extensions\": [\"i2g\"]\n },\n \"application/vnd.intertrust.digibox\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intertrust.nncp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intu.qbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"qbo\"]\n },\n \"application/vnd.intu.qfx\": {\n \"source\": \"iana\",\n \"extensions\": [\"qfx\"]\n },\n \"application/vnd.iptc.g2.catalogitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.conceptitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.knowledgeitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.packageitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.planningitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ipunplugged.rcprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"rcprofile\"]\n },\n \"application/vnd.irepository.package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"irp\"]\n },\n \"application/vnd.is-xpr\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpr\"]\n },\n \"application/vnd.isac.fcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcs\"]\n },\n \"application/vnd.iso11783-10+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.jam\": {\n \"source\": \"iana\",\n \"extensions\": [\"jam\"]\n },\n \"application/vnd.japannet-directory-service\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-jpnstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-payment-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-setstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.jcp.javame.midlet-rms\": {\n \"source\": \"iana\",\n \"extensions\": [\"rms\"]\n },\n \"application/vnd.jisp\": {\n \"source\": \"iana\",\n \"extensions\": [\"jisp\"]\n },\n \"application/vnd.joost.joda-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"joda\"]\n },\n \"application/vnd.jsk.isdn-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.kahootz\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktz\",\"ktr\"]\n },\n \"application/vnd.kde.karbon\": {\n \"source\": \"iana\",\n \"extensions\": [\"karbon\"]\n },\n \"application/vnd.kde.kchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"chrt\"]\n },\n \"application/vnd.kde.kformula\": {\n \"source\": \"iana\",\n \"extensions\": [\"kfo\"]\n },\n \"application/vnd.kde.kivio\": {\n \"source\": \"iana\",\n \"extensions\": [\"flw\"]\n },\n \"application/vnd.kde.kontour\": {\n \"source\": \"iana\",\n \"extensions\": [\"kon\"]\n },\n \"application/vnd.kde.kpresenter\": {\n \"source\": \"iana\",\n \"extensions\": [\"kpr\",\"kpt\"]\n },\n \"application/vnd.kde.kspread\": {\n \"source\": \"iana\",\n \"extensions\": [\"ksp\"]\n },\n \"application/vnd.kde.kword\": {\n \"source\": \"iana\",\n \"extensions\": [\"kwd\",\"kwt\"]\n },\n \"application/vnd.kenameaapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"htke\"]\n },\n \"application/vnd.kidspiration\": {\n \"source\": \"iana\",\n \"extensions\": [\"kia\"]\n },\n \"application/vnd.kinar\": {\n \"source\": \"iana\",\n \"extensions\": [\"kne\",\"knp\"]\n },\n \"application/vnd.koan\": {\n \"source\": \"iana\",\n \"extensions\": [\"skp\",\"skd\",\"skt\",\"skm\"]\n },\n \"application/vnd.kodak-descriptor\": {\n \"source\": \"iana\",\n \"extensions\": [\"sse\"]\n },\n \"application/vnd.las\": {\n \"source\": \"iana\"\n },\n \"application/vnd.las.las+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.las.las+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lasxml\"]\n },\n \"application/vnd.laszip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.leap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.liberty-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.llamagraphics.life-balance.desktop\": {\n \"source\": \"iana\",\n \"extensions\": [\"lbd\"]\n },\n \"application/vnd.llamagraphics.life-balance.exchange+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lbe\"]\n },\n \"application/vnd.logipipe.circuit+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.loom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.lotus-1-2-3\": {\n \"source\": \"iana\",\n \"extensions\": [\"123\"]\n },\n \"application/vnd.lotus-approach\": {\n \"source\": \"iana\",\n \"extensions\": [\"apr\"]\n },\n \"application/vnd.lotus-freelance\": {\n \"source\": \"iana\",\n \"extensions\": [\"pre\"]\n },\n \"application/vnd.lotus-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"nsf\"]\n },\n \"application/vnd.lotus-organizer\": {\n \"source\": \"iana\",\n \"extensions\": [\"org\"]\n },\n \"application/vnd.lotus-screencam\": {\n \"source\": \"iana\",\n \"extensions\": [\"scm\"]\n },\n \"application/vnd.lotus-wordpro\": {\n \"source\": \"iana\",\n \"extensions\": [\"lwp\"]\n },\n \"application/vnd.macports.portpkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"portpkg\"]\n },\n \"application/vnd.mapbox-vector-tile\": {\n \"source\": \"iana\",\n \"extensions\": [\"mvt\"]\n },\n \"application/vnd.marlin.drm.actiontoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.conftoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.license+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.mdcf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mason+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.maxar.archive.3tz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.maxmind.maxmind-db\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mcd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mcd\"]\n },\n \"application/vnd.medcalcdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"mc1\"]\n },\n \"application/vnd.mediastation.cdkey\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdkey\"]\n },\n \"application/vnd.meridian-slingshot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mfer\": {\n \"source\": \"iana\",\n \"extensions\": [\"mwf\"]\n },\n \"application/vnd.mfmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"mfm\"]\n },\n \"application/vnd.micro+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.micrografx.flo\": {\n \"source\": \"iana\",\n \"extensions\": [\"flo\"]\n },\n \"application/vnd.micrografx.igx\": {\n \"source\": \"iana\",\n \"extensions\": [\"igx\"]\n },\n \"application/vnd.microsoft.portable-executable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.microsoft.windows.thumbnail-cache\": {\n \"source\": \"iana\"\n },\n \"application/vnd.miele+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.mif\": {\n \"source\": \"iana\",\n \"extensions\": [\"mif\"]\n },\n \"application/vnd.minisoft-hp3000-save\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mitsubishi.misty-guard.trustweb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mobius.daf\": {\n \"source\": \"iana\",\n \"extensions\": [\"daf\"]\n },\n \"application/vnd.mobius.dis\": {\n \"source\": \"iana\",\n \"extensions\": [\"dis\"]\n },\n \"application/vnd.mobius.mbk\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbk\"]\n },\n \"application/vnd.mobius.mqy\": {\n \"source\": \"iana\",\n \"extensions\": [\"mqy\"]\n },\n \"application/vnd.mobius.msl\": {\n \"source\": \"iana\",\n \"extensions\": [\"msl\"]\n },\n \"application/vnd.mobius.plc\": {\n \"source\": \"iana\",\n \"extensions\": [\"plc\"]\n },\n \"application/vnd.mobius.txf\": {\n \"source\": \"iana\",\n \"extensions\": [\"txf\"]\n },\n \"application/vnd.mophun.application\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpn\"]\n },\n \"application/vnd.mophun.certificate\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpc\"]\n },\n \"application/vnd.motorola.flexsuite\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.adsi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.fis\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.gotap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.kmr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.ttc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.wem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.iprm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mozilla.xul+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xul\"]\n },\n \"application/vnd.ms-3mfdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-artgalry\": {\n \"source\": \"iana\",\n \"extensions\": [\"cil\"]\n },\n \"application/vnd.ms-asf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-cab-compressed\": {\n \"source\": \"iana\",\n \"extensions\": [\"cab\"]\n },\n \"application/vnd.ms-color.iccprofile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-excel\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]\n },\n \"application/vnd.ms-excel.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlam\"]\n },\n \"application/vnd.ms-excel.sheet.binary.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsb\"]\n },\n \"application/vnd.ms-excel.sheet.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsm\"]\n },\n \"application/vnd.ms-excel.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltm\"]\n },\n \"application/vnd.ms-fontobject\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eot\"]\n },\n \"application/vnd.ms-htmlhelp\": {\n \"source\": \"iana\",\n \"extensions\": [\"chm\"]\n },\n \"application/vnd.ms-ims\": {\n \"source\": \"iana\",\n \"extensions\": [\"ims\"]\n },\n \"application/vnd.ms-lrm\": {\n \"source\": \"iana\",\n \"extensions\": [\"lrm\"]\n },\n \"application/vnd.ms-office.activex+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-officetheme\": {\n \"source\": \"iana\",\n \"extensions\": [\"thmx\"]\n },\n \"application/vnd.ms-opentype\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-outlook\": {\n \"compressible\": false,\n \"extensions\": [\"msg\"]\n },\n \"application/vnd.ms-package.obfuscated-opentype\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-pki.seccat\": {\n \"source\": \"apache\",\n \"extensions\": [\"cat\"]\n },\n \"application/vnd.ms-pki.stl\": {\n \"source\": \"apache\",\n \"extensions\": [\"stl\"]\n },\n \"application/vnd.ms-playready.initiator+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-powerpoint\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ppt\",\"pps\",\"pot\"]\n },\n \"application/vnd.ms-powerpoint.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppam\"]\n },\n \"application/vnd.ms-powerpoint.presentation.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"pptm\"]\n },\n \"application/vnd.ms-powerpoint.slide.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldm\"]\n },\n \"application/vnd.ms-powerpoint.slideshow.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsm\"]\n },\n \"application/vnd.ms-powerpoint.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"potm\"]\n },\n \"application/vnd.ms-printdevicecapabilities+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-printing.printticket+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-printschematicket+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-project\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpp\",\"mpt\"]\n },\n \"application/vnd.ms-tnef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.nwprinting.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.printerpairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.wsd.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-word.document.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"docm\"]\n },\n \"application/vnd.ms-word.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotm\"]\n },\n \"application/vnd.ms-works\": {\n \"source\": \"iana\",\n \"extensions\": [\"wps\",\"wks\",\"wcm\",\"wdb\"]\n },\n \"application/vnd.ms-wpl\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpl\"]\n },\n \"application/vnd.ms-xpsdocument\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xps\"]\n },\n \"application/vnd.msa-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mseq\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseq\"]\n },\n \"application/vnd.msign\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator.cif\": {\n \"source\": \"iana\"\n },\n \"application/vnd.music-niff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.musician\": {\n \"source\": \"iana\",\n \"extensions\": [\"mus\"]\n },\n \"application/vnd.muvee.style\": {\n \"source\": \"iana\",\n \"extensions\": [\"msty\"]\n },\n \"application/vnd.mynfc\": {\n \"source\": \"iana\",\n \"extensions\": [\"taglet\"]\n },\n \"application/vnd.nacamar.ybrid+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ncd.control\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ncd.reference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nearst.inv+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nebumind.line\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nervana\": {\n \"source\": \"iana\"\n },\n \"application/vnd.netfpx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.neurolanguage.nlu\": {\n \"source\": \"iana\",\n \"extensions\": [\"nlu\"]\n },\n \"application/vnd.nimn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.nitro.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.snes.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nitf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ntf\",\"nitf\"]\n },\n \"application/vnd.noblenet-directory\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnd\"]\n },\n \"application/vnd.noblenet-sealer\": {\n \"source\": \"iana\",\n \"extensions\": [\"nns\"]\n },\n \"application/vnd.noblenet-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnw\"]\n },\n \"application/vnd.nokia.catalogs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.iptv.config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.isds-radio-presets\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.landmarkcollection+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.n-gage.ac+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ac\"]\n },\n \"application/vnd.nokia.n-gage.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"ngdat\"]\n },\n \"application/vnd.nokia.n-gage.symbian.install\": {\n \"source\": \"iana\",\n \"extensions\": [\"n-gage\"]\n },\n \"application/vnd.nokia.ncd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.radio-preset\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpst\"]\n },\n \"application/vnd.nokia.radio-presets\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpss\"]\n },\n \"application/vnd.novadigm.edm\": {\n \"source\": \"iana\",\n \"extensions\": [\"edm\"]\n },\n \"application/vnd.novadigm.edx\": {\n \"source\": \"iana\",\n \"extensions\": [\"edx\"]\n },\n \"application/vnd.novadigm.ext\": {\n \"source\": \"iana\",\n \"extensions\": [\"ext\"]\n },\n \"application/vnd.ntt-local.content-share\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.file-transfer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.ogw_remote-access\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_remote\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oasis.opendocument.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"odc\"]\n },\n \"application/vnd.oasis.opendocument.chart-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otc\"]\n },\n \"application/vnd.oasis.opendocument.database\": {\n \"source\": \"iana\",\n \"extensions\": [\"odb\"]\n },\n \"application/vnd.oasis.opendocument.formula\": {\n \"source\": \"iana\",\n \"extensions\": [\"odf\"]\n },\n \"application/vnd.oasis.opendocument.formula-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"odft\"]\n },\n \"application/vnd.oasis.opendocument.graphics\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odg\"]\n },\n \"application/vnd.oasis.opendocument.graphics-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otg\"]\n },\n \"application/vnd.oasis.opendocument.image\": {\n \"source\": \"iana\",\n \"extensions\": [\"odi\"]\n },\n \"application/vnd.oasis.opendocument.image-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"oti\"]\n },\n \"application/vnd.oasis.opendocument.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odp\"]\n },\n \"application/vnd.oasis.opendocument.presentation-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otp\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ods\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ots\"]\n },\n \"application/vnd.oasis.opendocument.text\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odt\"]\n },\n \"application/vnd.oasis.opendocument.text-master\": {\n \"source\": \"iana\",\n \"extensions\": [\"odm\"]\n },\n \"application/vnd.oasis.opendocument.text-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ott\"]\n },\n \"application/vnd.oasis.opendocument.text-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"oth\"]\n },\n \"application/vnd.obn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ocf+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oci.image.manifest.v1+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oftn.l10n+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessdownload+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessstreaming+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.cspg-hexbinary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.dae.svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.dae.xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.mippvcontrolmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.pae.gem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.spdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.spdlist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.ueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.userprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.olpc-sugar\": {\n \"source\": \"iana\",\n \"extensions\": [\"xo\"]\n },\n \"application/vnd.oma-scws-config\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-request\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.associated-procedure-parameter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.drm-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.imd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.ltkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.notification+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.provisioningtrigger\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgboot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgdd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sgdu\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.simple-symbol-container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.smartcard-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sprov+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.stkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.cab-address-book+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-feature-handler+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-pcc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-subs-invite+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-user-prefs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.dcd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dcdc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dd2+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dd2\"]\n },\n \"application/vnd.oma.drm.risd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.group-usage-list+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.lwm2m+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+tlv\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.pal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.detailed-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.final-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.groups+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.invocation-descriptor+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.optimized-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.push\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.scidm.messages+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.xcap-directory+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.omads-email+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-file+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-folder+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omaloc-supl-init\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepager\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertat\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openblox.game+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"obgx\"]\n },\n \"application/vnd.openblox.game-binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openeye.oeb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openofficeorg.extension\": {\n \"source\": \"apache\",\n \"extensions\": [\"oxt\"]\n },\n \"application/vnd.openstreetmap.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osm\"]\n },\n \"application/vnd.opentimestamps.ots\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.custom-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawing+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.extended-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pptx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"potx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xlsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.theme+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.themeoverride+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.vmldrawing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"docx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.core-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.relationships+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oracle.resource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.orange.indata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osa.netdeploy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgeo.mapguide.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgp\"]\n },\n \"application/vnd.osgi.bundle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgi.dp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dp\"]\n },\n \"application/vnd.osgi.subsystem\": {\n \"source\": \"iana\",\n \"extensions\": [\"esa\"]\n },\n \"application/vnd.otps.ct-kip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oxli.countgraph\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pagerduty+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.palm\": {\n \"source\": \"iana\",\n \"extensions\": [\"pdb\",\"pqa\",\"oprc\"]\n },\n \"application/vnd.panoply\": {\n \"source\": \"iana\"\n },\n \"application/vnd.paos.xml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patentdive\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patientecommsdoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pawaafile\": {\n \"source\": \"iana\",\n \"extensions\": [\"paw\"]\n },\n \"application/vnd.pcos\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pg.format\": {\n \"source\": \"iana\",\n \"extensions\": [\"str\"]\n },\n \"application/vnd.pg.osasli\": {\n \"source\": \"iana\",\n \"extensions\": [\"ei6\"]\n },\n \"application/vnd.piaccess.application-licence\": {\n \"source\": \"iana\"\n },\n \"application/vnd.picsel\": {\n \"source\": \"iana\",\n \"extensions\": [\"efif\"]\n },\n \"application/vnd.pmi.widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wg\"]\n },\n \"application/vnd.poc.group-advertisement+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.pocketlearn\": {\n \"source\": \"iana\",\n \"extensions\": [\"plf\"]\n },\n \"application/vnd.powerbuilder6\": {\n \"source\": \"iana\",\n \"extensions\": [\"pbd\"]\n },\n \"application/vnd.powerbuilder6-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.preminet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.previewsystems.box\": {\n \"source\": \"iana\",\n \"extensions\": [\"box\"]\n },\n \"application/vnd.proteus.magazine\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgz\"]\n },\n \"application/vnd.psfs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.publishare-delta-tree\": {\n \"source\": \"iana\",\n \"extensions\": [\"qps\"]\n },\n \"application/vnd.pvi.ptid1\": {\n \"source\": \"iana\",\n \"extensions\": [\"ptid\"]\n },\n \"application/vnd.pwg-multiplexed\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pwg-xhtml-print+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.qualcomm.brew-app-res\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quarantainenet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quark.quarkxpress\": {\n \"source\": \"iana\",\n \"extensions\": [\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]\n },\n \"application/vnd.quobject-quoxdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.radisys.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-stream+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-base+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-detect+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-group+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-speech+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-transform+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rainstor.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rapid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rar\": {\n \"source\": \"iana\",\n \"extensions\": [\"rar\"]\n },\n \"application/vnd.realvnc.bed\": {\n \"source\": \"iana\",\n \"extensions\": [\"bed\"]\n },\n \"application/vnd.recordare.musicxml\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxl\"]\n },\n \"application/vnd.recordare.musicxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musicxml\"]\n },\n \"application/vnd.renlearn.rlprint\": {\n \"source\": \"iana\"\n },\n \"application/vnd.resilient.logic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.restful+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rig.cryptonote\": {\n \"source\": \"iana\",\n \"extensions\": [\"cryptonote\"]\n },\n \"application/vnd.rim.cod\": {\n \"source\": \"apache\",\n \"extensions\": [\"cod\"]\n },\n \"application/vnd.rn-realmedia\": {\n \"source\": \"apache\",\n \"extensions\": [\"rm\"]\n },\n \"application/vnd.rn-realmedia-vbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmvb\"]\n },\n \"application/vnd.route66.link66+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"link66\"]\n },\n \"application/vnd.rs-274x\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ruckus.download\": {\n \"source\": \"iana\"\n },\n \"application/vnd.s3sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sailingtracker.track\": {\n \"source\": \"iana\",\n \"extensions\": [\"st\"]\n },\n \"application/vnd.sar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.cid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.mid2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.scribus\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.3df\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.csf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.doc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.eml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.mht\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.net\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.ppt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.tiff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.xls\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.seemail\": {\n \"source\": \"iana\",\n \"extensions\": [\"see\"]\n },\n \"application/vnd.seis+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.sema\": {\n \"source\": \"iana\",\n \"extensions\": [\"sema\"]\n },\n \"application/vnd.semd\": {\n \"source\": \"iana\",\n \"extensions\": [\"semd\"]\n },\n \"application/vnd.semf\": {\n \"source\": \"iana\",\n \"extensions\": [\"semf\"]\n },\n \"application/vnd.shade-save-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shana.informed.formdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"ifm\"]\n },\n \"application/vnd.shana.informed.formtemplate\": {\n \"source\": \"iana\",\n \"extensions\": [\"itp\"]\n },\n \"application/vnd.shana.informed.interchange\": {\n \"source\": \"iana\",\n \"extensions\": [\"iif\"]\n },\n \"application/vnd.shana.informed.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipk\"]\n },\n \"application/vnd.shootproof+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shopkick+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sigrok.session\": {\n \"source\": \"iana\"\n },\n \"application/vnd.simtech-mindmapper\": {\n \"source\": \"iana\",\n \"extensions\": [\"twd\",\"twds\"]\n },\n \"application/vnd.siren+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.smaf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmf\"]\n },\n \"application/vnd.smart.notebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.smart.teacher\": {\n \"source\": \"iana\",\n \"extensions\": [\"teacher\"]\n },\n \"application/vnd.snesdev-page-table\": {\n \"source\": \"iana\"\n },\n \"application/vnd.software602.filler.form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fo\"]\n },\n \"application/vnd.software602.filler.form-xml-zip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.solent.sdkm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sdkm\",\"sdkd\"]\n },\n \"application/vnd.spotfire.dxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxp\"]\n },\n \"application/vnd.spotfire.sfs\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfs\"]\n },\n \"application/vnd.sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-cod\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-dtf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-ntf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.stardivision.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdc\"]\n },\n \"application/vnd.stardivision.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sda\"]\n },\n \"application/vnd.stardivision.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdd\"]\n },\n \"application/vnd.stardivision.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"smf\"]\n },\n \"application/vnd.stardivision.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdw\",\"vor\"]\n },\n \"application/vnd.stardivision.writer-global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgl\"]\n },\n \"application/vnd.stepmania.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"smzip\"]\n },\n \"application/vnd.stepmania.stepchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"sm\"]\n },\n \"application/vnd.street-stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sun.wadl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wadl\"]\n },\n \"application/vnd.sun.xml.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxc\"]\n },\n \"application/vnd.sun.xml.calc.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stc\"]\n },\n \"application/vnd.sun.xml.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxd\"]\n },\n \"application/vnd.sun.xml.draw.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"std\"]\n },\n \"application/vnd.sun.xml.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxi\"]\n },\n \"application/vnd.sun.xml.impress.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"sti\"]\n },\n \"application/vnd.sun.xml.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxm\"]\n },\n \"application/vnd.sun.xml.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxw\"]\n },\n \"application/vnd.sun.xml.writer.global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxg\"]\n },\n \"application/vnd.sun.xml.writer.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stw\"]\n },\n \"application/vnd.sus-calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"sus\",\"susp\"]\n },\n \"application/vnd.svd\": {\n \"source\": \"iana\",\n \"extensions\": [\"svd\"]\n },\n \"application/vnd.swiftview-ics\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sycle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.syft+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.symbian.install\": {\n \"source\": \"apache\",\n \"extensions\": [\"sis\",\"sisx\"]\n },\n \"application/vnd.syncml+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xsm\"]\n },\n \"application/vnd.syncml.dm+wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"bdm\"]\n },\n \"application/vnd.syncml.dm+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xdm\"]\n },\n \"application/vnd.syncml.dm.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"ddf\"]\n },\n \"application/vnd.syncml.dmtnds+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmtnds+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.syncml.ds.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tableschema+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tao.intent-module-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"tao\"]\n },\n \"application/vnd.tcpdump.pcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcap\",\"cap\",\"dmp\"]\n },\n \"application/vnd.think-cell.ppttc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tmd.mediaflex.api+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tmobile-livetv\": {\n \"source\": \"iana\",\n \"extensions\": [\"tmo\"]\n },\n \"application/vnd.tri.onesource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.trid.tpt\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpt\"]\n },\n \"application/vnd.triscape.mxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxs\"]\n },\n \"application/vnd.trueapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"tra\"]\n },\n \"application/vnd.truedoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ubisoft.webplayer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ufdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"ufd\",\"ufdl\"]\n },\n \"application/vnd.uiq.theme\": {\n \"source\": \"iana\",\n \"extensions\": [\"utz\"]\n },\n \"application/vnd.umajin\": {\n \"source\": \"iana\",\n \"extensions\": [\"umj\"]\n },\n \"application/vnd.unity\": {\n \"source\": \"iana\",\n \"extensions\": [\"unityweb\"]\n },\n \"application/vnd.uoml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uoml\"]\n },\n \"application/vnd.uplanet.alert\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.alert-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.signal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uri-map\": {\n \"source\": \"iana\"\n },\n \"application/vnd.valve.source.material\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcx\"]\n },\n \"application/vnd.vd-study\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vectorworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vel+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.verimatrix.vcas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.veritone.aion+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.veryant.thin\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ves.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vidsoft.vidconference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.visio\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsd\",\"vst\",\"vss\",\"vsw\"]\n },\n \"application/vnd.visionary\": {\n \"source\": \"iana\",\n \"extensions\": [\"vis\"]\n },\n \"application/vnd.vividence.scriptfile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vsf\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsf\"]\n },\n \"application/vnd.wap.sic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.slc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"wbxml\"]\n },\n \"application/vnd.wap.wmlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlc\"]\n },\n \"application/vnd.wap.wmlscriptc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlsc\"]\n },\n \"application/vnd.webturbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"wtb\"]\n },\n \"application/vnd.wfa.dpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.p2p\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.wsc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmf.bootstrap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica.package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.player\": {\n \"source\": \"iana\",\n \"extensions\": [\"nbp\"]\n },\n \"application/vnd.wordperfect\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpd\"]\n },\n \"application/vnd.wqd\": {\n \"source\": \"iana\",\n \"extensions\": [\"wqd\"]\n },\n \"application/vnd.wrq-hp3000-labelled\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wt.stf\": {\n \"source\": \"iana\",\n \"extensions\": [\"stf\"]\n },\n \"application/vnd.wv.csp+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wv.csp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.wv.ssp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xacml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xara\": {\n \"source\": \"iana\",\n \"extensions\": [\"xar\"]\n },\n \"application/vnd.xfdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdl\"]\n },\n \"application/vnd.xfdl.webform\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xmpie.cpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.dpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.plan\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.ppkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.xlim\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.hv-dic\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvd\"]\n },\n \"application/vnd.yamaha.hv-script\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvs\"]\n },\n \"application/vnd.yamaha.hv-voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvp\"]\n },\n \"application/vnd.yamaha.openscoreformat\": {\n \"source\": \"iana\",\n \"extensions\": [\"osf\"]\n },\n \"application/vnd.yamaha.openscoreformat.osfpvg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osfpvg\"]\n },\n \"application/vnd.yamaha.remote-setup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.smaf-audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"saf\"]\n },\n \"application/vnd.yamaha.smaf-phrase\": {\n \"source\": \"iana\",\n \"extensions\": [\"spf\"]\n },\n \"application/vnd.yamaha.through-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.tunnel-udpencap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yaoweme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yellowriver-custom-menu\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmp\"]\n },\n \"application/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.zul\": {\n \"source\": \"iana\",\n \"extensions\": [\"zir\",\"zirz\"]\n },\n \"application/vnd.zzazz.deck+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zaz\"]\n },\n \"application/voicexml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vxml\"]\n },\n \"application/voucher-cms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vq-rtcpxr\": {\n \"source\": \"iana\"\n },\n \"application/wasm\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wasm\"]\n },\n \"application/watcherinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wif\"]\n },\n \"application/webpush-options+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/whoispp-query\": {\n \"source\": \"iana\"\n },\n \"application/whoispp-response\": {\n \"source\": \"iana\"\n },\n \"application/widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wgt\"]\n },\n \"application/winhlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"hlp\"]\n },\n \"application/wita\": {\n \"source\": \"iana\"\n },\n \"application/wordperfect5.1\": {\n \"source\": \"iana\"\n },\n \"application/wsdl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wsdl\"]\n },\n \"application/wspolicy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wspolicy\"]\n },\n \"application/x-7z-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"7z\"]\n },\n \"application/x-abiword\": {\n \"source\": \"apache\",\n \"extensions\": [\"abw\"]\n },\n \"application/x-ace-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"ace\"]\n },\n \"application/x-amf\": {\n \"source\": \"apache\"\n },\n \"application/x-apple-diskimage\": {\n \"source\": \"apache\",\n \"extensions\": [\"dmg\"]\n },\n \"application/x-arj\": {\n \"compressible\": false,\n \"extensions\": [\"arj\"]\n },\n \"application/x-authorware-bin\": {\n \"source\": \"apache\",\n \"extensions\": [\"aab\",\"x32\",\"u32\",\"vox\"]\n },\n \"application/x-authorware-map\": {\n \"source\": \"apache\",\n \"extensions\": [\"aam\"]\n },\n \"application/x-authorware-seg\": {\n \"source\": \"apache\",\n \"extensions\": [\"aas\"]\n },\n \"application/x-bcpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"bcpio\"]\n },\n \"application/x-bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/x-bittorrent\": {\n \"source\": \"apache\",\n \"extensions\": [\"torrent\"]\n },\n \"application/x-blorb\": {\n \"source\": \"apache\",\n \"extensions\": [\"blb\",\"blorb\"]\n },\n \"application/x-bzip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz\"]\n },\n \"application/x-bzip2\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz2\",\"boz\"]\n },\n \"application/x-cbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]\n },\n \"application/x-cdlink\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcd\"]\n },\n \"application/x-cfs-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"cfs\"]\n },\n \"application/x-chat\": {\n \"source\": \"apache\",\n \"extensions\": [\"chat\"]\n },\n \"application/x-chess-pgn\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgn\"]\n },\n \"application/x-chrome-extension\": {\n \"extensions\": [\"crx\"]\n },\n \"application/x-cocoa\": {\n \"source\": \"nginx\",\n \"extensions\": [\"cco\"]\n },\n \"application/x-compress\": {\n \"source\": \"apache\"\n },\n \"application/x-conference\": {\n \"source\": \"apache\",\n \"extensions\": [\"nsc\"]\n },\n \"application/x-cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpio\"]\n },\n \"application/x-csh\": {\n \"source\": \"apache\",\n \"extensions\": [\"csh\"]\n },\n \"application/x-deb\": {\n \"compressible\": false\n },\n \"application/x-debian-package\": {\n \"source\": \"apache\",\n \"extensions\": [\"deb\",\"udeb\"]\n },\n \"application/x-dgc-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"dgc\"]\n },\n \"application/x-director\": {\n \"source\": \"apache\",\n \"extensions\": [\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]\n },\n \"application/x-doom\": {\n \"source\": \"apache\",\n \"extensions\": [\"wad\"]\n },\n \"application/x-dtbncx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ncx\"]\n },\n \"application/x-dtbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dtb\"]\n },\n \"application/x-dtbresource+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"res\"]\n },\n \"application/x-dvi\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"dvi\"]\n },\n \"application/x-envoy\": {\n \"source\": \"apache\",\n \"extensions\": [\"evy\"]\n },\n \"application/x-eva\": {\n \"source\": \"apache\",\n \"extensions\": [\"eva\"]\n },\n \"application/x-font-bdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"bdf\"]\n },\n \"application/x-font-dos\": {\n \"source\": \"apache\"\n },\n \"application/x-font-framemaker\": {\n \"source\": \"apache\"\n },\n \"application/x-font-ghostscript\": {\n \"source\": \"apache\",\n \"extensions\": [\"gsf\"]\n },\n \"application/x-font-libgrx\": {\n \"source\": \"apache\"\n },\n \"application/x-font-linux-psf\": {\n \"source\": \"apache\",\n \"extensions\": [\"psf\"]\n },\n \"application/x-font-pcf\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcf\"]\n },\n \"application/x-font-snf\": {\n \"source\": \"apache\",\n \"extensions\": [\"snf\"]\n },\n \"application/x-font-speedo\": {\n \"source\": \"apache\"\n },\n \"application/x-font-sunos-news\": {\n \"source\": \"apache\"\n },\n \"application/x-font-type1\": {\n \"source\": \"apache\",\n \"extensions\": [\"pfa\",\"pfb\",\"pfm\",\"afm\"]\n },\n \"application/x-font-vfont\": {\n \"source\": \"apache\"\n },\n \"application/x-freearc\": {\n \"source\": \"apache\",\n \"extensions\": [\"arc\"]\n },\n \"application/x-futuresplash\": {\n \"source\": \"apache\",\n \"extensions\": [\"spl\"]\n },\n \"application/x-gca-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"gca\"]\n },\n \"application/x-glulx\": {\n \"source\": \"apache\",\n \"extensions\": [\"ulx\"]\n },\n \"application/x-gnumeric\": {\n \"source\": \"apache\",\n \"extensions\": [\"gnumeric\"]\n },\n \"application/x-gramps-xml\": {\n \"source\": \"apache\",\n \"extensions\": [\"gramps\"]\n },\n \"application/x-gtar\": {\n \"source\": \"apache\",\n \"extensions\": [\"gtar\"]\n },\n \"application/x-gzip\": {\n \"source\": \"apache\"\n },\n \"application/x-hdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"hdf\"]\n },\n \"application/x-httpd-php\": {\n \"compressible\": true,\n \"extensions\": [\"php\"]\n },\n \"application/x-install-instructions\": {\n \"source\": \"apache\",\n \"extensions\": [\"install\"]\n },\n \"application/x-iso9660-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"iso\"]\n },\n \"application/x-iwork-keynote-sffkey\": {\n \"extensions\": [\"key\"]\n },\n \"application/x-iwork-numbers-sffnumbers\": {\n \"extensions\": [\"numbers\"]\n },\n \"application/x-iwork-pages-sffpages\": {\n \"extensions\": [\"pages\"]\n },\n \"application/x-java-archive-diff\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jardiff\"]\n },\n \"application/x-java-jnlp-file\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jnlp\"]\n },\n \"application/x-javascript\": {\n \"compressible\": true\n },\n \"application/x-keepass2\": {\n \"extensions\": [\"kdbx\"]\n },\n \"application/x-latex\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"latex\"]\n },\n \"application/x-lua-bytecode\": {\n \"extensions\": [\"luac\"]\n },\n \"application/x-lzh-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"lzh\",\"lha\"]\n },\n \"application/x-makeself\": {\n \"source\": \"nginx\",\n \"extensions\": [\"run\"]\n },\n \"application/x-mie\": {\n \"source\": \"apache\",\n \"extensions\": [\"mie\"]\n },\n \"application/x-mobipocket-ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"prc\",\"mobi\"]\n },\n \"application/x-mpegurl\": {\n \"compressible\": false\n },\n \"application/x-ms-application\": {\n \"source\": \"apache\",\n \"extensions\": [\"application\"]\n },\n \"application/x-ms-shortcut\": {\n \"source\": \"apache\",\n \"extensions\": [\"lnk\"]\n },\n \"application/x-ms-wmd\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmd\"]\n },\n \"application/x-ms-wmz\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmz\"]\n },\n \"application/x-ms-xbap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbap\"]\n },\n \"application/x-msaccess\": {\n \"source\": \"apache\",\n \"extensions\": [\"mdb\"]\n },\n \"application/x-msbinder\": {\n \"source\": \"apache\",\n \"extensions\": [\"obd\"]\n },\n \"application/x-mscardfile\": {\n \"source\": \"apache\",\n \"extensions\": [\"crd\"]\n },\n \"application/x-msclip\": {\n \"source\": \"apache\",\n \"extensions\": [\"clp\"]\n },\n \"application/x-msdos-program\": {\n \"extensions\": [\"exe\"]\n },\n \"application/x-msdownload\": {\n \"source\": \"apache\",\n \"extensions\": [\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]\n },\n \"application/x-msmediaview\": {\n \"source\": \"apache\",\n \"extensions\": [\"mvb\",\"m13\",\"m14\"]\n },\n \"application/x-msmetafile\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmf\",\"wmz\",\"emf\",\"emz\"]\n },\n \"application/x-msmoney\": {\n \"source\": \"apache\",\n \"extensions\": [\"mny\"]\n },\n \"application/x-mspublisher\": {\n \"source\": \"apache\",\n \"extensions\": [\"pub\"]\n },\n \"application/x-msschedule\": {\n \"source\": \"apache\",\n \"extensions\": [\"scd\"]\n },\n \"application/x-msterminal\": {\n \"source\": \"apache\",\n \"extensions\": [\"trm\"]\n },\n \"application/x-mswrite\": {\n \"source\": \"apache\",\n \"extensions\": [\"wri\"]\n },\n \"application/x-netcdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"nc\",\"cdf\"]\n },\n \"application/x-ns-proxy-autoconfig\": {\n \"compressible\": true,\n \"extensions\": [\"pac\"]\n },\n \"application/x-nzb\": {\n \"source\": \"apache\",\n \"extensions\": [\"nzb\"]\n },\n \"application/x-perl\": {\n \"source\": \"nginx\",\n \"extensions\": [\"pl\",\"pm\"]\n },\n \"application/x-pilot\": {\n \"source\": \"nginx\",\n \"extensions\": [\"prc\",\"pdb\"]\n },\n \"application/x-pkcs12\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"p12\",\"pfx\"]\n },\n \"application/x-pkcs7-certificates\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7b\",\"spc\"]\n },\n \"application/x-pkcs7-certreqresp\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7r\"]\n },\n \"application/x-pki-message\": {\n \"source\": \"iana\"\n },\n \"application/x-rar-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"rar\"]\n },\n \"application/x-redhat-package-manager\": {\n \"source\": \"nginx\",\n \"extensions\": [\"rpm\"]\n },\n \"application/x-research-info-systems\": {\n \"source\": \"apache\",\n \"extensions\": [\"ris\"]\n },\n \"application/x-sea\": {\n \"source\": \"nginx\",\n \"extensions\": [\"sea\"]\n },\n \"application/x-sh\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"sh\"]\n },\n \"application/x-shar\": {\n \"source\": \"apache\",\n \"extensions\": [\"shar\"]\n },\n \"application/x-shockwave-flash\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"swf\"]\n },\n \"application/x-silverlight-app\": {\n \"source\": \"apache\",\n \"extensions\": [\"xap\"]\n },\n \"application/x-sql\": {\n \"source\": \"apache\",\n \"extensions\": [\"sql\"]\n },\n \"application/x-stuffit\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"sit\"]\n },\n \"application/x-stuffitx\": {\n \"source\": \"apache\",\n \"extensions\": [\"sitx\"]\n },\n \"application/x-subrip\": {\n \"source\": \"apache\",\n \"extensions\": [\"srt\"]\n },\n \"application/x-sv4cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4cpio\"]\n },\n \"application/x-sv4crc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4crc\"]\n },\n \"application/x-t3vm-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"t3\"]\n },\n \"application/x-tads\": {\n \"source\": \"apache\",\n \"extensions\": [\"gam\"]\n },\n \"application/x-tar\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"tar\"]\n },\n \"application/x-tcl\": {\n \"source\": \"apache\",\n \"extensions\": [\"tcl\",\"tk\"]\n },\n \"application/x-tex\": {\n \"source\": \"apache\",\n \"extensions\": [\"tex\"]\n },\n \"application/x-tex-tfm\": {\n \"source\": \"apache\",\n \"extensions\": [\"tfm\"]\n },\n \"application/x-texinfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"texinfo\",\"texi\"]\n },\n \"application/x-tgif\": {\n \"source\": \"apache\",\n \"extensions\": [\"obj\"]\n },\n \"application/x-ustar\": {\n \"source\": \"apache\",\n \"extensions\": [\"ustar\"]\n },\n \"application/x-virtualbox-hdd\": {\n \"compressible\": true,\n \"extensions\": [\"hdd\"]\n },\n \"application/x-virtualbox-ova\": {\n \"compressible\": true,\n \"extensions\": [\"ova\"]\n },\n \"application/x-virtualbox-ovf\": {\n \"compressible\": true,\n \"extensions\": [\"ovf\"]\n },\n \"application/x-virtualbox-vbox\": {\n \"compressible\": true,\n \"extensions\": [\"vbox\"]\n },\n \"application/x-virtualbox-vbox-extpack\": {\n \"compressible\": false,\n \"extensions\": [\"vbox-extpack\"]\n },\n \"application/x-virtualbox-vdi\": {\n \"compressible\": true,\n \"extensions\": [\"vdi\"]\n },\n \"application/x-virtualbox-vhd\": {\n \"compressible\": true,\n \"extensions\": [\"vhd\"]\n },\n \"application/x-virtualbox-vmdk\": {\n \"compressible\": true,\n \"extensions\": [\"vmdk\"]\n },\n \"application/x-wais-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"src\"]\n },\n \"application/x-web-app-manifest+json\": {\n \"compressible\": true,\n \"extensions\": [\"webapp\"]\n },\n \"application/x-www-form-urlencoded\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/x-x509-ca-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"der\",\"crt\",\"pem\"]\n },\n \"application/x-x509-ca-ra-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-x509-next-ca-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-xfig\": {\n \"source\": \"apache\",\n \"extensions\": [\"fig\"]\n },\n \"application/x-xliff+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/x-xpinstall\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"xpi\"]\n },\n \"application/x-xz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xz\"]\n },\n \"application/x-zmachine\": {\n \"source\": \"apache\",\n \"extensions\": [\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]\n },\n \"application/x400-bp\": {\n \"source\": \"iana\"\n },\n \"application/xacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xaml+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xaml\"]\n },\n \"application/xcap-att+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xav\"]\n },\n \"application/xcap-caps+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xca\"]\n },\n \"application/xcap-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdf\"]\n },\n \"application/xcap-el+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xel\"]\n },\n \"application/xcap-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcap-ns+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xns\"]\n },\n \"application/xcon-conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcon-conference-info-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xenc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xenc\"]\n },\n \"application/xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xhtml\",\"xht\"]\n },\n \"application/xhtml-voice+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/xliff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\",\"xsl\",\"xsd\",\"rng\"]\n },\n \"application/xml-dtd\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dtd\"]\n },\n \"application/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"application/xml-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xmpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xop\"]\n },\n \"application/xproc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xpl\"]\n },\n \"application/xslt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xsl\",\"xslt\"]\n },\n \"application/xspf+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xspf\"]\n },\n \"application/xv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]\n },\n \"application/yang\": {\n \"source\": \"iana\",\n \"extensions\": [\"yang\"]\n },\n \"application/yang-data+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yin+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"yin\"]\n },\n \"application/zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"zip\"]\n },\n \"application/zlib\": {\n \"source\": \"iana\"\n },\n \"application/zstd\": {\n \"source\": \"iana\"\n },\n \"audio/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/3gpp\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"3gpp\"]\n },\n \"audio/3gpp2\": {\n \"source\": \"iana\"\n },\n \"audio/aac\": {\n \"source\": \"iana\"\n },\n \"audio/ac3\": {\n \"source\": \"iana\"\n },\n \"audio/adpcm\": {\n \"source\": \"apache\",\n \"extensions\": [\"adp\"]\n },\n \"audio/amr\": {\n \"source\": \"iana\",\n \"extensions\": [\"amr\"]\n },\n \"audio/amr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/amr-wb+\": {\n \"source\": \"iana\"\n },\n \"audio/aptx\": {\n \"source\": \"iana\"\n },\n \"audio/asc\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-advanced-lossless\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-x\": {\n \"source\": \"iana\"\n },\n \"audio/atrac3\": {\n \"source\": \"iana\"\n },\n \"audio/basic\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"au\",\"snd\"]\n },\n \"audio/bv16\": {\n \"source\": \"iana\"\n },\n \"audio/bv32\": {\n \"source\": \"iana\"\n },\n \"audio/clearmode\": {\n \"source\": \"iana\"\n },\n \"audio/cn\": {\n \"source\": \"iana\"\n },\n \"audio/dat12\": {\n \"source\": \"iana\"\n },\n \"audio/dls\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es201108\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202050\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202211\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202212\": {\n \"source\": \"iana\"\n },\n \"audio/dv\": {\n \"source\": \"iana\"\n },\n \"audio/dvi4\": {\n \"source\": \"iana\"\n },\n \"audio/eac3\": {\n \"source\": \"iana\"\n },\n \"audio/encaprtp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc\": {\n \"source\": \"iana\"\n },\n \"audio/evrc-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc0\": {\n \"source\": \"iana\"\n },\n \"audio/evrc1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb1\": {\n \"source\": \"iana\"\n },\n \"audio/evs\": {\n \"source\": \"iana\"\n },\n \"audio/flexfec\": {\n \"source\": \"iana\"\n },\n \"audio/fwdred\": {\n \"source\": \"iana\"\n },\n \"audio/g711-0\": {\n \"source\": \"iana\"\n },\n \"audio/g719\": {\n \"source\": \"iana\"\n },\n \"audio/g722\": {\n \"source\": \"iana\"\n },\n \"audio/g7221\": {\n \"source\": \"iana\"\n },\n \"audio/g723\": {\n \"source\": \"iana\"\n },\n \"audio/g726-16\": {\n \"source\": \"iana\"\n },\n \"audio/g726-24\": {\n \"source\": \"iana\"\n },\n \"audio/g726-32\": {\n \"source\": \"iana\"\n },\n \"audio/g726-40\": {\n \"source\": \"iana\"\n },\n \"audio/g728\": {\n \"source\": \"iana\"\n },\n \"audio/g729\": {\n \"source\": \"iana\"\n },\n \"audio/g7291\": {\n \"source\": \"iana\"\n },\n \"audio/g729d\": {\n \"source\": \"iana\"\n },\n \"audio/g729e\": {\n \"source\": \"iana\"\n },\n \"audio/gsm\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-efr\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-hr-08\": {\n \"source\": \"iana\"\n },\n \"audio/ilbc\": {\n \"source\": \"iana\"\n },\n \"audio/ip-mr_v2.5\": {\n \"source\": \"iana\"\n },\n \"audio/isac\": {\n \"source\": \"apache\"\n },\n \"audio/l16\": {\n \"source\": \"iana\"\n },\n \"audio/l20\": {\n \"source\": \"iana\"\n },\n \"audio/l24\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/l8\": {\n \"source\": \"iana\"\n },\n \"audio/lpc\": {\n \"source\": \"iana\"\n },\n \"audio/melp\": {\n \"source\": \"iana\"\n },\n \"audio/melp1200\": {\n \"source\": \"iana\"\n },\n \"audio/melp2400\": {\n \"source\": \"iana\"\n },\n \"audio/melp600\": {\n \"source\": \"iana\"\n },\n \"audio/mhas\": {\n \"source\": \"iana\"\n },\n \"audio/midi\": {\n \"source\": \"apache\",\n \"extensions\": [\"mid\",\"midi\",\"kar\",\"rmi\"]\n },\n \"audio/mobile-xmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxmf\"]\n },\n \"audio/mp3\": {\n \"compressible\": false,\n \"extensions\": [\"mp3\"]\n },\n \"audio/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"m4a\",\"mp4a\"]\n },\n \"audio/mp4a-latm\": {\n \"source\": \"iana\"\n },\n \"audio/mpa\": {\n \"source\": \"iana\"\n },\n \"audio/mpa-robust\": {\n \"source\": \"iana\"\n },\n \"audio/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]\n },\n \"audio/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"audio/musepack\": {\n \"source\": \"apache\"\n },\n \"audio/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"oga\",\"ogg\",\"spx\",\"opus\"]\n },\n \"audio/opus\": {\n \"source\": \"iana\"\n },\n \"audio/parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/pcma\": {\n \"source\": \"iana\"\n },\n \"audio/pcma-wb\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu-wb\": {\n \"source\": \"iana\"\n },\n \"audio/prs.sid\": {\n \"source\": \"iana\"\n },\n \"audio/qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/raptorfec\": {\n \"source\": \"iana\"\n },\n \"audio/red\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/rtploopback\": {\n \"source\": \"iana\"\n },\n \"audio/rtx\": {\n \"source\": \"iana\"\n },\n \"audio/s3m\": {\n \"source\": \"apache\",\n \"extensions\": [\"s3m\"]\n },\n \"audio/scip\": {\n \"source\": \"iana\"\n },\n \"audio/silk\": {\n \"source\": \"apache\",\n \"extensions\": [\"sil\"]\n },\n \"audio/smv\": {\n \"source\": \"iana\"\n },\n \"audio/smv-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/smv0\": {\n \"source\": \"iana\"\n },\n \"audio/sofa\": {\n \"source\": \"iana\"\n },\n \"audio/sp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/speex\": {\n \"source\": \"iana\"\n },\n \"audio/t140c\": {\n \"source\": \"iana\"\n },\n \"audio/t38\": {\n \"source\": \"iana\"\n },\n \"audio/telephone-event\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp_bb\": {\n \"source\": \"iana\"\n },\n \"audio/tone\": {\n \"source\": \"iana\"\n },\n \"audio/tsvcis\": {\n \"source\": \"iana\"\n },\n \"audio/uemclip\": {\n \"source\": \"iana\"\n },\n \"audio/ulpfec\": {\n \"source\": \"iana\"\n },\n \"audio/usac\": {\n \"source\": \"iana\"\n },\n \"audio/vdvi\": {\n \"source\": \"iana\"\n },\n \"audio/vmr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.3gpp.iufp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.4sb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.audiokoz\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.celp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cisco.nse\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cmles.radio-events\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.anp1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.inf1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dece.audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"uva\",\"uvva\"]\n },\n \"audio/vnd.digital-winds\": {\n \"source\": \"iana\",\n \"extensions\": [\"eol\"]\n },\n \"audio/vnd.dlna.adts\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mlp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mps\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2x\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2z\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pulse.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dra\": {\n \"source\": \"iana\",\n \"extensions\": [\"dra\"]\n },\n \"audio/vnd.dts\": {\n \"source\": \"iana\",\n \"extensions\": [\"dts\"]\n },\n \"audio/vnd.dts.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"dtshd\"]\n },\n \"audio/vnd.dts.uhd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dvb.file\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.everad.plj\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.hns.audio\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.lucent.voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"lvp\"]\n },\n \"audio/vnd.ms-playready.media.pya\": {\n \"source\": \"iana\",\n \"extensions\": [\"pya\"]\n },\n \"audio/vnd.nokia.mobile-xmf\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nortel.vbk\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nuera.ecelp4800\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp4800\"]\n },\n \"audio/vnd.nuera.ecelp7470\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp7470\"]\n },\n \"audio/vnd.nuera.ecelp9600\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp9600\"]\n },\n \"audio/vnd.octel.sbc\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.presonus.multitrack\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rhetorex.32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rip\": {\n \"source\": \"iana\",\n \"extensions\": [\"rip\"]\n },\n \"audio/vnd.rn-realaudio\": {\n \"compressible\": false\n },\n \"audio/vnd.sealedmedia.softseal.mpeg\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.vmx.cvsd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.wave\": {\n \"compressible\": false\n },\n \"audio/vorbis\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/vorbis-config\": {\n \"source\": \"iana\"\n },\n \"audio/wav\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/wave\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"weba\"]\n },\n \"audio/x-aac\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"aac\"]\n },\n \"audio/x-aiff\": {\n \"source\": \"apache\",\n \"extensions\": [\"aif\",\"aiff\",\"aifc\"]\n },\n \"audio/x-caf\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"caf\"]\n },\n \"audio/x-flac\": {\n \"source\": \"apache\",\n \"extensions\": [\"flac\"]\n },\n \"audio/x-m4a\": {\n \"source\": \"nginx\",\n \"extensions\": [\"m4a\"]\n },\n \"audio/x-matroska\": {\n \"source\": \"apache\",\n \"extensions\": [\"mka\"]\n },\n \"audio/x-mpegurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"m3u\"]\n },\n \"audio/x-ms-wax\": {\n \"source\": \"apache\",\n \"extensions\": [\"wax\"]\n },\n \"audio/x-ms-wma\": {\n \"source\": \"apache\",\n \"extensions\": [\"wma\"]\n },\n \"audio/x-pn-realaudio\": {\n \"source\": \"apache\",\n \"extensions\": [\"ram\",\"ra\"]\n },\n \"audio/x-pn-realaudio-plugin\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmp\"]\n },\n \"audio/x-realaudio\": {\n \"source\": \"nginx\",\n \"extensions\": [\"ra\"]\n },\n \"audio/x-tta\": {\n \"source\": \"apache\"\n },\n \"audio/x-wav\": {\n \"source\": \"apache\",\n \"extensions\": [\"wav\"]\n },\n \"audio/xm\": {\n \"source\": \"apache\",\n \"extensions\": [\"xm\"]\n },\n \"chemical/x-cdx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cdx\"]\n },\n \"chemical/x-cif\": {\n \"source\": \"apache\",\n \"extensions\": [\"cif\"]\n },\n \"chemical/x-cmdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmdf\"]\n },\n \"chemical/x-cml\": {\n \"source\": \"apache\",\n \"extensions\": [\"cml\"]\n },\n \"chemical/x-csml\": {\n \"source\": \"apache\",\n \"extensions\": [\"csml\"]\n },\n \"chemical/x-pdb\": {\n \"source\": \"apache\"\n },\n \"chemical/x-xyz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xyz\"]\n },\n \"font/collection\": {\n \"source\": \"iana\",\n \"extensions\": [\"ttc\"]\n },\n \"font/otf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"otf\"]\n },\n \"font/sfnt\": {\n \"source\": \"iana\"\n },\n \"font/ttf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttf\"]\n },\n \"font/woff\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff\"]\n },\n \"font/woff2\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff2\"]\n },\n \"image/aces\": {\n \"source\": \"iana\",\n \"extensions\": [\"exr\"]\n },\n \"image/apng\": {\n \"compressible\": false,\n \"extensions\": [\"apng\"]\n },\n \"image/avci\": {\n \"source\": \"iana\",\n \"extensions\": [\"avci\"]\n },\n \"image/avcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"avcs\"]\n },\n \"image/avif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"avif\"]\n },\n \"image/bmp\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/cgm\": {\n \"source\": \"iana\",\n \"extensions\": [\"cgm\"]\n },\n \"image/dicom-rle\": {\n \"source\": \"iana\",\n \"extensions\": [\"drle\"]\n },\n \"image/emf\": {\n \"source\": \"iana\",\n \"extensions\": [\"emf\"]\n },\n \"image/fits\": {\n \"source\": \"iana\",\n \"extensions\": [\"fits\"]\n },\n \"image/g3fax\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3\"]\n },\n \"image/gif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gif\"]\n },\n \"image/heic\": {\n \"source\": \"iana\",\n \"extensions\": [\"heic\"]\n },\n \"image/heic-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heics\"]\n },\n \"image/heif\": {\n \"source\": \"iana\",\n \"extensions\": [\"heif\"]\n },\n \"image/heif-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heifs\"]\n },\n \"image/hej2k\": {\n \"source\": \"iana\",\n \"extensions\": [\"hej2\"]\n },\n \"image/hsj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"hsj2\"]\n },\n \"image/ief\": {\n \"source\": \"iana\",\n \"extensions\": [\"ief\"]\n },\n \"image/jls\": {\n \"source\": \"iana\",\n \"extensions\": [\"jls\"]\n },\n \"image/jp2\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jp2\",\"jpg2\"]\n },\n \"image/jpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpeg\",\"jpg\",\"jpe\"]\n },\n \"image/jph\": {\n \"source\": \"iana\",\n \"extensions\": [\"jph\"]\n },\n \"image/jphc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jhc\"]\n },\n \"image/jpm\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpm\"]\n },\n \"image/jpx\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpx\",\"jpf\"]\n },\n \"image/jxr\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxr\"]\n },\n \"image/jxra\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxra\"]\n },\n \"image/jxrs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxrs\"]\n },\n \"image/jxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxs\"]\n },\n \"image/jxsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsc\"]\n },\n \"image/jxsi\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsi\"]\n },\n \"image/jxss\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxss\"]\n },\n \"image/ktx\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx\"]\n },\n \"image/ktx2\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx2\"]\n },\n \"image/naplps\": {\n \"source\": \"iana\"\n },\n \"image/pjpeg\": {\n \"compressible\": false\n },\n \"image/png\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"png\"]\n },\n \"image/prs.btif\": {\n \"source\": \"iana\",\n \"extensions\": [\"btif\"]\n },\n \"image/prs.pti\": {\n \"source\": \"iana\",\n \"extensions\": [\"pti\"]\n },\n \"image/pwg-raster\": {\n \"source\": \"iana\"\n },\n \"image/sgi\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgi\"]\n },\n \"image/svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"svg\",\"svgz\"]\n },\n \"image/t38\": {\n \"source\": \"iana\",\n \"extensions\": [\"t38\"]\n },\n \"image/tiff\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"tif\",\"tiff\"]\n },\n \"image/tiff-fx\": {\n \"source\": \"iana\",\n \"extensions\": [\"tfx\"]\n },\n \"image/vnd.adobe.photoshop\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"psd\"]\n },\n \"image/vnd.airzip.accelerator.azv\": {\n \"source\": \"iana\",\n \"extensions\": [\"azv\"]\n },\n \"image/vnd.cns.inf2\": {\n \"source\": \"iana\"\n },\n \"image/vnd.dece.graphic\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]\n },\n \"image/vnd.djvu\": {\n \"source\": \"iana\",\n \"extensions\": [\"djvu\",\"djv\"]\n },\n \"image/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"image/vnd.dwg\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwg\"]\n },\n \"image/vnd.dxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxf\"]\n },\n \"image/vnd.fastbidsheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fbs\"]\n },\n \"image/vnd.fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"fpx\"]\n },\n \"image/vnd.fst\": {\n \"source\": \"iana\",\n \"extensions\": [\"fst\"]\n },\n \"image/vnd.fujixerox.edmics-mmr\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmr\"]\n },\n \"image/vnd.fujixerox.edmics-rlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"rlc\"]\n },\n \"image/vnd.globalgraphics.pgb\": {\n \"source\": \"iana\"\n },\n \"image/vnd.microsoft.icon\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/vnd.mix\": {\n \"source\": \"iana\"\n },\n \"image/vnd.mozilla.apng\": {\n \"source\": \"iana\"\n },\n \"image/vnd.ms-dds\": {\n \"compressible\": true,\n \"extensions\": [\"dds\"]\n },\n \"image/vnd.ms-modi\": {\n \"source\": \"iana\",\n \"extensions\": [\"mdi\"]\n },\n \"image/vnd.ms-photo\": {\n \"source\": \"apache\",\n \"extensions\": [\"wdp\"]\n },\n \"image/vnd.net-fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"npx\"]\n },\n \"image/vnd.pco.b16\": {\n \"source\": \"iana\",\n \"extensions\": [\"b16\"]\n },\n \"image/vnd.radiance\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealed.png\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.gif\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.jpg\": {\n \"source\": \"iana\"\n },\n \"image/vnd.svf\": {\n \"source\": \"iana\"\n },\n \"image/vnd.tencent.tap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tap\"]\n },\n \"image/vnd.valve.source.texture\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtf\"]\n },\n \"image/vnd.wap.wbmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"wbmp\"]\n },\n \"image/vnd.xiff\": {\n \"source\": \"iana\",\n \"extensions\": [\"xif\"]\n },\n \"image/vnd.zbrush.pcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcx\"]\n },\n \"image/webp\": {\n \"source\": \"apache\",\n \"extensions\": [\"webp\"]\n },\n \"image/wmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmf\"]\n },\n \"image/x-3ds\": {\n \"source\": \"apache\",\n \"extensions\": [\"3ds\"]\n },\n \"image/x-cmu-raster\": {\n \"source\": \"apache\",\n \"extensions\": [\"ras\"]\n },\n \"image/x-cmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmx\"]\n },\n \"image/x-freehand\": {\n \"source\": \"apache\",\n \"extensions\": [\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]\n },\n \"image/x-icon\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/x-jng\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jng\"]\n },\n \"image/x-mrsid-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"sid\"]\n },\n \"image/x-ms-bmp\": {\n \"source\": \"nginx\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/x-pcx\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcx\"]\n },\n \"image/x-pict\": {\n \"source\": \"apache\",\n \"extensions\": [\"pic\",\"pct\"]\n },\n \"image/x-portable-anymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pnm\"]\n },\n \"image/x-portable-bitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pbm\"]\n },\n \"image/x-portable-graymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgm\"]\n },\n \"image/x-portable-pixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"ppm\"]\n },\n \"image/x-rgb\": {\n \"source\": \"apache\",\n \"extensions\": [\"rgb\"]\n },\n \"image/x-tga\": {\n \"source\": \"apache\",\n \"extensions\": [\"tga\"]\n },\n \"image/x-xbitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbm\"]\n },\n \"image/x-xcf\": {\n \"compressible\": false\n },\n \"image/x-xpixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xpm\"]\n },\n \"image/x-xwindowdump\": {\n \"source\": \"apache\",\n \"extensions\": [\"xwd\"]\n },\n \"message/cpim\": {\n \"source\": \"iana\"\n },\n \"message/delivery-status\": {\n \"source\": \"iana\"\n },\n \"message/disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\n \"disposition-notification\"\n ]\n },\n \"message/external-body\": {\n \"source\": \"iana\"\n },\n \"message/feedback-report\": {\n \"source\": \"iana\"\n },\n \"message/global\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8msg\"]\n },\n \"message/global-delivery-status\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8dsn\"]\n },\n \"message/global-disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8mdn\"]\n },\n \"message/global-headers\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8hdr\"]\n },\n \"message/http\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/imdn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"message/news\": {\n \"source\": \"iana\"\n },\n \"message/partial\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/rfc822\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eml\",\"mime\"]\n },\n \"message/s-http\": {\n \"source\": \"iana\"\n },\n \"message/sip\": {\n \"source\": \"iana\"\n },\n \"message/sipfrag\": {\n \"source\": \"iana\"\n },\n \"message/tracking-status\": {\n \"source\": \"iana\"\n },\n \"message/vnd.si.simp\": {\n \"source\": \"iana\"\n },\n \"message/vnd.wfa.wsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wsc\"]\n },\n \"model/3mf\": {\n \"source\": \"iana\",\n \"extensions\": [\"3mf\"]\n },\n \"model/e57\": {\n \"source\": \"iana\"\n },\n \"model/gltf+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gltf\"]\n },\n \"model/gltf-binary\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"glb\"]\n },\n \"model/iges\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"igs\",\"iges\"]\n },\n \"model/mesh\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"msh\",\"mesh\",\"silo\"]\n },\n \"model/mtl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mtl\"]\n },\n \"model/obj\": {\n \"source\": \"iana\",\n \"extensions\": [\"obj\"]\n },\n \"model/step\": {\n \"source\": \"iana\"\n },\n \"model/step+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"stpx\"]\n },\n \"model/step+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpz\"]\n },\n \"model/step-xml+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpxz\"]\n },\n \"model/stl\": {\n \"source\": \"iana\",\n \"extensions\": [\"stl\"]\n },\n \"model/vnd.collada+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dae\"]\n },\n \"model/vnd.dwf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwf\"]\n },\n \"model/vnd.flatland.3dml\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"gdl\"]\n },\n \"model/vnd.gs-gdl\": {\n \"source\": \"apache\"\n },\n \"model/vnd.gs.gdl\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gtw\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtw\"]\n },\n \"model/vnd.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"model/vnd.mts\": {\n \"source\": \"iana\",\n \"extensions\": [\"mts\"]\n },\n \"model/vnd.opengex\": {\n \"source\": \"iana\",\n \"extensions\": [\"ogex\"]\n },\n \"model/vnd.parasolid.transmit.binary\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_b\"]\n },\n \"model/vnd.parasolid.transmit.text\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_t\"]\n },\n \"model/vnd.pytha.pyox\": {\n \"source\": \"iana\"\n },\n \"model/vnd.rosette.annotated-data-model\": {\n \"source\": \"iana\"\n },\n \"model/vnd.sap.vds\": {\n \"source\": \"iana\",\n \"extensions\": [\"vds\"]\n },\n \"model/vnd.usdz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"usdz\"]\n },\n \"model/vnd.valve.source.compiled-map\": {\n \"source\": \"iana\",\n \"extensions\": [\"bsp\"]\n },\n \"model/vnd.vtu\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtu\"]\n },\n \"model/vrml\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"wrl\",\"vrml\"]\n },\n \"model/x3d+binary\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3db\",\"x3dbz\"]\n },\n \"model/x3d+fastinfoset\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3db\"]\n },\n \"model/x3d+vrml\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3dv\",\"x3dvz\"]\n },\n \"model/x3d+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"x3d\",\"x3dz\"]\n },\n \"model/x3d-vrml\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3dv\"]\n },\n \"multipart/alternative\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/appledouble\": {\n \"source\": \"iana\"\n },\n \"multipart/byteranges\": {\n \"source\": \"iana\"\n },\n \"multipart/digest\": {\n \"source\": \"iana\"\n },\n \"multipart/encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/form-data\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/header-set\": {\n \"source\": \"iana\"\n },\n \"multipart/mixed\": {\n \"source\": \"iana\"\n },\n \"multipart/multilingual\": {\n \"source\": \"iana\"\n },\n \"multipart/parallel\": {\n \"source\": \"iana\"\n },\n \"multipart/related\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/report\": {\n \"source\": \"iana\"\n },\n \"multipart/signed\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/vnd.bint.med-plus\": {\n \"source\": \"iana\"\n },\n \"multipart/voice-message\": {\n \"source\": \"iana\"\n },\n \"multipart/x-mixed-replace\": {\n \"source\": \"iana\"\n },\n \"text/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"text/cache-manifest\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"appcache\",\"manifest\"]\n },\n \"text/calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"ics\",\"ifb\"]\n },\n \"text/calender\": {\n \"compressible\": true\n },\n \"text/cmd\": {\n \"compressible\": true\n },\n \"text/coffeescript\": {\n \"extensions\": [\"coffee\",\"litcoffee\"]\n },\n \"text/cql\": {\n \"source\": \"iana\"\n },\n \"text/cql-expression\": {\n \"source\": \"iana\"\n },\n \"text/cql-identifier\": {\n \"source\": \"iana\"\n },\n \"text/css\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"css\"]\n },\n \"text/csv\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csv\"]\n },\n \"text/csv-schema\": {\n \"source\": \"iana\"\n },\n \"text/directory\": {\n \"source\": \"iana\"\n },\n \"text/dns\": {\n \"source\": \"iana\"\n },\n \"text/ecmascript\": {\n \"source\": \"iana\"\n },\n \"text/encaprtp\": {\n \"source\": \"iana\"\n },\n \"text/enriched\": {\n \"source\": \"iana\"\n },\n \"text/fhirpath\": {\n \"source\": \"iana\"\n },\n \"text/flexfec\": {\n \"source\": \"iana\"\n },\n \"text/fwdred\": {\n \"source\": \"iana\"\n },\n \"text/gff3\": {\n \"source\": \"iana\"\n },\n \"text/grammar-ref-list\": {\n \"source\": \"iana\"\n },\n \"text/html\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"html\",\"htm\",\"shtml\"]\n },\n \"text/jade\": {\n \"extensions\": [\"jade\"]\n },\n \"text/javascript\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"text/jcr-cnd\": {\n \"source\": \"iana\"\n },\n \"text/jsx\": {\n \"compressible\": true,\n \"extensions\": [\"jsx\"]\n },\n \"text/less\": {\n \"compressible\": true,\n \"extensions\": [\"less\"]\n },\n \"text/markdown\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"markdown\",\"md\"]\n },\n \"text/mathml\": {\n \"source\": \"nginx\",\n \"extensions\": [\"mml\"]\n },\n \"text/mdx\": {\n \"compressible\": true,\n \"extensions\": [\"mdx\"]\n },\n \"text/mizar\": {\n \"source\": \"iana\"\n },\n \"text/n3\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"n3\"]\n },\n \"text/parameters\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/parityfec\": {\n \"source\": \"iana\"\n },\n \"text/plain\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]\n },\n \"text/provenance-notation\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/prs.fallenstein.rst\": {\n \"source\": \"iana\"\n },\n \"text/prs.lines.tag\": {\n \"source\": \"iana\",\n \"extensions\": [\"dsc\"]\n },\n \"text/prs.prop.logic\": {\n \"source\": \"iana\"\n },\n \"text/raptorfec\": {\n \"source\": \"iana\"\n },\n \"text/red\": {\n \"source\": \"iana\"\n },\n \"text/rfc822-headers\": {\n \"source\": \"iana\"\n },\n \"text/richtext\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtx\"]\n },\n \"text/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"text/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"text/rtploopback\": {\n \"source\": \"iana\"\n },\n \"text/rtx\": {\n \"source\": \"iana\"\n },\n \"text/sgml\": {\n \"source\": \"iana\",\n \"extensions\": [\"sgml\",\"sgm\"]\n },\n \"text/shaclc\": {\n \"source\": \"iana\"\n },\n \"text/shex\": {\n \"source\": \"iana\",\n \"extensions\": [\"shex\"]\n },\n \"text/slim\": {\n \"extensions\": [\"slim\",\"slm\"]\n },\n \"text/spdx\": {\n \"source\": \"iana\",\n \"extensions\": [\"spdx\"]\n },\n \"text/strings\": {\n \"source\": \"iana\"\n },\n \"text/stylus\": {\n \"extensions\": [\"stylus\",\"styl\"]\n },\n \"text/t140\": {\n \"source\": \"iana\"\n },\n \"text/tab-separated-values\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tsv\"]\n },\n \"text/troff\": {\n \"source\": \"iana\",\n \"extensions\": [\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]\n },\n \"text/turtle\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"ttl\"]\n },\n \"text/ulpfec\": {\n \"source\": \"iana\"\n },\n \"text/uri-list\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uri\",\"uris\",\"urls\"]\n },\n \"text/vcard\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vcard\"]\n },\n \"text/vnd.a\": {\n \"source\": \"iana\"\n },\n \"text/vnd.abc\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ascii-art\": {\n \"source\": \"iana\"\n },\n \"text/vnd.curl\": {\n \"source\": \"iana\",\n \"extensions\": [\"curl\"]\n },\n \"text/vnd.curl.dcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"dcurl\"]\n },\n \"text/vnd.curl.mcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"mcurl\"]\n },\n \"text/vnd.curl.scurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"scurl\"]\n },\n \"text/vnd.debian.copyright\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.dmclientscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"text/vnd.esmertec.theme-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.familysearch.gedcom\": {\n \"source\": \"iana\",\n \"extensions\": [\"ged\"]\n },\n \"text/vnd.ficlab.flt\": {\n \"source\": \"iana\"\n },\n \"text/vnd.fly\": {\n \"source\": \"iana\",\n \"extensions\": [\"fly\"]\n },\n \"text/vnd.fmi.flexstor\": {\n \"source\": \"iana\",\n \"extensions\": [\"flx\"]\n },\n \"text/vnd.gml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.graphviz\": {\n \"source\": \"iana\",\n \"extensions\": [\"gv\"]\n },\n \"text/vnd.hans\": {\n \"source\": \"iana\"\n },\n \"text/vnd.hgl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.in3d.3dml\": {\n \"source\": \"iana\",\n \"extensions\": [\"3dml\"]\n },\n \"text/vnd.in3d.spot\": {\n \"source\": \"iana\",\n \"extensions\": [\"spot\"]\n },\n \"text/vnd.iptc.newsml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.iptc.nitf\": {\n \"source\": \"iana\"\n },\n \"text/vnd.latex-z\": {\n \"source\": \"iana\"\n },\n \"text/vnd.motorola.reflex\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ms-mediapackage\": {\n \"source\": \"iana\"\n },\n \"text/vnd.net2phone.commcenter.command\": {\n \"source\": \"iana\"\n },\n \"text/vnd.radisys.msml-basic-layout\": {\n \"source\": \"iana\"\n },\n \"text/vnd.senx.warpscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.si.uricatalogue\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sosi\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sun.j2me.app-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"jad\"]\n },\n \"text/vnd.trolltech.linguist\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.wap.si\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.sl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.wml\": {\n \"source\": \"iana\",\n \"extensions\": [\"wml\"]\n },\n \"text/vnd.wap.wmlscript\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmls\"]\n },\n \"text/vtt\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"vtt\"]\n },\n \"text/x-asm\": {\n \"source\": \"apache\",\n \"extensions\": [\"s\",\"asm\"]\n },\n \"text/x-c\": {\n \"source\": \"apache\",\n \"extensions\": [\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]\n },\n \"text/x-component\": {\n \"source\": \"nginx\",\n \"extensions\": [\"htc\"]\n },\n \"text/x-fortran\": {\n \"source\": \"apache\",\n \"extensions\": [\"f\",\"for\",\"f77\",\"f90\"]\n },\n \"text/x-gwt-rpc\": {\n \"compressible\": true\n },\n \"text/x-handlebars-template\": {\n \"extensions\": [\"hbs\"]\n },\n \"text/x-java-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"java\"]\n },\n \"text/x-jquery-tmpl\": {\n \"compressible\": true\n },\n \"text/x-lua\": {\n \"extensions\": [\"lua\"]\n },\n \"text/x-markdown\": {\n \"compressible\": true,\n \"extensions\": [\"mkd\"]\n },\n \"text/x-nfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"nfo\"]\n },\n \"text/x-opml\": {\n \"source\": \"apache\",\n \"extensions\": [\"opml\"]\n },\n \"text/x-org\": {\n \"compressible\": true,\n \"extensions\": [\"org\"]\n },\n \"text/x-pascal\": {\n \"source\": \"apache\",\n \"extensions\": [\"p\",\"pas\"]\n },\n \"text/x-processing\": {\n \"compressible\": true,\n \"extensions\": [\"pde\"]\n },\n \"text/x-sass\": {\n \"extensions\": [\"sass\"]\n },\n \"text/x-scss\": {\n \"extensions\": [\"scss\"]\n },\n \"text/x-setext\": {\n \"source\": \"apache\",\n \"extensions\": [\"etx\"]\n },\n \"text/x-sfv\": {\n \"source\": \"apache\",\n \"extensions\": [\"sfv\"]\n },\n \"text/x-suse-ymp\": {\n \"compressible\": true,\n \"extensions\": [\"ymp\"]\n },\n \"text/x-uuencode\": {\n \"source\": \"apache\",\n \"extensions\": [\"uu\"]\n },\n \"text/x-vcalendar\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcs\"]\n },\n \"text/x-vcard\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcf\"]\n },\n \"text/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\"]\n },\n \"text/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"text/yaml\": {\n \"compressible\": true,\n \"extensions\": [\"yaml\",\"yml\"]\n },\n \"video/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"video/3gpp\": {\n \"source\": \"iana\",\n \"extensions\": [\"3gp\",\"3gpp\"]\n },\n \"video/3gpp-tt\": {\n \"source\": \"iana\"\n },\n \"video/3gpp2\": {\n \"source\": \"iana\",\n \"extensions\": [\"3g2\"]\n },\n \"video/av1\": {\n \"source\": \"iana\"\n },\n \"video/bmpeg\": {\n \"source\": \"iana\"\n },\n \"video/bt656\": {\n \"source\": \"iana\"\n },\n \"video/celb\": {\n \"source\": \"iana\"\n },\n \"video/dv\": {\n \"source\": \"iana\"\n },\n \"video/encaprtp\": {\n \"source\": \"iana\"\n },\n \"video/ffv1\": {\n \"source\": \"iana\"\n },\n \"video/flexfec\": {\n \"source\": \"iana\"\n },\n \"video/h261\": {\n \"source\": \"iana\",\n \"extensions\": [\"h261\"]\n },\n \"video/h263\": {\n \"source\": \"iana\",\n \"extensions\": [\"h263\"]\n },\n \"video/h263-1998\": {\n \"source\": \"iana\"\n },\n \"video/h263-2000\": {\n \"source\": \"iana\"\n },\n \"video/h264\": {\n \"source\": \"iana\",\n \"extensions\": [\"h264\"]\n },\n \"video/h264-rcdo\": {\n \"source\": \"iana\"\n },\n \"video/h264-svc\": {\n \"source\": \"iana\"\n },\n \"video/h265\": {\n \"source\": \"iana\"\n },\n \"video/iso.segment\": {\n \"source\": \"iana\",\n \"extensions\": [\"m4s\"]\n },\n \"video/jpeg\": {\n \"source\": \"iana\",\n \"extensions\": [\"jpgv\"]\n },\n \"video/jpeg2000\": {\n \"source\": \"iana\"\n },\n \"video/jpm\": {\n \"source\": \"apache\",\n \"extensions\": [\"jpm\",\"jpgm\"]\n },\n \"video/jxsv\": {\n \"source\": \"iana\"\n },\n \"video/mj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"mj2\",\"mjp2\"]\n },\n \"video/mp1s\": {\n \"source\": \"iana\"\n },\n \"video/mp2p\": {\n \"source\": \"iana\"\n },\n \"video/mp2t\": {\n \"source\": \"iana\",\n \"extensions\": [\"ts\"]\n },\n \"video/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mp4\",\"mp4v\",\"mpg4\"]\n },\n \"video/mp4v-es\": {\n \"source\": \"iana\"\n },\n \"video/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]\n },\n \"video/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"video/mpv\": {\n \"source\": \"iana\"\n },\n \"video/nv\": {\n \"source\": \"iana\"\n },\n \"video/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogv\"]\n },\n \"video/parityfec\": {\n \"source\": \"iana\"\n },\n \"video/pointer\": {\n \"source\": \"iana\"\n },\n \"video/quicktime\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"qt\",\"mov\"]\n },\n \"video/raptorfec\": {\n \"source\": \"iana\"\n },\n \"video/raw\": {\n \"source\": \"iana\"\n },\n \"video/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"video/rtploopback\": {\n \"source\": \"iana\"\n },\n \"video/rtx\": {\n \"source\": \"iana\"\n },\n \"video/scip\": {\n \"source\": \"iana\"\n },\n \"video/smpte291\": {\n \"source\": \"iana\"\n },\n \"video/smpte292m\": {\n \"source\": \"iana\"\n },\n \"video/ulpfec\": {\n \"source\": \"iana\"\n },\n \"video/vc1\": {\n \"source\": \"iana\"\n },\n \"video/vc2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.cctv\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvh\",\"uvvh\"]\n },\n \"video/vnd.dece.mobile\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvm\",\"uvvm\"]\n },\n \"video/vnd.dece.mp4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.pd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvp\",\"uvvp\"]\n },\n \"video/vnd.dece.sd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvs\",\"uvvs\"]\n },\n \"video/vnd.dece.video\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvv\",\"uvvv\"]\n },\n \"video/vnd.directv.mpeg\": {\n \"source\": \"iana\"\n },\n \"video/vnd.directv.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dlna.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dvb.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"dvb\"]\n },\n \"video/vnd.fvt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fvt\"]\n },\n \"video/vnd.hns.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsavc\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsmpeg2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.videop\": {\n \"source\": \"iana\"\n },\n \"video/vnd.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxu\",\"m4u\"]\n },\n \"video/vnd.ms-playready.media.pyv\": {\n \"source\": \"iana\",\n \"extensions\": [\"pyv\"]\n },\n \"video/vnd.nokia.interleaved-multimedia\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.mp4vr\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.videovoip\": {\n \"source\": \"iana\"\n },\n \"video/vnd.objectvideo\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.bink\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.smacker\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg1\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.swf\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealedmedia.softseal.mov\": {\n \"source\": \"iana\"\n },\n \"video/vnd.uvvu.mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvu\",\"uvvu\"]\n },\n \"video/vnd.vivo\": {\n \"source\": \"iana\",\n \"extensions\": [\"viv\"]\n },\n \"video/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"video/vp8\": {\n \"source\": \"iana\"\n },\n \"video/vp9\": {\n \"source\": \"iana\"\n },\n \"video/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"webm\"]\n },\n \"video/x-f4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"f4v\"]\n },\n \"video/x-fli\": {\n \"source\": \"apache\",\n \"extensions\": [\"fli\"]\n },\n \"video/x-flv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"flv\"]\n },\n \"video/x-m4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"m4v\"]\n },\n \"video/x-matroska\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"mkv\",\"mk3d\",\"mks\"]\n },\n \"video/x-mng\": {\n \"source\": \"apache\",\n \"extensions\": [\"mng\"]\n },\n \"video/x-ms-asf\": {\n \"source\": \"apache\",\n \"extensions\": [\"asf\",\"asx\"]\n },\n \"video/x-ms-vob\": {\n \"source\": \"apache\",\n \"extensions\": [\"vob\"]\n },\n \"video/x-ms-wm\": {\n \"source\": \"apache\",\n \"extensions\": [\"wm\"]\n },\n \"video/x-ms-wmv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"wmv\"]\n },\n \"video/x-ms-wmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmx\"]\n },\n \"video/x-ms-wvx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wvx\"]\n },\n \"video/x-msvideo\": {\n \"source\": \"apache\",\n \"extensions\": [\"avi\"]\n },\n \"video/x-sgi-movie\": {\n \"source\": \"apache\",\n \"extensions\": [\"movie\"]\n },\n \"video/x-smv\": {\n \"source\": \"apache\",\n \"extensions\": [\"smv\"]\n },\n \"x-conference/x-cooltalk\": {\n \"source\": \"apache\",\n \"extensions\": [\"ice\"]\n },\n \"x-shader/x-fragment\": {\n \"compressible\": true\n },\n \"x-shader/x-vertex\": {\n \"compressible\": true\n }\n}\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/mime-types/index.js b/government-mini-program/miniprogram_npm/mime-types/index.js deleted file mode 100644 index d0f842c..0000000 --- a/government-mini-program/miniprogram_npm/mime-types/index.js +++ /dev/null @@ -1,201 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322128, function(require, module, exports) { -/*! - * mime-types - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - - - -/** - * Module dependencies. - * @private - */ - -var db = require('mime-db') -var extname = require('path').extname - -/** - * Module variables. - * @private - */ - -var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/ -var TEXT_TYPE_REGEXP = /^text\//i - -/** - * Module exports. - * @public - */ - -exports.charset = charset -exports.charsets = { lookup: charset } -exports.contentType = contentType -exports.extension = extension -exports.extensions = Object.create(null) -exports.lookup = lookup -exports.types = Object.create(null) - -// Populate the extensions/types maps -populateMaps(exports.extensions, exports.types) - -/** - * Get the default charset for a MIME type. - * - * @param {string} type - * @return {boolean|string} - */ - -function charset (type) { - if (!type || typeof type !== 'string') { - return false - } - - // TODO: use media-typer - var match = EXTRACT_TYPE_REGEXP.exec(type) - var mime = match && db[match[1].toLowerCase()] - - if (mime && mime.charset) { - return mime.charset - } - - // default text/* to utf-8 - if (match && TEXT_TYPE_REGEXP.test(match[1])) { - return 'UTF-8' - } - - return false -} - -/** - * Create a full Content-Type header given a MIME type or extension. - * - * @param {string} str - * @return {boolean|string} - */ - -function contentType (str) { - // TODO: should this even be in this module? - if (!str || typeof str !== 'string') { - return false - } - - var mime = str.indexOf('/') === -1 - ? exports.lookup(str) - : str - - if (!mime) { - return false - } - - // TODO: use content-type or other module - if (mime.indexOf('charset') === -1) { - var charset = exports.charset(mime) - if (charset) mime += '; charset=' + charset.toLowerCase() - } - - return mime -} - -/** - * Get the default extension for a MIME type. - * - * @param {string} type - * @return {boolean|string} - */ - -function extension (type) { - if (!type || typeof type !== 'string') { - return false - } - - // TODO: use media-typer - var match = EXTRACT_TYPE_REGEXP.exec(type) - - // get extensions - var exts = match && exports.extensions[match[1].toLowerCase()] - - if (!exts || !exts.length) { - return false - } - - return exts[0] -} - -/** - * Lookup the MIME type for a file path/extension. - * - * @param {string} path - * @return {boolean|string} - */ - -function lookup (path) { - if (!path || typeof path !== 'string') { - return false - } - - // get the extension ("ext" or ".ext" or full path) - var extension = extname('x.' + path) - .toLowerCase() - .substr(1) - - if (!extension) { - return false - } - - return exports.types[extension] || false -} - -/** - * Populate the extensions and types maps. - * @private - */ - -function populateMaps (extensions, types) { - // source preference (least -> most) - var preference = ['nginx', 'apache', undefined, 'iana'] - - Object.keys(db).forEach(function forEachMimeType (type) { - var mime = db[type] - var exts = mime.extensions - - if (!exts || !exts.length) { - return - } - - // mime -> extensions - extensions[type] = exts - - // extension -> mime - for (var i = 0; i < exts.length; i++) { - var extension = exts[i] - - if (types[extension]) { - var from = preference.indexOf(db[types[extension]].source) - var to = preference.indexOf(mime.source) - - if (types[extension] !== 'application/octet-stream' && - (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) { - // skip the remapping - continue - } - } - - // set the extension -> mime - types[extension] = type - } - }) -} - -}, function(modId) {var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322128); -})() -//miniprogram-npm-outsideDeps=["mime-db","path"] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/mime-types/index.js.map b/government-mini-program/miniprogram_npm/mime-types/index.js.map deleted file mode 100644 index f247acc..0000000 --- a/government-mini-program/miniprogram_npm/mime-types/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/vue-router/index.js b/government-mini-program/miniprogram_npm/vue-router/index.js deleted file mode 100644 index a610915..0000000 --- a/government-mini-program/miniprogram_npm/vue-router/index.js +++ /dev/null @@ -1,3172 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322129, function(require, module, exports) { -/*! - * vue-router v3.6.5 - * (c) 2022 Evan You - * @license MIT - */ - - -/* */ - -function assert (condition, message) { - if (!condition) { - throw new Error(("[vue-router] " + message)) - } -} - -function warn (condition, message) { - if (!condition) { - typeof console !== 'undefined' && console.warn(("[vue-router] " + message)); - } -} - -function extend (a, b) { - for (var key in b) { - a[key] = b[key]; - } - return a -} - -/* */ - -var encodeReserveRE = /[!'()*]/g; -var encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); }; -var commaRE = /%2C/g; - -// fixed encodeURIComponent which is more conformant to RFC3986: -// - escapes [!'()*] -// - preserve commas -var encode = function (str) { return encodeURIComponent(str) - .replace(encodeReserveRE, encodeReserveReplacer) - .replace(commaRE, ','); }; - -function decode (str) { - try { - return decodeURIComponent(str) - } catch (err) { - if (process.env.NODE_ENV !== 'production') { - warn(false, ("Error decoding \"" + str + "\". Leaving it intact.")); - } - } - return str -} - -function resolveQuery ( - query, - extraQuery, - _parseQuery -) { - if ( extraQuery === void 0 ) extraQuery = {}; - - var parse = _parseQuery || parseQuery; - var parsedQuery; - try { - parsedQuery = parse(query || ''); - } catch (e) { - process.env.NODE_ENV !== 'production' && warn(false, e.message); - parsedQuery = {}; - } - for (var key in extraQuery) { - var value = extraQuery[key]; - parsedQuery[key] = Array.isArray(value) - ? value.map(castQueryParamValue) - : castQueryParamValue(value); - } - return parsedQuery -} - -var castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); }; - -function parseQuery (query) { - var res = {}; - - query = query.trim().replace(/^(\?|#|&)/, ''); - - if (!query) { - return res - } - - query.split('&').forEach(function (param) { - var parts = param.replace(/\+/g, ' ').split('='); - var key = decode(parts.shift()); - var val = parts.length > 0 ? decode(parts.join('=')) : null; - - if (res[key] === undefined) { - res[key] = val; - } else if (Array.isArray(res[key])) { - res[key].push(val); - } else { - res[key] = [res[key], val]; - } - }); - - return res -} - -function stringifyQuery (obj) { - var res = obj - ? Object.keys(obj) - .map(function (key) { - var val = obj[key]; - - if (val === undefined) { - return '' - } - - if (val === null) { - return encode(key) - } - - if (Array.isArray(val)) { - var result = []; - val.forEach(function (val2) { - if (val2 === undefined) { - return - } - if (val2 === null) { - result.push(encode(key)); - } else { - result.push(encode(key) + '=' + encode(val2)); - } - }); - return result.join('&') - } - - return encode(key) + '=' + encode(val) - }) - .filter(function (x) { return x.length > 0; }) - .join('&') - : null; - return res ? ("?" + res) : '' -} - -/* */ - -var trailingSlashRE = /\/?$/; - -function createRoute ( - record, - location, - redirectedFrom, - router -) { - var stringifyQuery = router && router.options.stringifyQuery; - - var query = location.query || {}; - try { - query = clone(query); - } catch (e) {} - - var route = { - name: location.name || (record && record.name), - meta: (record && record.meta) || {}, - path: location.path || '/', - hash: location.hash || '', - query: query, - params: location.params || {}, - fullPath: getFullPath(location, stringifyQuery), - matched: record ? formatMatch(record) : [] - }; - if (redirectedFrom) { - route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery); - } - return Object.freeze(route) -} - -function clone (value) { - if (Array.isArray(value)) { - return value.map(clone) - } else if (value && typeof value === 'object') { - var res = {}; - for (var key in value) { - res[key] = clone(value[key]); - } - return res - } else { - return value - } -} - -// the starting route that represents the initial state -var START = createRoute(null, { - path: '/' -}); - -function formatMatch (record) { - var res = []; - while (record) { - res.unshift(record); - record = record.parent; - } - return res -} - -function getFullPath ( - ref, - _stringifyQuery -) { - var path = ref.path; - var query = ref.query; if ( query === void 0 ) query = {}; - var hash = ref.hash; if ( hash === void 0 ) hash = ''; - - var stringify = _stringifyQuery || stringifyQuery; - return (path || '/') + stringify(query) + hash -} - -function isSameRoute (a, b, onlyPath) { - if (b === START) { - return a === b - } else if (!b) { - return false - } else if (a.path && b.path) { - return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath || - a.hash === b.hash && - isObjectEqual(a.query, b.query)) - } else if (a.name && b.name) { - return ( - a.name === b.name && - (onlyPath || ( - a.hash === b.hash && - isObjectEqual(a.query, b.query) && - isObjectEqual(a.params, b.params)) - ) - ) - } else { - return false - } -} - -function isObjectEqual (a, b) { - if ( a === void 0 ) a = {}; - if ( b === void 0 ) b = {}; - - // handle null value #1566 - if (!a || !b) { return a === b } - var aKeys = Object.keys(a).sort(); - var bKeys = Object.keys(b).sort(); - if (aKeys.length !== bKeys.length) { - return false - } - return aKeys.every(function (key, i) { - var aVal = a[key]; - var bKey = bKeys[i]; - if (bKey !== key) { return false } - var bVal = b[key]; - // query values can be null and undefined - if (aVal == null || bVal == null) { return aVal === bVal } - // check nested equality - if (typeof aVal === 'object' && typeof bVal === 'object') { - return isObjectEqual(aVal, bVal) - } - return String(aVal) === String(bVal) - }) -} - -function isIncludedRoute (current, target) { - return ( - current.path.replace(trailingSlashRE, '/').indexOf( - target.path.replace(trailingSlashRE, '/') - ) === 0 && - (!target.hash || current.hash === target.hash) && - queryIncludes(current.query, target.query) - ) -} - -function queryIncludes (current, target) { - for (var key in target) { - if (!(key in current)) { - return false - } - } - return true -} - -function handleRouteEntered (route) { - for (var i = 0; i < route.matched.length; i++) { - var record = route.matched[i]; - for (var name in record.instances) { - var instance = record.instances[name]; - var cbs = record.enteredCbs[name]; - if (!instance || !cbs) { continue } - delete record.enteredCbs[name]; - for (var i$1 = 0; i$1 < cbs.length; i$1++) { - if (!instance._isBeingDestroyed) { cbs[i$1](instance); } - } - } - } -} - -var View = { - name: 'RouterView', - functional: true, - props: { - name: { - type: String, - default: 'default' - } - }, - render: function render (_, ref) { - var props = ref.props; - var children = ref.children; - var parent = ref.parent; - var data = ref.data; - - // used by devtools to display a router-view badge - data.routerView = true; - - // directly use parent context's createElement() function - // so that components rendered by router-view can resolve named slots - var h = parent.$createElement; - var name = props.name; - var route = parent.$route; - var cache = parent._routerViewCache || (parent._routerViewCache = {}); - - // determine current view depth, also check to see if the tree - // has been toggled inactive but kept-alive. - var depth = 0; - var inactive = false; - while (parent && parent._routerRoot !== parent) { - var vnodeData = parent.$vnode ? parent.$vnode.data : {}; - if (vnodeData.routerView) { - depth++; - } - if (vnodeData.keepAlive && parent._directInactive && parent._inactive) { - inactive = true; - } - parent = parent.$parent; - } - data.routerViewDepth = depth; - - // render previous view if the tree is inactive and kept-alive - if (inactive) { - var cachedData = cache[name]; - var cachedComponent = cachedData && cachedData.component; - if (cachedComponent) { - // #2301 - // pass props - if (cachedData.configProps) { - fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps); - } - return h(cachedComponent, data, children) - } else { - // render previous empty view - return h() - } - } - - var matched = route.matched[depth]; - var component = matched && matched.components[name]; - - // render empty node if no matched route or no config component - if (!matched || !component) { - cache[name] = null; - return h() - } - - // cache component - cache[name] = { component: component }; - - // attach instance registration hook - // this will be called in the instance's injected lifecycle hooks - data.registerRouteInstance = function (vm, val) { - // val could be undefined for unregistration - var current = matched.instances[name]; - if ( - (val && current !== vm) || - (!val && current === vm) - ) { - matched.instances[name] = val; - } - } - - // also register instance in prepatch hook - // in case the same component instance is reused across different routes - ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) { - matched.instances[name] = vnode.componentInstance; - }; - - // register instance in init hook - // in case kept-alive component be actived when routes changed - data.hook.init = function (vnode) { - if (vnode.data.keepAlive && - vnode.componentInstance && - vnode.componentInstance !== matched.instances[name] - ) { - matched.instances[name] = vnode.componentInstance; - } - - // if the route transition has already been confirmed then we weren't - // able to call the cbs during confirmation as the component was not - // registered yet, so we call it here. - handleRouteEntered(route); - }; - - var configProps = matched.props && matched.props[name]; - // save route and configProps in cache - if (configProps) { - extend(cache[name], { - route: route, - configProps: configProps - }); - fillPropsinData(component, data, route, configProps); - } - - return h(component, data, children) - } -}; - -function fillPropsinData (component, data, route, configProps) { - // resolve props - var propsToPass = data.props = resolveProps(route, configProps); - if (propsToPass) { - // clone to prevent mutation - propsToPass = data.props = extend({}, propsToPass); - // pass non-declared props as attrs - var attrs = data.attrs = data.attrs || {}; - for (var key in propsToPass) { - if (!component.props || !(key in component.props)) { - attrs[key] = propsToPass[key]; - delete propsToPass[key]; - } - } - } -} - -function resolveProps (route, config) { - switch (typeof config) { - case 'undefined': - return - case 'object': - return config - case 'function': - return config(route) - case 'boolean': - return config ? route.params : undefined - default: - if (process.env.NODE_ENV !== 'production') { - warn( - false, - "props in \"" + (route.path) + "\" is a " + (typeof config) + ", " + - "expecting an object, function or boolean." - ); - } - } -} - -/* */ - -function resolvePath ( - relative, - base, - append -) { - var firstChar = relative.charAt(0); - if (firstChar === '/') { - return relative - } - - if (firstChar === '?' || firstChar === '#') { - return base + relative - } - - var stack = base.split('/'); - - // remove trailing segment if: - // - not appending - // - appending to trailing slash (last segment is empty) - if (!append || !stack[stack.length - 1]) { - stack.pop(); - } - - // resolve relative path - var segments = relative.replace(/^\//, '').split('/'); - for (var i = 0; i < segments.length; i++) { - var segment = segments[i]; - if (segment === '..') { - stack.pop(); - } else if (segment !== '.') { - stack.push(segment); - } - } - - // ensure leading slash - if (stack[0] !== '') { - stack.unshift(''); - } - - return stack.join('/') -} - -function parsePath (path) { - var hash = ''; - var query = ''; - - var hashIndex = path.indexOf('#'); - if (hashIndex >= 0) { - hash = path.slice(hashIndex); - path = path.slice(0, hashIndex); - } - - var queryIndex = path.indexOf('?'); - if (queryIndex >= 0) { - query = path.slice(queryIndex + 1); - path = path.slice(0, queryIndex); - } - - return { - path: path, - query: query, - hash: hash - } -} - -function cleanPath (path) { - return path.replace(/\/(?:\s*\/)+/g, '/') -} - -var isarray = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; -}; - -/** - * Expose `pathToRegexp`. - */ -var pathToRegexp_1 = pathToRegexp; -var parse_1 = parse; -var compile_1 = compile; -var tokensToFunction_1 = tokensToFunction; -var tokensToRegExp_1 = tokensToRegExp; - -/** - * The main path matching regexp utility. - * - * @type {RegExp} - */ -var PATH_REGEXP = new RegExp([ - // Match escaped characters that would otherwise appear in future matches. - // This allows the user to escape special characters that won't transform. - '(\\\\.)', - // Match Express-style parameters and un-named parameters with a prefix - // and optional suffixes. Matches appear as: - // - // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined] - // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined, undefined] - // "/*" => ["/", undefined, undefined, undefined, undefined, "*"] - '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))' -].join('|'), 'g'); - -/** - * Parse a string for the raw tokens. - * - * @param {string} str - * @param {Object=} options - * @return {!Array} - */ -function parse (str, options) { - var tokens = []; - var key = 0; - var index = 0; - var path = ''; - var defaultDelimiter = options && options.delimiter || '/'; - var res; - - while ((res = PATH_REGEXP.exec(str)) != null) { - var m = res[0]; - var escaped = res[1]; - var offset = res.index; - path += str.slice(index, offset); - index = offset + m.length; - - // Ignore already escaped sequences. - if (escaped) { - path += escaped[1]; - continue - } - - var next = str[index]; - var prefix = res[2]; - var name = res[3]; - var capture = res[4]; - var group = res[5]; - var modifier = res[6]; - var asterisk = res[7]; - - // Push the current path onto the tokens. - if (path) { - tokens.push(path); - path = ''; - } - - var partial = prefix != null && next != null && next !== prefix; - var repeat = modifier === '+' || modifier === '*'; - var optional = modifier === '?' || modifier === '*'; - var delimiter = res[2] || defaultDelimiter; - var pattern = capture || group; - - tokens.push({ - name: name || key++, - prefix: prefix || '', - delimiter: delimiter, - optional: optional, - repeat: repeat, - partial: partial, - asterisk: !!asterisk, - pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?') - }); - } - - // Match any characters still remaining. - if (index < str.length) { - path += str.substr(index); - } - - // If the path exists, push it onto the end. - if (path) { - tokens.push(path); - } - - return tokens -} - -/** - * Compile a string to a template function for the path. - * - * @param {string} str - * @param {Object=} options - * @return {!function(Object=, Object=)} - */ -function compile (str, options) { - return tokensToFunction(parse(str, options), options) -} - -/** - * Prettier encoding of URI path segments. - * - * @param {string} - * @return {string} - */ -function encodeURIComponentPretty (str) { - return encodeURI(str).replace(/[\/?#]/g, function (c) { - return '%' + c.charCodeAt(0).toString(16).toUpperCase() - }) -} - -/** - * Encode the asterisk parameter. Similar to `pretty`, but allows slashes. - * - * @param {string} - * @return {string} - */ -function encodeAsterisk (str) { - return encodeURI(str).replace(/[?#]/g, function (c) { - return '%' + c.charCodeAt(0).toString(16).toUpperCase() - }) -} - -/** - * Expose a method for transforming tokens into the path function. - */ -function tokensToFunction (tokens, options) { - // Compile all the tokens into regexps. - var matches = new Array(tokens.length); - - // Compile all the patterns before compilation. - for (var i = 0; i < tokens.length; i++) { - if (typeof tokens[i] === 'object') { - matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options)); - } - } - - return function (obj, opts) { - var path = ''; - var data = obj || {}; - var options = opts || {}; - var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent; - - for (var i = 0; i < tokens.length; i++) { - var token = tokens[i]; - - if (typeof token === 'string') { - path += token; - - continue - } - - var value = data[token.name]; - var segment; - - if (value == null) { - if (token.optional) { - // Prepend partial segment prefixes. - if (token.partial) { - path += token.prefix; - } - - continue - } else { - throw new TypeError('Expected "' + token.name + '" to be defined') - } - } - - if (isarray(value)) { - if (!token.repeat) { - throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`') - } - - if (value.length === 0) { - if (token.optional) { - continue - } else { - throw new TypeError('Expected "' + token.name + '" to not be empty') - } - } - - for (var j = 0; j < value.length; j++) { - segment = encode(value[j]); - - if (!matches[i].test(segment)) { - throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`') - } - - path += (j === 0 ? token.prefix : token.delimiter) + segment; - } - - continue - } - - segment = token.asterisk ? encodeAsterisk(value) : encode(value); - - if (!matches[i].test(segment)) { - throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"') - } - - path += token.prefix + segment; - } - - return path - } -} - -/** - * Escape a regular expression string. - * - * @param {string} str - * @return {string} - */ -function escapeString (str) { - return str.replace(/([.+*?=^!:${}()[\]|\/\\])/g, '\\$1') -} - -/** - * Escape the capturing group by escaping special characters and meaning. - * - * @param {string} group - * @return {string} - */ -function escapeGroup (group) { - return group.replace(/([=!:$\/()])/g, '\\$1') -} - -/** - * Attach the keys as a property of the regexp. - * - * @param {!RegExp} re - * @param {Array} keys - * @return {!RegExp} - */ -function attachKeys (re, keys) { - re.keys = keys; - return re -} - -/** - * Get the flags for a regexp from the options. - * - * @param {Object} options - * @return {string} - */ -function flags (options) { - return options && options.sensitive ? '' : 'i' -} - -/** - * Pull out keys from a regexp. - * - * @param {!RegExp} path - * @param {!Array} keys - * @return {!RegExp} - */ -function regexpToRegexp (path, keys) { - // Use a negative lookahead to match only capturing groups. - var groups = path.source.match(/\((?!\?)/g); - - if (groups) { - for (var i = 0; i < groups.length; i++) { - keys.push({ - name: i, - prefix: null, - delimiter: null, - optional: false, - repeat: false, - partial: false, - asterisk: false, - pattern: null - }); - } - } - - return attachKeys(path, keys) -} - -/** - * Transform an array into a regexp. - * - * @param {!Array} path - * @param {Array} keys - * @param {!Object} options - * @return {!RegExp} - */ -function arrayToRegexp (path, keys, options) { - var parts = []; - - for (var i = 0; i < path.length; i++) { - parts.push(pathToRegexp(path[i], keys, options).source); - } - - var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options)); - - return attachKeys(regexp, keys) -} - -/** - * Create a path regexp from string input. - * - * @param {string} path - * @param {!Array} keys - * @param {!Object} options - * @return {!RegExp} - */ -function stringToRegexp (path, keys, options) { - return tokensToRegExp(parse(path, options), keys, options) -} - -/** - * Expose a function for taking tokens and returning a RegExp. - * - * @param {!Array} tokens - * @param {(Array|Object)=} keys - * @param {Object=} options - * @return {!RegExp} - */ -function tokensToRegExp (tokens, keys, options) { - if (!isarray(keys)) { - options = /** @type {!Object} */ (keys || options); - keys = []; - } - - options = options || {}; - - var strict = options.strict; - var end = options.end !== false; - var route = ''; - - // Iterate over the tokens and create our regexp string. - for (var i = 0; i < tokens.length; i++) { - var token = tokens[i]; - - if (typeof token === 'string') { - route += escapeString(token); - } else { - var prefix = escapeString(token.prefix); - var capture = '(?:' + token.pattern + ')'; - - keys.push(token); - - if (token.repeat) { - capture += '(?:' + prefix + capture + ')*'; - } - - if (token.optional) { - if (!token.partial) { - capture = '(?:' + prefix + '(' + capture + '))?'; - } else { - capture = prefix + '(' + capture + ')?'; - } - } else { - capture = prefix + '(' + capture + ')'; - } - - route += capture; - } - } - - var delimiter = escapeString(options.delimiter || '/'); - var endsWithDelimiter = route.slice(-delimiter.length) === delimiter; - - // In non-strict mode we allow a slash at the end of match. If the path to - // match already ends with a slash, we remove it for consistency. The slash - // is valid at the end of a path match, not in the middle. This is important - // in non-ending mode, where "/test/" shouldn't match "/test//route". - if (!strict) { - route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'; - } - - if (end) { - route += '$'; - } else { - // In non-ending mode, we need the capturing groups to match as much as - // possible by using a positive lookahead to the end or next path segment. - route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'; - } - - return attachKeys(new RegExp('^' + route, flags(options)), keys) -} - -/** - * Normalize the given path string, returning a regular expression. - * - * An empty array can be passed in for the keys, which will hold the - * placeholder key descriptions. For example, using `/user/:id`, `keys` will - * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`. - * - * @param {(string|RegExp|Array)} path - * @param {(Array|Object)=} keys - * @param {Object=} options - * @return {!RegExp} - */ -function pathToRegexp (path, keys, options) { - if (!isarray(keys)) { - options = /** @type {!Object} */ (keys || options); - keys = []; - } - - options = options || {}; - - if (path instanceof RegExp) { - return regexpToRegexp(path, /** @type {!Array} */ (keys)) - } - - if (isarray(path)) { - return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options) - } - - return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options) -} -pathToRegexp_1.parse = parse_1; -pathToRegexp_1.compile = compile_1; -pathToRegexp_1.tokensToFunction = tokensToFunction_1; -pathToRegexp_1.tokensToRegExp = tokensToRegExp_1; - -/* */ - -// $flow-disable-line -var regexpCompileCache = Object.create(null); - -function fillParams ( - path, - params, - routeMsg -) { - params = params || {}; - try { - var filler = - regexpCompileCache[path] || - (regexpCompileCache[path] = pathToRegexp_1.compile(path)); - - // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }} - // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string - if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; } - - return filler(params, { pretty: true }) - } catch (e) { - if (process.env.NODE_ENV !== 'production') { - // Fix #3072 no warn if `pathMatch` is string - warn(typeof params.pathMatch === 'string', ("missing param for " + routeMsg + ": " + (e.message))); - } - return '' - } finally { - // delete the 0 if it was added - delete params[0]; - } -} - -/* */ - -function normalizeLocation ( - raw, - current, - append, - router -) { - var next = typeof raw === 'string' ? { path: raw } : raw; - // named target - if (next._normalized) { - return next - } else if (next.name) { - next = extend({}, raw); - var params = next.params; - if (params && typeof params === 'object') { - next.params = extend({}, params); - } - return next - } - - // relative params - if (!next.path && next.params && current) { - next = extend({}, next); - next._normalized = true; - var params$1 = extend(extend({}, current.params), next.params); - if (current.name) { - next.name = current.name; - next.params = params$1; - } else if (current.matched.length) { - var rawPath = current.matched[current.matched.length - 1].path; - next.path = fillParams(rawPath, params$1, ("path " + (current.path))); - } else if (process.env.NODE_ENV !== 'production') { - warn(false, "relative params navigation requires a current route."); - } - return next - } - - var parsedPath = parsePath(next.path || ''); - var basePath = (current && current.path) || '/'; - var path = parsedPath.path - ? resolvePath(parsedPath.path, basePath, append || next.append) - : basePath; - - var query = resolveQuery( - parsedPath.query, - next.query, - router && router.options.parseQuery - ); - - var hash = next.hash || parsedPath.hash; - if (hash && hash.charAt(0) !== '#') { - hash = "#" + hash; - } - - return { - _normalized: true, - path: path, - query: query, - hash: hash - } -} - -/* */ - -// work around weird flow bug -var toTypes = [String, Object]; -var eventTypes = [String, Array]; - -var noop = function () {}; - -var warnedCustomSlot; -var warnedTagProp; -var warnedEventProp; - -var Link = { - name: 'RouterLink', - props: { - to: { - type: toTypes, - required: true - }, - tag: { - type: String, - default: 'a' - }, - custom: Boolean, - exact: Boolean, - exactPath: Boolean, - append: Boolean, - replace: Boolean, - activeClass: String, - exactActiveClass: String, - ariaCurrentValue: { - type: String, - default: 'page' - }, - event: { - type: eventTypes, - default: 'click' - } - }, - render: function render (h) { - var this$1$1 = this; - - var router = this.$router; - var current = this.$route; - var ref = router.resolve( - this.to, - current, - this.append - ); - var location = ref.location; - var route = ref.route; - var href = ref.href; - - var classes = {}; - var globalActiveClass = router.options.linkActiveClass; - var globalExactActiveClass = router.options.linkExactActiveClass; - // Support global empty active class - var activeClassFallback = - globalActiveClass == null ? 'router-link-active' : globalActiveClass; - var exactActiveClassFallback = - globalExactActiveClass == null - ? 'router-link-exact-active' - : globalExactActiveClass; - var activeClass = - this.activeClass == null ? activeClassFallback : this.activeClass; - var exactActiveClass = - this.exactActiveClass == null - ? exactActiveClassFallback - : this.exactActiveClass; - - var compareTarget = route.redirectedFrom - ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router) - : route; - - classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath); - classes[activeClass] = this.exact || this.exactPath - ? classes[exactActiveClass] - : isIncludedRoute(current, compareTarget); - - var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null; - - var handler = function (e) { - if (guardEvent(e)) { - if (this$1$1.replace) { - router.replace(location, noop); - } else { - router.push(location, noop); - } - } - }; - - var on = { click: guardEvent }; - if (Array.isArray(this.event)) { - this.event.forEach(function (e) { - on[e] = handler; - }); - } else { - on[this.event] = handler; - } - - var data = { class: classes }; - - var scopedSlot = - !this.$scopedSlots.$hasNormal && - this.$scopedSlots.default && - this.$scopedSlots.default({ - href: href, - route: route, - navigate: handler, - isActive: classes[activeClass], - isExactActive: classes[exactActiveClass] - }); - - if (scopedSlot) { - if (process.env.NODE_ENV !== 'production' && !this.custom) { - !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\n\n'); - warnedCustomSlot = true; - } - if (scopedSlot.length === 1) { - return scopedSlot[0] - } else if (scopedSlot.length > 1 || !scopedSlot.length) { - if (process.env.NODE_ENV !== 'production') { - warn( - false, - (" with to=\"" + (this.to) + "\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.") - ); - } - return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot) - } - } - - if (process.env.NODE_ENV !== 'production') { - if ('tag' in this.$options.propsData && !warnedTagProp) { - warn( - false, - "'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link." - ); - warnedTagProp = true; - } - if ('event' in this.$options.propsData && !warnedEventProp) { - warn( - false, - "'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link." - ); - warnedEventProp = true; - } - } - - if (this.tag === 'a') { - data.on = on; - data.attrs = { href: href, 'aria-current': ariaCurrentValue }; - } else { - // find the first child and apply listener and href - var a = findAnchor(this.$slots.default); - if (a) { - // in case the is a static node - a.isStatic = false; - var aData = (a.data = extend({}, a.data)); - aData.on = aData.on || {}; - // transform existing events in both objects into arrays so we can push later - for (var event in aData.on) { - var handler$1 = aData.on[event]; - if (event in on) { - aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1]; - } - } - // append new listeners for router-link - for (var event$1 in on) { - if (event$1 in aData.on) { - // on[event] is always a function - aData.on[event$1].push(on[event$1]); - } else { - aData.on[event$1] = handler; - } - } - - var aAttrs = (a.data.attrs = extend({}, a.data.attrs)); - aAttrs.href = href; - aAttrs['aria-current'] = ariaCurrentValue; - } else { - // doesn't have child, apply listener to self - data.on = on; - } - } - - return h(this.tag, data, this.$slots.default) - } -}; - -function guardEvent (e) { - // don't redirect with control keys - if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return } - // don't redirect when preventDefault called - if (e.defaultPrevented) { return } - // don't redirect on right click - if (e.button !== undefined && e.button !== 0) { return } - // don't redirect if `target="_blank"` - if (e.currentTarget && e.currentTarget.getAttribute) { - var target = e.currentTarget.getAttribute('target'); - if (/\b_blank\b/i.test(target)) { return } - } - // this may be a Weex event which doesn't have this method - if (e.preventDefault) { - e.preventDefault(); - } - return true -} - -function findAnchor (children) { - if (children) { - var child; - for (var i = 0; i < children.length; i++) { - child = children[i]; - if (child.tag === 'a') { - return child - } - if (child.children && (child = findAnchor(child.children))) { - return child - } - } - } -} - -var _Vue; - -function install (Vue) { - if (install.installed && _Vue === Vue) { return } - install.installed = true; - - _Vue = Vue; - - var isDef = function (v) { return v !== undefined; }; - - var registerInstance = function (vm, callVal) { - var i = vm.$options._parentVnode; - if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) { - i(vm, callVal); - } - }; - - Vue.mixin({ - beforeCreate: function beforeCreate () { - if (isDef(this.$options.router)) { - this._routerRoot = this; - this._router = this.$options.router; - this._router.init(this); - Vue.util.defineReactive(this, '_route', this._router.history.current); - } else { - this._routerRoot = (this.$parent && this.$parent._routerRoot) || this; - } - registerInstance(this, this); - }, - destroyed: function destroyed () { - registerInstance(this); - } - }); - - Object.defineProperty(Vue.prototype, '$router', { - get: function get () { return this._routerRoot._router } - }); - - Object.defineProperty(Vue.prototype, '$route', { - get: function get () { return this._routerRoot._route } - }); - - Vue.component('RouterView', View); - Vue.component('RouterLink', Link); - - var strats = Vue.config.optionMergeStrategies; - // use the same hook merging strategy for route hooks - strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created; -} - -/* */ - -var inBrowser = typeof window !== 'undefined'; - -/* */ - -function createRouteMap ( - routes, - oldPathList, - oldPathMap, - oldNameMap, - parentRoute -) { - // the path list is used to control path matching priority - var pathList = oldPathList || []; - // $flow-disable-line - var pathMap = oldPathMap || Object.create(null); - // $flow-disable-line - var nameMap = oldNameMap || Object.create(null); - - routes.forEach(function (route) { - addRouteRecord(pathList, pathMap, nameMap, route, parentRoute); - }); - - // ensure wildcard routes are always at the end - for (var i = 0, l = pathList.length; i < l; i++) { - if (pathList[i] === '*') { - pathList.push(pathList.splice(i, 1)[0]); - l--; - i--; - } - } - - if (process.env.NODE_ENV === 'development') { - // warn if routes do not include leading slashes - var found = pathList - // check for missing leading slash - .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; }); - - if (found.length > 0) { - var pathNames = found.map(function (path) { return ("- " + path); }).join('\n'); - warn(false, ("Non-nested routes must include a leading slash character. Fix the following routes: \n" + pathNames)); - } - } - - return { - pathList: pathList, - pathMap: pathMap, - nameMap: nameMap - } -} - -function addRouteRecord ( - pathList, - pathMap, - nameMap, - route, - parent, - matchAs -) { - var path = route.path; - var name = route.name; - if (process.env.NODE_ENV !== 'production') { - assert(path != null, "\"path\" is required in a route configuration."); - assert( - typeof route.component !== 'string', - "route config \"component\" for path: " + (String( - path || name - )) + " cannot be a " + "string id. Use an actual component instead." - ); - - warn( - // eslint-disable-next-line no-control-regex - !/[^\u0000-\u007F]+/.test(path), - "Route with path \"" + path + "\" contains unencoded characters, make sure " + - "your path is correctly encoded before passing it to the router. Use " + - "encodeURI to encode static segments of your path." - ); - } - - var pathToRegexpOptions = - route.pathToRegexpOptions || {}; - var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict); - - if (typeof route.caseSensitive === 'boolean') { - pathToRegexpOptions.sensitive = route.caseSensitive; - } - - var record = { - path: normalizedPath, - regex: compileRouteRegex(normalizedPath, pathToRegexpOptions), - components: route.components || { default: route.component }, - alias: route.alias - ? typeof route.alias === 'string' - ? [route.alias] - : route.alias - : [], - instances: {}, - enteredCbs: {}, - name: name, - parent: parent, - matchAs: matchAs, - redirect: route.redirect, - beforeEnter: route.beforeEnter, - meta: route.meta || {}, - props: - route.props == null - ? {} - : route.components - ? route.props - : { default: route.props } - }; - - if (route.children) { - // Warn if route is named, does not redirect and has a default child route. - // If users navigate to this route by name, the default child will - // not be rendered (GH Issue #629) - if (process.env.NODE_ENV !== 'production') { - if ( - route.name && - !route.redirect && - route.children.some(function (child) { return /^\/?$/.test(child.path); }) - ) { - warn( - false, - "Named Route '" + (route.name) + "' has a default child route. " + - "When navigating to this named route (:to=\"{name: '" + (route.name) + "'}\"), " + - "the default child route will not be rendered. Remove the name from " + - "this route and use the name of the default child route for named " + - "links instead." - ); - } - } - route.children.forEach(function (child) { - var childMatchAs = matchAs - ? cleanPath((matchAs + "/" + (child.path))) - : undefined; - addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs); - }); - } - - if (!pathMap[record.path]) { - pathList.push(record.path); - pathMap[record.path] = record; - } - - if (route.alias !== undefined) { - var aliases = Array.isArray(route.alias) ? route.alias : [route.alias]; - for (var i = 0; i < aliases.length; ++i) { - var alias = aliases[i]; - if (process.env.NODE_ENV !== 'production' && alias === path) { - warn( - false, - ("Found an alias with the same value as the path: \"" + path + "\". You have to remove that alias. It will be ignored in development.") - ); - // skip in dev to make it work - continue - } - - var aliasRoute = { - path: alias, - children: route.children - }; - addRouteRecord( - pathList, - pathMap, - nameMap, - aliasRoute, - parent, - record.path || '/' // matchAs - ); - } - } - - if (name) { - if (!nameMap[name]) { - nameMap[name] = record; - } else if (process.env.NODE_ENV !== 'production' && !matchAs) { - warn( - false, - "Duplicate named routes definition: " + - "{ name: \"" + name + "\", path: \"" + (record.path) + "\" }" - ); - } - } -} - -function compileRouteRegex ( - path, - pathToRegexpOptions -) { - var regex = pathToRegexp_1(path, [], pathToRegexpOptions); - if (process.env.NODE_ENV !== 'production') { - var keys = Object.create(null); - regex.keys.forEach(function (key) { - warn( - !keys[key.name], - ("Duplicate param keys in route with path: \"" + path + "\"") - ); - keys[key.name] = true; - }); - } - return regex -} - -function normalizePath ( - path, - parent, - strict -) { - if (!strict) { path = path.replace(/\/$/, ''); } - if (path[0] === '/') { return path } - if (parent == null) { return path } - return cleanPath(((parent.path) + "/" + path)) -} - -/* */ - - - -function createMatcher ( - routes, - router -) { - var ref = createRouteMap(routes); - var pathList = ref.pathList; - var pathMap = ref.pathMap; - var nameMap = ref.nameMap; - - function addRoutes (routes) { - createRouteMap(routes, pathList, pathMap, nameMap); - } - - function addRoute (parentOrRoute, route) { - var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined; - // $flow-disable-line - createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent); - - // add aliases of parent - if (parent && parent.alias.length) { - createRouteMap( - // $flow-disable-line route is defined if parent is - parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }), - pathList, - pathMap, - nameMap, - parent - ); - } - } - - function getRoutes () { - return pathList.map(function (path) { return pathMap[path]; }) - } - - function match ( - raw, - currentRoute, - redirectedFrom - ) { - var location = normalizeLocation(raw, currentRoute, false, router); - var name = location.name; - - if (name) { - var record = nameMap[name]; - if (process.env.NODE_ENV !== 'production') { - warn(record, ("Route with name '" + name + "' does not exist")); - } - if (!record) { return _createRoute(null, location) } - var paramNames = record.regex.keys - .filter(function (key) { return !key.optional; }) - .map(function (key) { return key.name; }); - - if (typeof location.params !== 'object') { - location.params = {}; - } - - if (currentRoute && typeof currentRoute.params === 'object') { - for (var key in currentRoute.params) { - if (!(key in location.params) && paramNames.indexOf(key) > -1) { - location.params[key] = currentRoute.params[key]; - } - } - } - - location.path = fillParams(record.path, location.params, ("named route \"" + name + "\"")); - return _createRoute(record, location, redirectedFrom) - } else if (location.path) { - location.params = {}; - for (var i = 0; i < pathList.length; i++) { - var path = pathList[i]; - var record$1 = pathMap[path]; - if (matchRoute(record$1.regex, location.path, location.params)) { - return _createRoute(record$1, location, redirectedFrom) - } - } - } - // no match - return _createRoute(null, location) - } - - function redirect ( - record, - location - ) { - var originalRedirect = record.redirect; - var redirect = typeof originalRedirect === 'function' - ? originalRedirect(createRoute(record, location, null, router)) - : originalRedirect; - - if (typeof redirect === 'string') { - redirect = { path: redirect }; - } - - if (!redirect || typeof redirect !== 'object') { - if (process.env.NODE_ENV !== 'production') { - warn( - false, ("invalid redirect option: " + (JSON.stringify(redirect))) - ); - } - return _createRoute(null, location) - } - - var re = redirect; - var name = re.name; - var path = re.path; - var query = location.query; - var hash = location.hash; - var params = location.params; - query = re.hasOwnProperty('query') ? re.query : query; - hash = re.hasOwnProperty('hash') ? re.hash : hash; - params = re.hasOwnProperty('params') ? re.params : params; - - if (name) { - // resolved named direct - var targetRecord = nameMap[name]; - if (process.env.NODE_ENV !== 'production') { - assert(targetRecord, ("redirect failed: named route \"" + name + "\" not found.")); - } - return match({ - _normalized: true, - name: name, - query: query, - hash: hash, - params: params - }, undefined, location) - } else if (path) { - // 1. resolve relative redirect - var rawPath = resolveRecordPath(path, record); - // 2. resolve params - var resolvedPath = fillParams(rawPath, params, ("redirect route with path \"" + rawPath + "\"")); - // 3. rematch with existing query and hash - return match({ - _normalized: true, - path: resolvedPath, - query: query, - hash: hash - }, undefined, location) - } else { - if (process.env.NODE_ENV !== 'production') { - warn(false, ("invalid redirect option: " + (JSON.stringify(redirect)))); - } - return _createRoute(null, location) - } - } - - function alias ( - record, - location, - matchAs - ) { - var aliasedPath = fillParams(matchAs, location.params, ("aliased route with path \"" + matchAs + "\"")); - var aliasedMatch = match({ - _normalized: true, - path: aliasedPath - }); - if (aliasedMatch) { - var matched = aliasedMatch.matched; - var aliasedRecord = matched[matched.length - 1]; - location.params = aliasedMatch.params; - return _createRoute(aliasedRecord, location) - } - return _createRoute(null, location) - } - - function _createRoute ( - record, - location, - redirectedFrom - ) { - if (record && record.redirect) { - return redirect(record, redirectedFrom || location) - } - if (record && record.matchAs) { - return alias(record, location, record.matchAs) - } - return createRoute(record, location, redirectedFrom, router) - } - - return { - match: match, - addRoute: addRoute, - getRoutes: getRoutes, - addRoutes: addRoutes - } -} - -function matchRoute ( - regex, - path, - params -) { - var m = path.match(regex); - - if (!m) { - return false - } else if (!params) { - return true - } - - for (var i = 1, len = m.length; i < len; ++i) { - var key = regex.keys[i - 1]; - if (key) { - // Fix #1994: using * with props: true generates a param named 0 - params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i]; - } - } - - return true -} - -function resolveRecordPath (path, record) { - return resolvePath(path, record.parent ? record.parent.path : '/', true) -} - -/* */ - -// use User Timing api (if present) for more accurate key precision -var Time = - inBrowser && window.performance && window.performance.now - ? window.performance - : Date; - -function genStateKey () { - return Time.now().toFixed(3) -} - -var _key = genStateKey(); - -function getStateKey () { - return _key -} - -function setStateKey (key) { - return (_key = key) -} - -/* */ - -var positionStore = Object.create(null); - -function setupScroll () { - // Prevent browser scroll behavior on History popstate - if ('scrollRestoration' in window.history) { - window.history.scrollRestoration = 'manual'; - } - // Fix for #1585 for Firefox - // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678 - // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with - // window.location.protocol + '//' + window.location.host - // location.host contains the port and location.hostname doesn't - var protocolAndPath = window.location.protocol + '//' + window.location.host; - var absolutePath = window.location.href.replace(protocolAndPath, ''); - // preserve existing history state as it could be overriden by the user - var stateCopy = extend({}, window.history.state); - stateCopy.key = getStateKey(); - window.history.replaceState(stateCopy, '', absolutePath); - window.addEventListener('popstate', handlePopState); - return function () { - window.removeEventListener('popstate', handlePopState); - } -} - -function handleScroll ( - router, - to, - from, - isPop -) { - if (!router.app) { - return - } - - var behavior = router.options.scrollBehavior; - if (!behavior) { - return - } - - if (process.env.NODE_ENV !== 'production') { - assert(typeof behavior === 'function', "scrollBehavior must be a function"); - } - - // wait until re-render finishes before scrolling - router.app.$nextTick(function () { - var position = getScrollPosition(); - var shouldScroll = behavior.call( - router, - to, - from, - isPop ? position : null - ); - - if (!shouldScroll) { - return - } - - if (typeof shouldScroll.then === 'function') { - shouldScroll - .then(function (shouldScroll) { - scrollToPosition((shouldScroll), position); - }) - .catch(function (err) { - if (process.env.NODE_ENV !== 'production') { - assert(false, err.toString()); - } - }); - } else { - scrollToPosition(shouldScroll, position); - } - }); -} - -function saveScrollPosition () { - var key = getStateKey(); - if (key) { - positionStore[key] = { - x: window.pageXOffset, - y: window.pageYOffset - }; - } -} - -function handlePopState (e) { - saveScrollPosition(); - if (e.state && e.state.key) { - setStateKey(e.state.key); - } -} - -function getScrollPosition () { - var key = getStateKey(); - if (key) { - return positionStore[key] - } -} - -function getElementPosition (el, offset) { - var docEl = document.documentElement; - var docRect = docEl.getBoundingClientRect(); - var elRect = el.getBoundingClientRect(); - return { - x: elRect.left - docRect.left - offset.x, - y: elRect.top - docRect.top - offset.y - } -} - -function isValidPosition (obj) { - return isNumber(obj.x) || isNumber(obj.y) -} - -function normalizePosition (obj) { - return { - x: isNumber(obj.x) ? obj.x : window.pageXOffset, - y: isNumber(obj.y) ? obj.y : window.pageYOffset - } -} - -function normalizeOffset (obj) { - return { - x: isNumber(obj.x) ? obj.x : 0, - y: isNumber(obj.y) ? obj.y : 0 - } -} - -function isNumber (v) { - return typeof v === 'number' -} - -var hashStartsWithNumberRE = /^#\d/; - -function scrollToPosition (shouldScroll, position) { - var isObject = typeof shouldScroll === 'object'; - if (isObject && typeof shouldScroll.selector === 'string') { - // getElementById would still fail if the selector contains a more complicated query like #main[data-attr] - // but at the same time, it doesn't make much sense to select an element with an id and an extra selector - var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line - ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line - : document.querySelector(shouldScroll.selector); - - if (el) { - var offset = - shouldScroll.offset && typeof shouldScroll.offset === 'object' - ? shouldScroll.offset - : {}; - offset = normalizeOffset(offset); - position = getElementPosition(el, offset); - } else if (isValidPosition(shouldScroll)) { - position = normalizePosition(shouldScroll); - } - } else if (isObject && isValidPosition(shouldScroll)) { - position = normalizePosition(shouldScroll); - } - - if (position) { - // $flow-disable-line - if ('scrollBehavior' in document.documentElement.style) { - window.scrollTo({ - left: position.x, - top: position.y, - // $flow-disable-line - behavior: shouldScroll.behavior - }); - } else { - window.scrollTo(position.x, position.y); - } - } -} - -/* */ - -var supportsPushState = - inBrowser && - (function () { - var ua = window.navigator.userAgent; - - if ( - (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && - ua.indexOf('Mobile Safari') !== -1 && - ua.indexOf('Chrome') === -1 && - ua.indexOf('Windows Phone') === -1 - ) { - return false - } - - return window.history && typeof window.history.pushState === 'function' - })(); - -function pushState (url, replace) { - saveScrollPosition(); - // try...catch the pushState call to get around Safari - // DOM Exception 18 where it limits to 100 pushState calls - var history = window.history; - try { - if (replace) { - // preserve existing history state as it could be overriden by the user - var stateCopy = extend({}, history.state); - stateCopy.key = getStateKey(); - history.replaceState(stateCopy, '', url); - } else { - history.pushState({ key: setStateKey(genStateKey()) }, '', url); - } - } catch (e) { - window.location[replace ? 'replace' : 'assign'](url); - } -} - -function replaceState (url) { - pushState(url, true); -} - -// When changing thing, also edit router.d.ts -var NavigationFailureType = { - redirected: 2, - aborted: 4, - cancelled: 8, - duplicated: 16 -}; - -function createNavigationRedirectedError (from, to) { - return createRouterError( - from, - to, - NavigationFailureType.redirected, - ("Redirected when going from \"" + (from.fullPath) + "\" to \"" + (stringifyRoute( - to - )) + "\" via a navigation guard.") - ) -} - -function createNavigationDuplicatedError (from, to) { - var error = createRouterError( - from, - to, - NavigationFailureType.duplicated, - ("Avoided redundant navigation to current location: \"" + (from.fullPath) + "\".") - ); - // backwards compatible with the first introduction of Errors - error.name = 'NavigationDuplicated'; - return error -} - -function createNavigationCancelledError (from, to) { - return createRouterError( - from, - to, - NavigationFailureType.cancelled, - ("Navigation cancelled from \"" + (from.fullPath) + "\" to \"" + (to.fullPath) + "\" with a new navigation.") - ) -} - -function createNavigationAbortedError (from, to) { - return createRouterError( - from, - to, - NavigationFailureType.aborted, - ("Navigation aborted from \"" + (from.fullPath) + "\" to \"" + (to.fullPath) + "\" via a navigation guard.") - ) -} - -function createRouterError (from, to, type, message) { - var error = new Error(message); - error._isRouter = true; - error.from = from; - error.to = to; - error.type = type; - - return error -} - -var propertiesToLog = ['params', 'query', 'hash']; - -function stringifyRoute (to) { - if (typeof to === 'string') { return to } - if ('path' in to) { return to.path } - var location = {}; - propertiesToLog.forEach(function (key) { - if (key in to) { location[key] = to[key]; } - }); - return JSON.stringify(location, null, 2) -} - -function isError (err) { - return Object.prototype.toString.call(err).indexOf('Error') > -1 -} - -function isNavigationFailure (err, errorType) { - return ( - isError(err) && - err._isRouter && - (errorType == null || err.type === errorType) - ) -} - -/* */ - -function runQueue (queue, fn, cb) { - var step = function (index) { - if (index >= queue.length) { - cb(); - } else { - if (queue[index]) { - fn(queue[index], function () { - step(index + 1); - }); - } else { - step(index + 1); - } - } - }; - step(0); -} - -/* */ - -function resolveAsyncComponents (matched) { - return function (to, from, next) { - var hasAsync = false; - var pending = 0; - var error = null; - - flatMapComponents(matched, function (def, _, match, key) { - // if it's a function and doesn't have cid attached, - // assume it's an async component resolve function. - // we are not using Vue's default async resolving mechanism because - // we want to halt the navigation until the incoming component has been - // resolved. - if (typeof def === 'function' && def.cid === undefined) { - hasAsync = true; - pending++; - - var resolve = once(function (resolvedDef) { - if (isESModule(resolvedDef)) { - resolvedDef = resolvedDef.default; - } - // save resolved on async factory in case it's used elsewhere - def.resolved = typeof resolvedDef === 'function' - ? resolvedDef - : _Vue.extend(resolvedDef); - match.components[key] = resolvedDef; - pending--; - if (pending <= 0) { - next(); - } - }); - - var reject = once(function (reason) { - var msg = "Failed to resolve async component " + key + ": " + reason; - process.env.NODE_ENV !== 'production' && warn(false, msg); - if (!error) { - error = isError(reason) - ? reason - : new Error(msg); - next(error); - } - }); - - var res; - try { - res = def(resolve, reject); - } catch (e) { - reject(e); - } - if (res) { - if (typeof res.then === 'function') { - res.then(resolve, reject); - } else { - // new syntax in Vue 2.3 - var comp = res.component; - if (comp && typeof comp.then === 'function') { - comp.then(resolve, reject); - } - } - } - } - }); - - if (!hasAsync) { next(); } - } -} - -function flatMapComponents ( - matched, - fn -) { - return flatten(matched.map(function (m) { - return Object.keys(m.components).map(function (key) { return fn( - m.components[key], - m.instances[key], - m, key - ); }) - })) -} - -function flatten (arr) { - return Array.prototype.concat.apply([], arr) -} - -var hasSymbol = - typeof Symbol === 'function' && - typeof Symbol.toStringTag === 'symbol'; - -function isESModule (obj) { - return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module') -} - -// in Webpack 2, require.ensure now also returns a Promise -// so the resolve/reject functions may get called an extra time -// if the user uses an arrow function shorthand that happens to -// return that Promise. -function once (fn) { - var called = false; - return function () { - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - if (called) { return } - called = true; - return fn.apply(this, args) - } -} - -/* */ - -var History = function History (router, base) { - this.router = router; - this.base = normalizeBase(base); - // start with a route object that stands for "nowhere" - this.current = START; - this.pending = null; - this.ready = false; - this.readyCbs = []; - this.readyErrorCbs = []; - this.errorCbs = []; - this.listeners = []; -}; - -History.prototype.listen = function listen (cb) { - this.cb = cb; -}; - -History.prototype.onReady = function onReady (cb, errorCb) { - if (this.ready) { - cb(); - } else { - this.readyCbs.push(cb); - if (errorCb) { - this.readyErrorCbs.push(errorCb); - } - } -}; - -History.prototype.onError = function onError (errorCb) { - this.errorCbs.push(errorCb); -}; - -History.prototype.transitionTo = function transitionTo ( - location, - onComplete, - onAbort -) { - var this$1$1 = this; - - var route; - // catch redirect option https://github.com/vuejs/vue-router/issues/3201 - try { - route = this.router.match(location, this.current); - } catch (e) { - this.errorCbs.forEach(function (cb) { - cb(e); - }); - // Exception should still be thrown - throw e - } - var prev = this.current; - this.confirmTransition( - route, - function () { - this$1$1.updateRoute(route); - onComplete && onComplete(route); - this$1$1.ensureURL(); - this$1$1.router.afterHooks.forEach(function (hook) { - hook && hook(route, prev); - }); - - // fire ready cbs once - if (!this$1$1.ready) { - this$1$1.ready = true; - this$1$1.readyCbs.forEach(function (cb) { - cb(route); - }); - } - }, - function (err) { - if (onAbort) { - onAbort(err); - } - if (err && !this$1$1.ready) { - // Initial redirection should not mark the history as ready yet - // because it's triggered by the redirection instead - // https://github.com/vuejs/vue-router/issues/3225 - // https://github.com/vuejs/vue-router/issues/3331 - if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) { - this$1$1.ready = true; - this$1$1.readyErrorCbs.forEach(function (cb) { - cb(err); - }); - } - } - } - ); -}; - -History.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) { - var this$1$1 = this; - - var current = this.current; - this.pending = route; - var abort = function (err) { - // changed after adding errors with - // https://github.com/vuejs/vue-router/pull/3047 before that change, - // redirect and aborted navigation would produce an err == null - if (!isNavigationFailure(err) && isError(err)) { - if (this$1$1.errorCbs.length) { - this$1$1.errorCbs.forEach(function (cb) { - cb(err); - }); - } else { - if (process.env.NODE_ENV !== 'production') { - warn(false, 'uncaught error during route navigation:'); - } - console.error(err); - } - } - onAbort && onAbort(err); - }; - var lastRouteIndex = route.matched.length - 1; - var lastCurrentIndex = current.matched.length - 1; - if ( - isSameRoute(route, current) && - // in the case the route map has been dynamically appended to - lastRouteIndex === lastCurrentIndex && - route.matched[lastRouteIndex] === current.matched[lastCurrentIndex] - ) { - this.ensureURL(); - if (route.hash) { - handleScroll(this.router, current, route, false); - } - return abort(createNavigationDuplicatedError(current, route)) - } - - var ref = resolveQueue( - this.current.matched, - route.matched - ); - var updated = ref.updated; - var deactivated = ref.deactivated; - var activated = ref.activated; - - var queue = [].concat( - // in-component leave guards - extractLeaveGuards(deactivated), - // global before hooks - this.router.beforeHooks, - // in-component update hooks - extractUpdateHooks(updated), - // in-config enter guards - activated.map(function (m) { return m.beforeEnter; }), - // async components - resolveAsyncComponents(activated) - ); - - var iterator = function (hook, next) { - if (this$1$1.pending !== route) { - return abort(createNavigationCancelledError(current, route)) - } - try { - hook(route, current, function (to) { - if (to === false) { - // next(false) -> abort navigation, ensure current URL - this$1$1.ensureURL(true); - abort(createNavigationAbortedError(current, route)); - } else if (isError(to)) { - this$1$1.ensureURL(true); - abort(to); - } else if ( - typeof to === 'string' || - (typeof to === 'object' && - (typeof to.path === 'string' || typeof to.name === 'string')) - ) { - // next('/') or next({ path: '/' }) -> redirect - abort(createNavigationRedirectedError(current, route)); - if (typeof to === 'object' && to.replace) { - this$1$1.replace(to); - } else { - this$1$1.push(to); - } - } else { - // confirm transition and pass on the value - next(to); - } - }); - } catch (e) { - abort(e); - } - }; - - runQueue(queue, iterator, function () { - // wait until async components are resolved before - // extracting in-component enter guards - var enterGuards = extractEnterGuards(activated); - var queue = enterGuards.concat(this$1$1.router.resolveHooks); - runQueue(queue, iterator, function () { - if (this$1$1.pending !== route) { - return abort(createNavigationCancelledError(current, route)) - } - this$1$1.pending = null; - onComplete(route); - if (this$1$1.router.app) { - this$1$1.router.app.$nextTick(function () { - handleRouteEntered(route); - }); - } - }); - }); -}; - -History.prototype.updateRoute = function updateRoute (route) { - this.current = route; - this.cb && this.cb(route); -}; - -History.prototype.setupListeners = function setupListeners () { - // Default implementation is empty -}; - -History.prototype.teardown = function teardown () { - // clean up event listeners - // https://github.com/vuejs/vue-router/issues/2341 - this.listeners.forEach(function (cleanupListener) { - cleanupListener(); - }); - this.listeners = []; - - // reset current history route - // https://github.com/vuejs/vue-router/issues/3294 - this.current = START; - this.pending = null; -}; - -function normalizeBase (base) { - if (!base) { - if (inBrowser) { - // respect tag - var baseEl = document.querySelector('base'); - base = (baseEl && baseEl.getAttribute('href')) || '/'; - // strip full URL origin - base = base.replace(/^https?:\/\/[^\/]+/, ''); - } else { - base = '/'; - } - } - // make sure there's the starting slash - if (base.charAt(0) !== '/') { - base = '/' + base; - } - // remove trailing slash - return base.replace(/\/$/, '') -} - -function resolveQueue ( - current, - next -) { - var i; - var max = Math.max(current.length, next.length); - for (i = 0; i < max; i++) { - if (current[i] !== next[i]) { - break - } - } - return { - updated: next.slice(0, i), - activated: next.slice(i), - deactivated: current.slice(i) - } -} - -function extractGuards ( - records, - name, - bind, - reverse -) { - var guards = flatMapComponents(records, function (def, instance, match, key) { - var guard = extractGuard(def, name); - if (guard) { - return Array.isArray(guard) - ? guard.map(function (guard) { return bind(guard, instance, match, key); }) - : bind(guard, instance, match, key) - } - }); - return flatten(reverse ? guards.reverse() : guards) -} - -function extractGuard ( - def, - key -) { - if (typeof def !== 'function') { - // extend now so that global mixins are applied. - def = _Vue.extend(def); - } - return def.options[key] -} - -function extractLeaveGuards (deactivated) { - return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true) -} - -function extractUpdateHooks (updated) { - return extractGuards(updated, 'beforeRouteUpdate', bindGuard) -} - -function bindGuard (guard, instance) { - if (instance) { - return function boundRouteGuard () { - return guard.apply(instance, arguments) - } - } -} - -function extractEnterGuards ( - activated -) { - return extractGuards( - activated, - 'beforeRouteEnter', - function (guard, _, match, key) { - return bindEnterGuard(guard, match, key) - } - ) -} - -function bindEnterGuard ( - guard, - match, - key -) { - return function routeEnterGuard (to, from, next) { - return guard(to, from, function (cb) { - if (typeof cb === 'function') { - if (!match.enteredCbs[key]) { - match.enteredCbs[key] = []; - } - match.enteredCbs[key].push(cb); - } - next(cb); - }) - } -} - -/* */ - -var HTML5History = /*@__PURE__*/(function (History) { - function HTML5History (router, base) { - History.call(this, router, base); - - this._startLocation = getLocation(this.base); - } - - if ( History ) HTML5History.__proto__ = History; - HTML5History.prototype = Object.create( History && History.prototype ); - HTML5History.prototype.constructor = HTML5History; - - HTML5History.prototype.setupListeners = function setupListeners () { - var this$1$1 = this; - - if (this.listeners.length > 0) { - return - } - - var router = this.router; - var expectScroll = router.options.scrollBehavior; - var supportsScroll = supportsPushState && expectScroll; - - if (supportsScroll) { - this.listeners.push(setupScroll()); - } - - var handleRoutingEvent = function () { - var current = this$1$1.current; - - // Avoiding first `popstate` event dispatched in some browsers but first - // history route not updated since async guard at the same time. - var location = getLocation(this$1$1.base); - if (this$1$1.current === START && location === this$1$1._startLocation) { - return - } - - this$1$1.transitionTo(location, function (route) { - if (supportsScroll) { - handleScroll(router, route, current, true); - } - }); - }; - window.addEventListener('popstate', handleRoutingEvent); - this.listeners.push(function () { - window.removeEventListener('popstate', handleRoutingEvent); - }); - }; - - HTML5History.prototype.go = function go (n) { - window.history.go(n); - }; - - HTML5History.prototype.push = function push (location, onComplete, onAbort) { - var this$1$1 = this; - - var ref = this; - var fromRoute = ref.current; - this.transitionTo(location, function (route) { - pushState(cleanPath(this$1$1.base + route.fullPath)); - handleScroll(this$1$1.router, route, fromRoute, false); - onComplete && onComplete(route); - }, onAbort); - }; - - HTML5History.prototype.replace = function replace (location, onComplete, onAbort) { - var this$1$1 = this; - - var ref = this; - var fromRoute = ref.current; - this.transitionTo(location, function (route) { - replaceState(cleanPath(this$1$1.base + route.fullPath)); - handleScroll(this$1$1.router, route, fromRoute, false); - onComplete && onComplete(route); - }, onAbort); - }; - - HTML5History.prototype.ensureURL = function ensureURL (push) { - if (getLocation(this.base) !== this.current.fullPath) { - var current = cleanPath(this.base + this.current.fullPath); - push ? pushState(current) : replaceState(current); - } - }; - - HTML5History.prototype.getCurrentLocation = function getCurrentLocation () { - return getLocation(this.base) - }; - - return HTML5History; -}(History)); - -function getLocation (base) { - var path = window.location.pathname; - var pathLowerCase = path.toLowerCase(); - var baseLowerCase = base.toLowerCase(); - // base="/a" shouldn't turn path="/app" into "/a/pp" - // https://github.com/vuejs/vue-router/issues/3555 - // so we ensure the trailing slash in the base - if (base && ((pathLowerCase === baseLowerCase) || - (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) { - path = path.slice(base.length); - } - return (path || '/') + window.location.search + window.location.hash -} - -/* */ - -var HashHistory = /*@__PURE__*/(function (History) { - function HashHistory (router, base, fallback) { - History.call(this, router, base); - // check history fallback deeplinking - if (fallback && checkFallback(this.base)) { - return - } - ensureSlash(); - } - - if ( History ) HashHistory.__proto__ = History; - HashHistory.prototype = Object.create( History && History.prototype ); - HashHistory.prototype.constructor = HashHistory; - - // this is delayed until the app mounts - // to avoid the hashchange listener being fired too early - HashHistory.prototype.setupListeners = function setupListeners () { - var this$1$1 = this; - - if (this.listeners.length > 0) { - return - } - - var router = this.router; - var expectScroll = router.options.scrollBehavior; - var supportsScroll = supportsPushState && expectScroll; - - if (supportsScroll) { - this.listeners.push(setupScroll()); - } - - var handleRoutingEvent = function () { - var current = this$1$1.current; - if (!ensureSlash()) { - return - } - this$1$1.transitionTo(getHash(), function (route) { - if (supportsScroll) { - handleScroll(this$1$1.router, route, current, true); - } - if (!supportsPushState) { - replaceHash(route.fullPath); - } - }); - }; - var eventType = supportsPushState ? 'popstate' : 'hashchange'; - window.addEventListener( - eventType, - handleRoutingEvent - ); - this.listeners.push(function () { - window.removeEventListener(eventType, handleRoutingEvent); - }); - }; - - HashHistory.prototype.push = function push (location, onComplete, onAbort) { - var this$1$1 = this; - - var ref = this; - var fromRoute = ref.current; - this.transitionTo( - location, - function (route) { - pushHash(route.fullPath); - handleScroll(this$1$1.router, route, fromRoute, false); - onComplete && onComplete(route); - }, - onAbort - ); - }; - - HashHistory.prototype.replace = function replace (location, onComplete, onAbort) { - var this$1$1 = this; - - var ref = this; - var fromRoute = ref.current; - this.transitionTo( - location, - function (route) { - replaceHash(route.fullPath); - handleScroll(this$1$1.router, route, fromRoute, false); - onComplete && onComplete(route); - }, - onAbort - ); - }; - - HashHistory.prototype.go = function go (n) { - window.history.go(n); - }; - - HashHistory.prototype.ensureURL = function ensureURL (push) { - var current = this.current.fullPath; - if (getHash() !== current) { - push ? pushHash(current) : replaceHash(current); - } - }; - - HashHistory.prototype.getCurrentLocation = function getCurrentLocation () { - return getHash() - }; - - return HashHistory; -}(History)); - -function checkFallback (base) { - var location = getLocation(base); - if (!/^\/#/.test(location)) { - window.location.replace(cleanPath(base + '/#' + location)); - return true - } -} - -function ensureSlash () { - var path = getHash(); - if (path.charAt(0) === '/') { - return true - } - replaceHash('/' + path); - return false -} - -function getHash () { - // We can't use window.location.hash here because it's not - // consistent across browsers - Firefox will pre-decode it! - var href = window.location.href; - var index = href.indexOf('#'); - // empty path - if (index < 0) { return '' } - - href = href.slice(index + 1); - - return href -} - -function getUrl (path) { - var href = window.location.href; - var i = href.indexOf('#'); - var base = i >= 0 ? href.slice(0, i) : href; - return (base + "#" + path) -} - -function pushHash (path) { - if (supportsPushState) { - pushState(getUrl(path)); - } else { - window.location.hash = path; - } -} - -function replaceHash (path) { - if (supportsPushState) { - replaceState(getUrl(path)); - } else { - window.location.replace(getUrl(path)); - } -} - -/* */ - -var AbstractHistory = /*@__PURE__*/(function (History) { - function AbstractHistory (router, base) { - History.call(this, router, base); - this.stack = []; - this.index = -1; - } - - if ( History ) AbstractHistory.__proto__ = History; - AbstractHistory.prototype = Object.create( History && History.prototype ); - AbstractHistory.prototype.constructor = AbstractHistory; - - AbstractHistory.prototype.push = function push (location, onComplete, onAbort) { - var this$1$1 = this; - - this.transitionTo( - location, - function (route) { - this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route); - this$1$1.index++; - onComplete && onComplete(route); - }, - onAbort - ); - }; - - AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) { - var this$1$1 = this; - - this.transitionTo( - location, - function (route) { - this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route); - onComplete && onComplete(route); - }, - onAbort - ); - }; - - AbstractHistory.prototype.go = function go (n) { - var this$1$1 = this; - - var targetIndex = this.index + n; - if (targetIndex < 0 || targetIndex >= this.stack.length) { - return - } - var route = this.stack[targetIndex]; - this.confirmTransition( - route, - function () { - var prev = this$1$1.current; - this$1$1.index = targetIndex; - this$1$1.updateRoute(route); - this$1$1.router.afterHooks.forEach(function (hook) { - hook && hook(route, prev); - }); - }, - function (err) { - if (isNavigationFailure(err, NavigationFailureType.duplicated)) { - this$1$1.index = targetIndex; - } - } - ); - }; - - AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () { - var current = this.stack[this.stack.length - 1]; - return current ? current.fullPath : '/' - }; - - AbstractHistory.prototype.ensureURL = function ensureURL () { - // noop - }; - - return AbstractHistory; -}(History)); - -/* */ - - - -var VueRouter = function VueRouter (options) { - if ( options === void 0 ) options = {}; - - if (process.env.NODE_ENV !== 'production') { - warn(this instanceof VueRouter, "Router must be called with the new operator."); - } - this.app = null; - this.apps = []; - this.options = options; - this.beforeHooks = []; - this.resolveHooks = []; - this.afterHooks = []; - this.matcher = createMatcher(options.routes || [], this); - - var mode = options.mode || 'hash'; - this.fallback = - mode === 'history' && !supportsPushState && options.fallback !== false; - if (this.fallback) { - mode = 'hash'; - } - if (!inBrowser) { - mode = 'abstract'; - } - this.mode = mode; - - switch (mode) { - case 'history': - this.history = new HTML5History(this, options.base); - break - case 'hash': - this.history = new HashHistory(this, options.base, this.fallback); - break - case 'abstract': - this.history = new AbstractHistory(this, options.base); - break - default: - if (process.env.NODE_ENV !== 'production') { - assert(false, ("invalid mode: " + mode)); - } - } -}; - -var prototypeAccessors = { currentRoute: { configurable: true } }; - -VueRouter.prototype.match = function match (raw, current, redirectedFrom) { - return this.matcher.match(raw, current, redirectedFrom) -}; - -prototypeAccessors.currentRoute.get = function () { - return this.history && this.history.current -}; - -VueRouter.prototype.init = function init (app /* Vue component instance */) { - var this$1$1 = this; - - process.env.NODE_ENV !== 'production' && - assert( - install.installed, - "not installed. Make sure to call `Vue.use(VueRouter)` " + - "before creating root instance." - ); - - this.apps.push(app); - - // set up app destroyed handler - // https://github.com/vuejs/vue-router/issues/2639 - app.$once('hook:destroyed', function () { - // clean out app from this.apps array once destroyed - var index = this$1$1.apps.indexOf(app); - if (index > -1) { this$1$1.apps.splice(index, 1); } - // ensure we still have a main app or null if no apps - // we do not release the router so it can be reused - if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; } - - if (!this$1$1.app) { this$1$1.history.teardown(); } - }); - - // main app previously initialized - // return as we don't need to set up new history listener - if (this.app) { - return - } - - this.app = app; - - var history = this.history; - - if (history instanceof HTML5History || history instanceof HashHistory) { - var handleInitialScroll = function (routeOrError) { - var from = history.current; - var expectScroll = this$1$1.options.scrollBehavior; - var supportsScroll = supportsPushState && expectScroll; - - if (supportsScroll && 'fullPath' in routeOrError) { - handleScroll(this$1$1, routeOrError, from, false); - } - }; - var setupListeners = function (routeOrError) { - history.setupListeners(); - handleInitialScroll(routeOrError); - }; - history.transitionTo( - history.getCurrentLocation(), - setupListeners, - setupListeners - ); - } - - history.listen(function (route) { - this$1$1.apps.forEach(function (app) { - app._route = route; - }); - }); -}; - -VueRouter.prototype.beforeEach = function beforeEach (fn) { - return registerHook(this.beforeHooks, fn) -}; - -VueRouter.prototype.beforeResolve = function beforeResolve (fn) { - return registerHook(this.resolveHooks, fn) -}; - -VueRouter.prototype.afterEach = function afterEach (fn) { - return registerHook(this.afterHooks, fn) -}; - -VueRouter.prototype.onReady = function onReady (cb, errorCb) { - this.history.onReady(cb, errorCb); -}; - -VueRouter.prototype.onError = function onError (errorCb) { - this.history.onError(errorCb); -}; - -VueRouter.prototype.push = function push (location, onComplete, onAbort) { - var this$1$1 = this; - - // $flow-disable-line - if (!onComplete && !onAbort && typeof Promise !== 'undefined') { - return new Promise(function (resolve, reject) { - this$1$1.history.push(location, resolve, reject); - }) - } else { - this.history.push(location, onComplete, onAbort); - } -}; - -VueRouter.prototype.replace = function replace (location, onComplete, onAbort) { - var this$1$1 = this; - - // $flow-disable-line - if (!onComplete && !onAbort && typeof Promise !== 'undefined') { - return new Promise(function (resolve, reject) { - this$1$1.history.replace(location, resolve, reject); - }) - } else { - this.history.replace(location, onComplete, onAbort); - } -}; - -VueRouter.prototype.go = function go (n) { - this.history.go(n); -}; - -VueRouter.prototype.back = function back () { - this.go(-1); -}; - -VueRouter.prototype.forward = function forward () { - this.go(1); -}; - -VueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) { - var route = to - ? to.matched - ? to - : this.resolve(to).route - : this.currentRoute; - if (!route) { - return [] - } - return [].concat.apply( - [], - route.matched.map(function (m) { - return Object.keys(m.components).map(function (key) { - return m.components[key] - }) - }) - ) -}; - -VueRouter.prototype.resolve = function resolve ( - to, - current, - append -) { - current = current || this.history.current; - var location = normalizeLocation(to, current, append, this); - var route = this.match(location, current); - var fullPath = route.redirectedFrom || route.fullPath; - var base = this.history.base; - var href = createHref(base, fullPath, this.mode); - return { - location: location, - route: route, - href: href, - // for backwards compat - normalizedTo: location, - resolved: route - } -}; - -VueRouter.prototype.getRoutes = function getRoutes () { - return this.matcher.getRoutes() -}; - -VueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) { - this.matcher.addRoute(parentOrRoute, route); - if (this.history.current !== START) { - this.history.transitionTo(this.history.getCurrentLocation()); - } -}; - -VueRouter.prototype.addRoutes = function addRoutes (routes) { - if (process.env.NODE_ENV !== 'production') { - warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.'); - } - this.matcher.addRoutes(routes); - if (this.history.current !== START) { - this.history.transitionTo(this.history.getCurrentLocation()); - } -}; - -Object.defineProperties( VueRouter.prototype, prototypeAccessors ); - -var VueRouter$1 = VueRouter; - -function registerHook (list, fn) { - list.push(fn); - return function () { - var i = list.indexOf(fn); - if (i > -1) { list.splice(i, 1); } - } -} - -function createHref (base, fullPath, mode) { - var path = mode === 'hash' ? '#' + fullPath : fullPath; - return base ? cleanPath(base + '/' + path) : path -} - -// We cannot remove this as it would be a breaking change -VueRouter.install = install; -VueRouter.version = '3.6.5'; -VueRouter.isNavigationFailure = isNavigationFailure; -VueRouter.NavigationFailureType = NavigationFailureType; -VueRouter.START_LOCATION = START; - -if (inBrowser && window.Vue) { - window.Vue.use(VueRouter); -} - -module.exports = VueRouter$1; - -}, function(modId) {var map = {}; return __REQUIRE__(map[modId], modId); }) -return __REQUIRE__(1758268322129); -})() -//miniprogram-npm-outsideDeps=[] -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/vue-router/index.js.map b/government-mini-program/miniprogram_npm/vue-router/index.js.map deleted file mode 100644 index e226129..0000000 --- a/government-mini-program/miniprogram_npm/vue-router/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["vue-router.common.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n\n\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1$1.ready = true;\n this$1$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1$1.errorCbs.length) {\n this$1$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1$1.replace(to);\n } else {\n this$1$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1$1.apps.indexOf(app);\n if (index > -1) { this$1$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nmodule.exports = VueRouter$1;\n"]} \ No newline at end of file diff --git a/government-mini-program/miniprogram_npm/vue/index.js b/government-mini-program/miniprogram_npm/vue/index.js deleted file mode 100644 index db46384..0000000 --- a/government-mini-program/miniprogram_npm/vue/index.js +++ /dev/null @@ -1,8496 +0,0 @@ -module.exports = (function() { -var __MODS__ = {}; -var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; -var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; -var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; -var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; -__DEFINE__(1758268322130, function(require, module, exports) { -if (process.env.NODE_ENV === 'production') { - module.exports = require('./vue.runtime.common.prod.js') -} else { - module.exports = require('./vue.runtime.common.dev.js') -} - -}, function(modId) {var map = {"./vue.runtime.common.prod.js":1758268322131,"./vue.runtime.common.dev.js":1758268322132}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322131, function(require, module, exports) { -/*! - * Vue.js v2.6.14 - * (c) 2014-2021 Evan You - * Released under the MIT License. - */ -var t=Object.freeze({});function e(t){return null==t}function n(t){return null!=t}function r(t){return!0===t}function o(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function i(t){return null!==t&&"object"==typeof t}var a=Object.prototype.toString;function s(t){return"[object Object]"===a.call(t)}function c(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function u(t){return n(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function l(t){return null==t?"":Array.isArray(t)||s(t)&&t.toString===a?JSON.stringify(t,null,2):String(t)}function f(t){var e=parseFloat(t);return isNaN(e)?t:e}function d(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(n,1)}}var h=Object.prototype.hasOwnProperty;function m(t,e){return h.call(t,e)}function y(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var g=/-(\w)/g,_=y(function(t){return t.replace(g,function(t,e){return e?e.toUpperCase():""})}),b=y(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),C=/\B([A-Z])/g,$=y(function(t){return t.replace(C,"-$1").toLowerCase()});var w=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function A(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function x(t,e){for(var n in e)t[n]=e[n];return t}function k(t){for(var e={},n=0;n0,K=z&&z.indexOf("edge/")>0,X=(z&&z.indexOf("android"),z&&/iphone|ipad|ipod|ios/.test(z)||"ios"===B),G=(z&&/chrome\/\d+/.test(z),z&&/phantomjs/.test(z),z&&z.match(/firefox\/(\d+)/)),Z={}.watch,J=!1;if(U)try{var Q={};Object.defineProperty(Q,"passive",{get:function(){J=!0}}),window.addEventListener("test-passive",null,Q)}catch(t){}var Y=function(){return void 0===R&&(R=!U&&!H&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),R},tt=U&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function et(t){return"function"==typeof t&&/native code/.test(t.toString())}var nt,rt="undefined"!=typeof Symbol&&et(Symbol)&&"undefined"!=typeof Reflect&&et(Reflect.ownKeys);nt="undefined"!=typeof Set&&et(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ot=O,it=0,at=function(){this.id=it++,this.subs=[]};at.prototype.addSub=function(t){this.subs.push(t)},at.prototype.removeSub=function(t){v(this.subs,t)},at.prototype.depend=function(){at.target&&at.target.addDep(this)},at.prototype.notify=function(){for(var t=this.subs.slice(),e=0,n=t.length;e-1)if(i&&!m(o,"default"))a=!1;else if(""===a||a===$(t)){var c=Mt(String,o.type);(c<0||s0&&(ae((u=t(u,(a||"")+"_"+c))[0])&&ae(f)&&(s[l]=pt(f.text+u[0].text),u.shift()),s.push.apply(s,u)):o(u)?ae(f)?s[l]=pt(f.text+u):""!==u&&s.push(pt(u)):ae(u)&&ae(f)?s[l]=pt(f.text+u.text):(r(i._isVList)&&n(u.tag)&&e(u.key)&&n(a)&&(u.key="__vlist"+a+"_"+c+"__"),s.push(u)));return s}(t):void 0}function ae(t){return n(t)&&n(t.text)&&!1===t.isComment}function se(t,e){if(t){for(var n=Object.create(null),r=rt?Reflect.ownKeys(t):Object.keys(t),o=0;o0,a=e?!!e.$stable:!i,s=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(a&&r&&r!==t&&s===r.$key&&!i&&!r.$hasNormal)return r;for(var c in o={},e)e[c]&&"$"!==c[0]&&(o[c]=de(n,c,e[c]))}else o={};for(var u in n)u in o||(o[u]=pe(n,u));return e&&Object.isExtensible(e)&&(e._normalized=o),M(o,"$stable",a),M(o,"$key",s),M(o,"$hasNormal",i),o}function de(t,e,n){var r=function(){var t=arguments.length?n.apply(null,arguments):n({}),e=(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:ie(t))&&t[0];return t&&(!e||1===t.length&&e.isComment&&!le(e))?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function pe(t,e){return function(){return t[e]}}function ve(t,e){var r,o,a,s,c;if(Array.isArray(t)||"string"==typeof t)for(r=new Array(t.length),o=0,a=t.length;odocument.createEvent("Event").timeStamp&&(an=function(){return sn.now()})}function cn(){var t,e;for(on=an(),nn=!0,Qe.sort(function(t,e){return t.id-e.id}),rn=0;rnrn&&Qe[n].id>t.id;)n--;Qe.splice(n+1,0,t)}else Qe.push(t);en||(en=!0,Jt(cn))}}(this)},ln.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||i(t)||this.deep){var e=this.value;if(this.value=t,this.user){var n='callback for watcher "'+this.expression+'"';Rt(this.cb,this.vm,[t,e],this.vm,n)}else this.cb.call(this.vm,t,e)}}},ln.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},ln.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},ln.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||v(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var fn={enumerable:!0,configurable:!0,get:O,set:O};function dn(t,e,n){fn.get=function(){return this[e][n]},fn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,fn)}function pn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$options._propKeys=[];t.$parent&&_t(!1);var i=function(i){o.push(i);var a=Dt(i,e,n,t);$t(r,i,a),i in t||dn(t,"_props",i)};for(var a in e)i(a);_t(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?O:w(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;s(e=t._data="function"==typeof e?function(t,e){ct();try{return t.call(e,e)}catch(t){return Ft(t,e,"data()"),{}}finally{ut()}}(e,t):e||{})||(e={});var n=Object.keys(e),r=t.$options.props,o=(t.$options.methods,n.length);for(;o--;){var i=n[o];r&&m(r,i)||(a=void 0,36!==(a=(i+"").charCodeAt(0))&&95!==a&&dn(t,"_data",i))}var a;Ct(e,!0)}(t):Ct(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=Y();for(var o in e){var i=e[o],a="function"==typeof i?i:i.get;r||(n[o]=new ln(t,a||O,O,vn)),o in t||hn(t,o,i)}}(t,e.computed),e.watch&&e.watch!==Z&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var o=0;o-1:"string"==typeof t?t.split(",").indexOf(e)>-1:(n=t,"[object RegExp]"===a.call(n)&&t.test(e));var n}function xn(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=a.name;s&&!e(s)&&kn(n,i,r,o)}}}function kn(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,v(n,e)}!function(e){e.prototype._init=function(e){var n=this;n._uid=_n++,n._isVue=!0,e&&e._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(n,e):n.$options=jt(bn(n.constructor),e||{},n),n._renderProxy=n,n._self=n,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(n),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&qe(t,e)}(n),function(e){e._vnode=null,e._staticTrees=null;var n=e.$options,r=e.$vnode=n._parentVnode,o=r&&r.context;e.$slots=ce(n._renderChildren,o),e.$scopedSlots=t,e._c=function(t,n,r,o){return Fe(e,t,n,r,o,!1)},e.$createElement=function(t,n,r,o){return Fe(e,t,n,r,o,!0)};var i=r&&r.data;$t(e,"$attrs",i&&i.attrs||t,null,!0),$t(e,"$listeners",n._parentListeners||t,null,!0)}(n),Je(n,"beforeCreate"),function(t){var e=se(t.$options.inject,t);e&&(_t(!1),Object.keys(e).forEach(function(n){$t(t,n,e[n])}),_t(!0))}(n),pn(n),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(n),Je(n,"created"),n.$options.el&&n.$mount(n.$options.el)}}(Cn),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=wt,t.prototype.$delete=At,t.prototype.$watch=function(t,e,n){if(s(e))return gn(this,t,e,n);(n=n||{}).user=!0;var r=new ln(this,t,e,n);if(n.immediate){var o='callback for immediate watcher "'+r.expression+'"';ct(),Rt(e,this,[r.value],this,o),ut()}return function(){r.teardown()}}}(Cn),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(Array.isArray(t))for(var o=0,i=t.length;o1?A(e):e;for(var n=A(arguments,1),r='event handler for "'+t+'"',o=0,i=e.length;oparseInt(this.max)&&kn(t,e[0],e,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)kn(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",function(e){xn(t,function(t){return An(e,t)})}),this.$watch("exclude",function(e){xn(t,function(t){return!An(e,t)})})},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=He(t),n=e&&e.componentOptions;if(n){var r=wn(n),o=this.include,i=this.exclude;if(o&&(!r||!An(o,r))||i&&r&&An(i,r))return e;var a=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;a[c]?(e.componentInstance=a[c].componentInstance,v(s,c),s.push(c)):(this.vnodeToCache=e,this.keyToCache=c),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return L}};Object.defineProperty(t,"config",e),t.util={warn:ot,extend:x,mergeOptions:jt,defineReactive:$t},t.set=wt,t.delete=At,t.nextTick=Jt,t.observable=function(t){return Ct(t),t},t.options=Object.create(null),N.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,x(t.options.components,Sn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=A(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=jt(this.options,t),this}}(t),$n(t),function(t){N.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&s(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}(t)}(Cn),Object.defineProperty(Cn.prototype,"$isServer",{get:Y}),Object.defineProperty(Cn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Cn,"FunctionalRenderContext",{value:Ee}),Cn.version="2.6.14";var En=d("style,class"),Tn=d("input,textarea,option,select,progress"),jn=d("contenteditable,draggable,spellcheck"),In=d("events,caret,typing,plaintext-only"),Dn=function(t,e){return Fn(e)||"false"===e?"false":"contenteditable"===t&&In(e)?e:"true"},Nn=d("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),Pn="http://www.w3.org/1999/xlink",Ln=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Mn=function(t){return Ln(t)?t.slice(6,t.length):""},Fn=function(t){return null==t||!1===t};function Rn(t){for(var e=t.data,r=t,o=t;n(o.componentInstance);)(o=o.componentInstance._vnode)&&o.data&&(e=Vn(o.data,e));for(;n(r=r.parent);)r&&r.data&&(e=Vn(e,r.data));return function(t,e){if(n(t)||n(e))return Un(t,Hn(e));return""}(e.staticClass,e.class)}function Vn(t,e){return{staticClass:Un(t.staticClass,e.staticClass),class:n(t.class)?[t.class,e.class]:e.class}}function Un(t,e){return t?e?t+" "+e:t:e||""}function Hn(t){return Array.isArray(t)?function(t){for(var e,r="",o=0,i=t.length;o-1?fr(t,e,n):Nn(e)?Fn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):jn(e)?t.setAttribute(e,Dn(e,n)):Ln(e)?Fn(n)?t.removeAttributeNS(Pn,Mn(e)):t.setAttributeNS(Pn,e,n):fr(t,e,n)}function fr(t,e,n){if(Fn(n))t.removeAttribute(e);else{if(W&&!q&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var dr={create:ur,update:ur};function pr(t,r){var o=r.elm,i=r.data,a=t.data;if(!(e(i.staticClass)&&e(i.class)&&(e(a)||e(a.staticClass)&&e(a.class)))){var s=Rn(r),c=o._transitionClasses;n(c)&&(s=Un(s,Hn(c))),s!==o._prevClass&&(o.setAttribute("class",s),o._prevClass=s)}}var vr,hr={create:pr,update:pr},mr="__r",yr="__c";function gr(t,e,n){var r=vr;return function o(){null!==e.apply(null,arguments)&&Cr(t,o,n,r)}}var _r=Bt&&!(G&&Number(G[1])<=53);function br(t,e,n,r){if(_r){var o=on,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}vr.addEventListener(t,e,J?{capture:n,passive:r}:n)}function Cr(t,e,n,r){(r||vr).removeEventListener(t,e._wrapper||e,n)}function $r(t,r){if(!e(t.data.on)||!e(r.data.on)){var o=r.data.on||{},i=t.data.on||{};vr=r.elm,function(t){if(n(t[mr])){var e=W?"change":"input";t[e]=[].concat(t[mr],t[e]||[]),delete t[mr]}n(t[yr])&&(t.change=[].concat(t[yr],t.change||[]),delete t[yr])}(o),ne(o,i,br,Cr,gr,r.context),vr=void 0}}var wr,Ar={create:$r,update:$r};function xr(t,r){if(!e(t.data.domProps)||!e(r.data.domProps)){var o,i,a=r.elm,s=t.data.domProps||{},c=r.data.domProps||{};for(o in n(c.__ob__)&&(c=r.data.domProps=x({},c)),s)o in c||(a[o]="");for(o in c){if(i=c[o],"textContent"===o||"innerHTML"===o){if(r.children&&(r.children.length=0),i===s[o])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===o&&"PROGRESS"!==a.tagName){a._value=i;var u=e(i)?"":String(i);kr(a,u)&&(a.value=u)}else if("innerHTML"===o&&Wn(a.tagName)&&e(a.innerHTML)){(wr=wr||document.createElement("div")).innerHTML=""+i+"";for(var l=wr.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}else if(i!==s[o])try{a[o]=i}catch(t){}}}}function kr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var r=t.value,o=t._vModifiers;if(n(o)){if(o.number)return f(r)!==f(e);if(o.trim)return r.trim()!==e.trim()}return r!==e}(t,e))}var Or={create:xr,update:xr},Sr=y(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e});function Er(t){var e=Tr(t.style);return t.staticStyle?x(t.staticStyle,e):e}function Tr(t){return Array.isArray(t)?k(t):"string"==typeof t?Sr(t):t}var jr,Ir=/^--/,Dr=/\s*!important$/,Nr=function(t,e,n){if(Ir.test(e))t.style.setProperty(e,n);else if(Dr.test(n))t.style.setProperty($(e),n.replace(Dr,""),"important");else{var r=Lr(e);if(Array.isArray(n))for(var o=0,i=n.length;o-1?e.split(Rr).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Ur(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Rr).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function Hr(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&x(e,Br(t.name||"v")),x(e,t),e}return"string"==typeof t?Br(t):void 0}}var Br=y(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),zr=U&&!q,Wr="transition",qr="animation",Kr="transition",Xr="transitionend",Gr="animation",Zr="animationend";zr&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Kr="WebkitTransition",Xr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Gr="WebkitAnimation",Zr="webkitAnimationEnd"));var Jr=U?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Qr(t){Jr(function(){Jr(t)})}function Yr(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Vr(t,e))}function to(t,e){t._transitionClasses&&v(t._transitionClasses,e),Ur(t,e)}function eo(t,e,n){var r=ro(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s=o===Wr?Xr:Zr,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout(function(){c0&&(n=Wr,l=a,f=i.length):e===qr?u>0&&(n=qr,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?Wr:qr:null)?n===Wr?i.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===Wr&&no.test(r[Kr+"Property"])}}function oo(t,e){for(;t.length1}function lo(t,e){!0!==e.data.show&&ao(e)}var fo=function(t){var i,a,s={},c=t.modules,u=t.nodeOps;for(i=0;iv?_(t,e(o[y+1])?null:o[y+1].elm,o,p,y,i):p>y&&C(r,d,v)}(d,h,y,i,l):n(y)?(n(t.text)&&u.setTextContent(d,""),_(d,null,y,0,y.length-1,i)):n(h)?C(h,0,h.length-1):n(t.text)&&u.setTextContent(d,""):t.text!==o.text&&u.setTextContent(d,o.text),n(v)&&n(p=v.hook)&&n(p=p.postpatch)&&p(t,o)}}}function x(t,e,o){if(r(o)&&n(t.parent))t.parent.data.pendingInsert=e;else for(var i=0;i-1,a.selected!==i&&(a.selected=i);else if(T(yo(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function mo(t,e){return e.every(function(e){return!T(e,t)})}function yo(t){return"_value"in t?t._value:t.value}function go(t){t.target.composing=!0}function _o(t){t.target.composing&&(t.target.composing=!1,bo(t.target,"input"))}function bo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Co(t){return!t.componentInstance||t.data&&t.data.transition?t:Co(t.componentInstance._vnode)}var $o={model:po,show:{bind:function(t,e,n){var r=e.value,o=(n=Co(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,ao(n,function(){t.style.display=i})):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=Co(n)).data&&n.data.transition?(n.data.show=!0,r?ao(n,function(){t.style.display=t.__vOriginalDisplay}):so(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},wo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ao(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Ao(He(e.children)):t}function xo(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var i in o)e[_(i)]=o[i];return e}function ko(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Oo=function(t){return t.tag||le(t)},So=function(t){return"show"===t.name},Eo={name:"transition",props:wo,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Oo)).length){var r=this.mode,i=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return i;var a=Ao(i);if(!a)return i;if(this._leaving)return ko(t,i);var s="__transition-"+this._uid+"-";a.key=null==a.key?a.isComment?s+"comment":s+a.tag:o(a.key)?0===String(a.key).indexOf(s)?a.key:s+a.key:a.key;var c=(a.data||(a.data={})).transition=xo(this),u=this._vnode,l=Ao(u);if(a.data.directives&&a.data.directives.some(So)&&(a.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(a,l)&&!le(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=x({},c);if("out-in"===r)return this._leaving=!0,re(f,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),ko(t,i);if("in-out"===r){if(le(a))return u;var d,p=function(){d()};re(c,"afterEnter",p),re(c,"enterCancelled",p),re(f,"delayLeave",function(t){d=t})}}return i}}},To=x({tag:String,moveClass:String},wo);function jo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Io(t){t.data.newPos=t.elm.getBoundingClientRect()}function Do(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate("+r+"px,"+o+"px)",i.transitionDuration="0s"}}delete To.mode;var No={Transition:Eo,TransitionGroup:{props:To,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Xe(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=xo(this),s=0;s-1?Kn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Kn[t]=/HTMLUnknownElement/.test(e.toString())},x(Cn.options.directives,$o),x(Cn.options.components,No),Cn.prototype.__patch__=U?fo:O,Cn.prototype.$mount=function(t,e){return function(t,e,n){var r;return t.$el=e,t.$options.render||(t.$options.render=dt),Je(t,"beforeMount"),r=function(){t._update(t._render(),n)},new ln(t,r,O,{before:function(){t._isMounted&&!t._isDestroyed&&Je(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,Je(t,"mounted")),t}(this,t=t&&U?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,e)},U&&setTimeout(function(){L.devtools&&tt&&tt.emit("init",Cn)},0),module.exports=Cn; -}, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) -__DEFINE__(1758268322132, function(require, module, exports) { -/*! - * Vue.js v2.6.14 - * (c) 2014-2021 Evan You - * Released under the MIT License. - */ - - -/* */ - -var emptyObject = Object.freeze({}); - -// These helpers produce better VM code in JS engines due to their -// explicitness and function inlining. -function isUndef (v) { - return v === undefined || v === null -} - -function isDef (v) { - return v !== undefined && v !== null -} - -function isTrue (v) { - return v === true -} - -function isFalse (v) { - return v === false -} - -/** - * Check if value is primitive. - */ -function isPrimitive (value) { - return ( - typeof value === 'string' || - typeof value === 'number' || - // $flow-disable-line - typeof value === 'symbol' || - typeof value === 'boolean' - ) -} - -/** - * Quick object check - this is primarily used to tell - * Objects from primitive values when we know the value - * is a JSON-compliant type. - */ -function isObject (obj) { - return obj !== null && typeof obj === 'object' -} - -/** - * Get the raw type string of a value, e.g., [object Object]. - */ -var _toString = Object.prototype.toString; - -function toRawType (value) { - return _toString.call(value).slice(8, -1) -} - -/** - * Strict object type check. Only returns true - * for plain JavaScript objects. - */ -function isPlainObject (obj) { - return _toString.call(obj) === '[object Object]' -} - -function isRegExp (v) { - return _toString.call(v) === '[object RegExp]' -} - -/** - * Check if val is a valid array index. - */ -function isValidArrayIndex (val) { - var n = parseFloat(String(val)); - return n >= 0 && Math.floor(n) === n && isFinite(val) -} - -function isPromise (val) { - return ( - isDef(val) && - typeof val.then === 'function' && - typeof val.catch === 'function' - ) -} - -/** - * Convert a value to a string that is actually rendered. - */ -function toString (val) { - return val == null - ? '' - : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) - ? JSON.stringify(val, null, 2) - : String(val) -} - -/** - * Convert an input value to a number for persistence. - * If the conversion fails, return original string. - */ -function toNumber (val) { - var n = parseFloat(val); - return isNaN(n) ? val : n -} - -/** - * Make a map and return a function for checking if a key - * is in that map. - */ -function makeMap ( - str, - expectsLowerCase -) { - var map = Object.create(null); - var list = str.split(','); - for (var i = 0; i < list.length; i++) { - map[list[i]] = true; - } - return expectsLowerCase - ? function (val) { return map[val.toLowerCase()]; } - : function (val) { return map[val]; } -} - -/** - * Check if a tag is a built-in tag. - */ -var isBuiltInTag = makeMap('slot,component', true); - -/** - * Check if an attribute is a reserved attribute. - */ -var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is'); - -/** - * Remove an item from an array. - */ -function remove (arr, item) { - if (arr.length) { - var index = arr.indexOf(item); - if (index > -1) { - return arr.splice(index, 1) - } - } -} - -/** - * Check whether an object has the property. - */ -var hasOwnProperty = Object.prototype.hasOwnProperty; -function hasOwn (obj, key) { - return hasOwnProperty.call(obj, key) -} - -/** - * Create a cached version of a pure function. - */ -function cached (fn) { - var cache = Object.create(null); - return (function cachedFn (str) { - var hit = cache[str]; - return hit || (cache[str] = fn(str)) - }) -} - -/** - * Camelize a hyphen-delimited string. - */ -var camelizeRE = /-(\w)/g; -var camelize = cached(function (str) { - return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }) -}); - -/** - * Capitalize a string. - */ -var capitalize = cached(function (str) { - return str.charAt(0).toUpperCase() + str.slice(1) -}); - -/** - * Hyphenate a camelCase string. - */ -var hyphenateRE = /\B([A-Z])/g; -var hyphenate = cached(function (str) { - return str.replace(hyphenateRE, '-$1').toLowerCase() -}); - -/** - * Simple bind polyfill for environments that do not support it, - * e.g., PhantomJS 1.x. Technically, we don't need this anymore - * since native bind is now performant enough in most browsers. - * But removing it would mean breaking code that was able to run in - * PhantomJS 1.x, so this must be kept for backward compatibility. - */ - -/* istanbul ignore next */ -function polyfillBind (fn, ctx) { - function boundFn (a) { - var l = arguments.length; - return l - ? l > 1 - ? fn.apply(ctx, arguments) - : fn.call(ctx, a) - : fn.call(ctx) - } - - boundFn._length = fn.length; - return boundFn -} - -function nativeBind (fn, ctx) { - return fn.bind(ctx) -} - -var bind = Function.prototype.bind - ? nativeBind - : polyfillBind; - -/** - * Convert an Array-like object to a real Array. - */ -function toArray (list, start) { - start = start || 0; - var i = list.length - start; - var ret = new Array(i); - while (i--) { - ret[i] = list[i + start]; - } - return ret -} - -/** - * Mix properties into target object. - */ -function extend (to, _from) { - for (var key in _from) { - to[key] = _from[key]; - } - return to -} - -/** - * Merge an Array of Objects into a single Object. - */ -function toObject (arr) { - var res = {}; - for (var i = 0; i < arr.length; i++) { - if (arr[i]) { - extend(res, arr[i]); - } - } - return res -} - -/* eslint-disable no-unused-vars */ - -/** - * Perform no operation. - * Stubbing args to make Flow happy without leaving useless transpiled code - * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/). - */ -function noop (a, b, c) {} - -/** - * Always return false. - */ -var no = function (a, b, c) { return false; }; - -/* eslint-enable no-unused-vars */ - -/** - * Return the same value. - */ -var identity = function (_) { return _; }; - -/** - * Check if two values are loosely equal - that is, - * if they are plain objects, do they have the same shape? - */ -function looseEqual (a, b) { - if (a === b) { return true } - var isObjectA = isObject(a); - var isObjectB = isObject(b); - if (isObjectA && isObjectB) { - try { - var isArrayA = Array.isArray(a); - var isArrayB = Array.isArray(b); - if (isArrayA && isArrayB) { - return a.length === b.length && a.every(function (e, i) { - return looseEqual(e, b[i]) - }) - } else if (a instanceof Date && b instanceof Date) { - return a.getTime() === b.getTime() - } else if (!isArrayA && !isArrayB) { - var keysA = Object.keys(a); - var keysB = Object.keys(b); - return keysA.length === keysB.length && keysA.every(function (key) { - return looseEqual(a[key], b[key]) - }) - } else { - /* istanbul ignore next */ - return false - } - } catch (e) { - /* istanbul ignore next */ - return false - } - } else if (!isObjectA && !isObjectB) { - return String(a) === String(b) - } else { - return false - } -} - -/** - * Return the first index at which a loosely equal value can be - * found in the array (if value is a plain object, the array must - * contain an object of the same shape), or -1 if it is not present. - */ -function looseIndexOf (arr, val) { - for (var i = 0; i < arr.length; i++) { - if (looseEqual(arr[i], val)) { return i } - } - return -1 -} - -/** - * Ensure a function is called only once. - */ -function once (fn) { - var called = false; - return function () { - if (!called) { - called = true; - fn.apply(this, arguments); - } - } -} - -var SSR_ATTR = 'data-server-rendered'; - -var ASSET_TYPES = [ - 'component', - 'directive', - 'filter' -]; - -var LIFECYCLE_HOOKS = [ - 'beforeCreate', - 'created', - 'beforeMount', - 'mounted', - 'beforeUpdate', - 'updated', - 'beforeDestroy', - 'destroyed', - 'activated', - 'deactivated', - 'errorCaptured', - 'serverPrefetch' -]; - -/* */ - - - -var config = ({ - /** - * Option merge strategies (used in core/util/options) - */ - // $flow-disable-line - optionMergeStrategies: Object.create(null), - - /** - * Whether to suppress warnings. - */ - silent: false, - - /** - * Show production mode tip message on boot? - */ - productionTip: "development" !== 'production', - - /** - * Whether to enable devtools - */ - devtools: "development" !== 'production', - - /** - * Whether to record perf - */ - performance: false, - - /** - * Error handler for watcher errors - */ - errorHandler: null, - - /** - * Warn handler for watcher warns - */ - warnHandler: null, - - /** - * Ignore certain custom elements - */ - ignoredElements: [], - - /** - * Custom user key aliases for v-on - */ - // $flow-disable-line - keyCodes: Object.create(null), - - /** - * Check if a tag is reserved so that it cannot be registered as a - * component. This is platform-dependent and may be overwritten. - */ - isReservedTag: no, - - /** - * Check if an attribute is reserved so that it cannot be used as a component - * prop. This is platform-dependent and may be overwritten. - */ - isReservedAttr: no, - - /** - * Check if a tag is an unknown element. - * Platform-dependent. - */ - isUnknownElement: no, - - /** - * Get the namespace of an element - */ - getTagNamespace: noop, - - /** - * Parse the real tag name for the specific platform. - */ - parsePlatformTagName: identity, - - /** - * Check if an attribute must be bound using property, e.g. value - * Platform-dependent. - */ - mustUseProp: no, - - /** - * Perform updates asynchronously. Intended to be used by Vue Test Utils - * This will significantly reduce performance if set to false. - */ - async: true, - - /** - * Exposed for legacy reasons - */ - _lifecycleHooks: LIFECYCLE_HOOKS -}); - -/* */ - -/** - * unicode letters used for parsing html tags, component names and property paths. - * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname - * skipping \u10000-\uEFFFF due to it freezing up PhantomJS - */ -var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/; - -/** - * Check if a string starts with $ or _ - */ -function isReserved (str) { - var c = (str + '').charCodeAt(0); - return c === 0x24 || c === 0x5F -} - -/** - * Define a property. - */ -function def (obj, key, val, enumerable) { - Object.defineProperty(obj, key, { - value: val, - enumerable: !!enumerable, - writable: true, - configurable: true - }); -} - -/** - * Parse simple path. - */ -var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]")); -function parsePath (path) { - if (bailRE.test(path)) { - return - } - var segments = path.split('.'); - return function (obj) { - for (var i = 0; i < segments.length; i++) { - if (!obj) { return } - obj = obj[segments[i]]; - } - return obj - } -} - -/* */ - -// can we use __proto__? -var hasProto = '__proto__' in {}; - -// Browser environment sniffing -var inBrowser = typeof window !== 'undefined'; -var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform; -var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); -var UA = inBrowser && window.navigator.userAgent.toLowerCase(); -var isIE = UA && /msie|trident/.test(UA); -var isIE9 = UA && UA.indexOf('msie 9.0') > 0; -var isEdge = UA && UA.indexOf('edge/') > 0; -var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android'); -var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios'); -var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; -var isPhantomJS = UA && /phantomjs/.test(UA); -var isFF = UA && UA.match(/firefox\/(\d+)/); - -// Firefox has a "watch" function on Object.prototype... -var nativeWatch = ({}).watch; - -var supportsPassive = false; -if (inBrowser) { - try { - var opts = {}; - Object.defineProperty(opts, 'passive', ({ - get: function get () { - /* istanbul ignore next */ - supportsPassive = true; - } - })); // https://github.com/facebook/flow/issues/285 - window.addEventListener('test-passive', null, opts); - } catch (e) {} -} - -// this needs to be lazy-evaled because vue may be required before -// vue-server-renderer can set VUE_ENV -var _isServer; -var isServerRendering = function () { - if (_isServer === undefined) { - /* istanbul ignore if */ - if (!inBrowser && !inWeex && typeof global !== 'undefined') { - // detect presence of vue-server-renderer and avoid - // Webpack shimming the process - _isServer = global['process'] && global['process'].env.VUE_ENV === 'server'; - } else { - _isServer = false; - } - } - return _isServer -}; - -// detect devtools -var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; - -/* istanbul ignore next */ -function isNative (Ctor) { - return typeof Ctor === 'function' && /native code/.test(Ctor.toString()) -} - -var hasSymbol = - typeof Symbol !== 'undefined' && isNative(Symbol) && - typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys); - -var _Set; -/* istanbul ignore if */ // $flow-disable-line -if (typeof Set !== 'undefined' && isNative(Set)) { - // use native Set when available. - _Set = Set; -} else { - // a non-standard Set polyfill that only works with primitive keys. - _Set = /*@__PURE__*/(function () { - function Set () { - this.set = Object.create(null); - } - Set.prototype.has = function has (key) { - return this.set[key] === true - }; - Set.prototype.add = function add (key) { - this.set[key] = true; - }; - Set.prototype.clear = function clear () { - this.set = Object.create(null); - }; - - return Set; - }()); -} - -/* */ - -var warn = noop; -var tip = noop; -var generateComponentTrace = (noop); // work around flow check -var formatComponentName = (noop); - -{ - var hasConsole = typeof console !== 'undefined'; - var classifyRE = /(?:^|[-_])(\w)/g; - var classify = function (str) { return str - .replace(classifyRE, function (c) { return c.toUpperCase(); }) - .replace(/[-_]/g, ''); }; - - warn = function (msg, vm) { - var trace = vm ? generateComponentTrace(vm) : ''; - - if (config.warnHandler) { - config.warnHandler.call(null, msg, vm, trace); - } else if (hasConsole && (!config.silent)) { - console.error(("[Vue warn]: " + msg + trace)); - } - }; - - tip = function (msg, vm) { - if (hasConsole && (!config.silent)) { - console.warn("[Vue tip]: " + msg + ( - vm ? generateComponentTrace(vm) : '' - )); - } - }; - - formatComponentName = function (vm, includeFile) { - if (vm.$root === vm) { - return '' - } - var options = typeof vm === 'function' && vm.cid != null - ? vm.options - : vm._isVue - ? vm.$options || vm.constructor.options - : vm; - var name = options.name || options._componentTag; - var file = options.__file; - if (!name && file) { - var match = file.match(/([^/\\]+)\.vue$/); - name = match && match[1]; - } - - return ( - (name ? ("<" + (classify(name)) + ">") : "") + - (file && includeFile !== false ? (" at " + file) : '') - ) - }; - - var repeat = function (str, n) { - var res = ''; - while (n) { - if (n % 2 === 1) { res += str; } - if (n > 1) { str += str; } - n >>= 1; - } - return res - }; - - generateComponentTrace = function (vm) { - if (vm._isVue && vm.$parent) { - var tree = []; - var currentRecursiveSequence = 0; - while (vm) { - if (tree.length > 0) { - var last = tree[tree.length - 1]; - if (last.constructor === vm.constructor) { - currentRecursiveSequence++; - vm = vm.$parent; - continue - } else if (currentRecursiveSequence > 0) { - tree[tree.length - 1] = [last, currentRecursiveSequence]; - currentRecursiveSequence = 0; - } - } - tree.push(vm); - vm = vm.$parent; - } - return '\n\nfound in\n\n' + tree - .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) - ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)") - : formatComponentName(vm))); }) - .join('\n') - } else { - return ("\n\n(found in " + (formatComponentName(vm)) + ")") - } - }; -} - -/* */ - -var uid = 0; - -/** - * A dep is an observable that can have multiple - * directives subscribing to it. - */ -var Dep = function Dep () { - this.id = uid++; - this.subs = []; -}; - -Dep.prototype.addSub = function addSub (sub) { - this.subs.push(sub); -}; - -Dep.prototype.removeSub = function removeSub (sub) { - remove(this.subs, sub); -}; - -Dep.prototype.depend = function depend () { - if (Dep.target) { - Dep.target.addDep(this); - } -}; - -Dep.prototype.notify = function notify () { - // stabilize the subscriber list first - var subs = this.subs.slice(); - if (!config.async) { - // subs aren't sorted in scheduler if not running async - // we need to sort them now to make sure they fire in correct - // order - subs.sort(function (a, b) { return a.id - b.id; }); - } - for (var i = 0, l = subs.length; i < l; i++) { - subs[i].update(); - } -}; - -// The current target watcher being evaluated. -// This is globally unique because only one watcher -// can be evaluated at a time. -Dep.target = null; -var targetStack = []; - -function pushTarget (target) { - targetStack.push(target); - Dep.target = target; -} - -function popTarget () { - targetStack.pop(); - Dep.target = targetStack[targetStack.length - 1]; -} - -/* */ - -var VNode = function VNode ( - tag, - data, - children, - text, - elm, - context, - componentOptions, - asyncFactory -) { - this.tag = tag; - this.data = data; - this.children = children; - this.text = text; - this.elm = elm; - this.ns = undefined; - this.context = context; - this.fnContext = undefined; - this.fnOptions = undefined; - this.fnScopeId = undefined; - this.key = data && data.key; - this.componentOptions = componentOptions; - this.componentInstance = undefined; - this.parent = undefined; - this.raw = false; - this.isStatic = false; - this.isRootInsert = true; - this.isComment = false; - this.isCloned = false; - this.isOnce = false; - this.asyncFactory = asyncFactory; - this.asyncMeta = undefined; - this.isAsyncPlaceholder = false; -}; - -var prototypeAccessors = { child: { configurable: true } }; - -// DEPRECATED: alias for componentInstance for backwards compat. -/* istanbul ignore next */ -prototypeAccessors.child.get = function () { - return this.componentInstance -}; - -Object.defineProperties( VNode.prototype, prototypeAccessors ); - -var createEmptyVNode = function (text) { - if ( text === void 0 ) text = ''; - - var node = new VNode(); - node.text = text; - node.isComment = true; - return node -}; - -function createTextVNode (val) { - return new VNode(undefined, undefined, undefined, String(val)) -} - -// optimized shallow clone -// used for static nodes and slot nodes because they may be reused across -// multiple renders, cloning them avoids errors when DOM manipulations rely -// on their elm reference. -function cloneVNode (vnode) { - var cloned = new VNode( - vnode.tag, - vnode.data, - // #7975 - // clone children array to avoid mutating original in case of cloning - // a child. - vnode.children && vnode.children.slice(), - vnode.text, - vnode.elm, - vnode.context, - vnode.componentOptions, - vnode.asyncFactory - ); - cloned.ns = vnode.ns; - cloned.isStatic = vnode.isStatic; - cloned.key = vnode.key; - cloned.isComment = vnode.isComment; - cloned.fnContext = vnode.fnContext; - cloned.fnOptions = vnode.fnOptions; - cloned.fnScopeId = vnode.fnScopeId; - cloned.asyncMeta = vnode.asyncMeta; - cloned.isCloned = true; - return cloned -} - -/* - * not type checking this file because flow doesn't play well with - * dynamically accessing methods on Array prototype - */ - -var arrayProto = Array.prototype; -var arrayMethods = Object.create(arrayProto); - -var methodsToPatch = [ - 'push', - 'pop', - 'shift', - 'unshift', - 'splice', - 'sort', - 'reverse' -]; - -/** - * Intercept mutating methods and emit events - */ -methodsToPatch.forEach(function (method) { - // cache original method - var original = arrayProto[method]; - def(arrayMethods, method, function mutator () { - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - var result = original.apply(this, args); - var ob = this.__ob__; - var inserted; - switch (method) { - case 'push': - case 'unshift': - inserted = args; - break - case 'splice': - inserted = args.slice(2); - break - } - if (inserted) { ob.observeArray(inserted); } - // notify change - ob.dep.notify(); - return result - }); -}); - -/* */ - -var arrayKeys = Object.getOwnPropertyNames(arrayMethods); - -/** - * In some cases we may want to disable observation inside a component's - * update computation. - */ -var shouldObserve = true; - -function toggleObserving (value) { - shouldObserve = value; -} - -/** - * Observer class that is attached to each observed - * object. Once attached, the observer converts the target - * object's property keys into getter/setters that - * collect dependencies and dispatch updates. - */ -var Observer = function Observer (value) { - this.value = value; - this.dep = new Dep(); - this.vmCount = 0; - def(value, '__ob__', this); - if (Array.isArray(value)) { - if (hasProto) { - protoAugment(value, arrayMethods); - } else { - copyAugment(value, arrayMethods, arrayKeys); - } - this.observeArray(value); - } else { - this.walk(value); - } -}; - -/** - * Walk through all properties and convert them into - * getter/setters. This method should only be called when - * value type is Object. - */ -Observer.prototype.walk = function walk (obj) { - var keys = Object.keys(obj); - for (var i = 0; i < keys.length; i++) { - defineReactive$$1(obj, keys[i]); - } -}; - -/** - * Observe a list of Array items. - */ -Observer.prototype.observeArray = function observeArray (items) { - for (var i = 0, l = items.length; i < l; i++) { - observe(items[i]); - } -}; - -// helpers - -/** - * Augment a target Object or Array by intercepting - * the prototype chain using __proto__ - */ -function protoAugment (target, src) { - /* eslint-disable no-proto */ - target.__proto__ = src; - /* eslint-enable no-proto */ -} - -/** - * Augment a target Object or Array by defining - * hidden properties. - */ -/* istanbul ignore next */ -function copyAugment (target, src, keys) { - for (var i = 0, l = keys.length; i < l; i++) { - var key = keys[i]; - def(target, key, src[key]); - } -} - -/** - * Attempt to create an observer instance for a value, - * returns the new observer if successfully observed, - * or the existing observer if the value already has one. - */ -function observe (value, asRootData) { - if (!isObject(value) || value instanceof VNode) { - return - } - var ob; - if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { - ob = value.__ob__; - } else if ( - shouldObserve && - !isServerRendering() && - (Array.isArray(value) || isPlainObject(value)) && - Object.isExtensible(value) && - !value._isVue - ) { - ob = new Observer(value); - } - if (asRootData && ob) { - ob.vmCount++; - } - return ob -} - -/** - * Define a reactive property on an Object. - */ -function defineReactive$$1 ( - obj, - key, - val, - customSetter, - shallow -) { - var dep = new Dep(); - - var property = Object.getOwnPropertyDescriptor(obj, key); - if (property && property.configurable === false) { - return - } - - // cater for pre-defined getter/setters - var getter = property && property.get; - var setter = property && property.set; - if ((!getter || setter) && arguments.length === 2) { - val = obj[key]; - } - - var childOb = !shallow && observe(val); - Object.defineProperty(obj, key, { - enumerable: true, - configurable: true, - get: function reactiveGetter () { - var value = getter ? getter.call(obj) : val; - if (Dep.target) { - dep.depend(); - if (childOb) { - childOb.dep.depend(); - if (Array.isArray(value)) { - dependArray(value); - } - } - } - return value - }, - set: function reactiveSetter (newVal) { - var value = getter ? getter.call(obj) : val; - /* eslint-disable no-self-compare */ - if (newVal === value || (newVal !== newVal && value !== value)) { - return - } - /* eslint-enable no-self-compare */ - if (customSetter) { - customSetter(); - } - // #7981: for accessor properties without setter - if (getter && !setter) { return } - if (setter) { - setter.call(obj, newVal); - } else { - val = newVal; - } - childOb = !shallow && observe(newVal); - dep.notify(); - } - }); -} - -/** - * Set a property on an object. Adds the new property and - * triggers change notification if the property doesn't - * already exist. - */ -function set (target, key, val) { - if (isUndef(target) || isPrimitive(target) - ) { - warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target)))); - } - if (Array.isArray(target) && isValidArrayIndex(key)) { - target.length = Math.max(target.length, key); - target.splice(key, 1, val); - return val - } - if (key in target && !(key in Object.prototype)) { - target[key] = val; - return val - } - var ob = (target).__ob__; - if (target._isVue || (ob && ob.vmCount)) { - warn( - 'Avoid adding reactive properties to a Vue instance or its root $data ' + - 'at runtime - declare it upfront in the data option.' - ); - return val - } - if (!ob) { - target[key] = val; - return val - } - defineReactive$$1(ob.value, key, val); - ob.dep.notify(); - return val -} - -/** - * Delete a property and trigger change if necessary. - */ -function del (target, key) { - if (isUndef(target) || isPrimitive(target) - ) { - warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target)))); - } - if (Array.isArray(target) && isValidArrayIndex(key)) { - target.splice(key, 1); - return - } - var ob = (target).__ob__; - if (target._isVue || (ob && ob.vmCount)) { - warn( - 'Avoid deleting properties on a Vue instance or its root $data ' + - '- just set it to null.' - ); - return - } - if (!hasOwn(target, key)) { - return - } - delete target[key]; - if (!ob) { - return - } - ob.dep.notify(); -} - -/** - * Collect dependencies on array elements when the array is touched, since - * we cannot intercept array element access like property getters. - */ -function dependArray (value) { - for (var e = (void 0), i = 0, l = value.length; i < l; i++) { - e = value[i]; - e && e.__ob__ && e.__ob__.dep.depend(); - if (Array.isArray(e)) { - dependArray(e); - } - } -} - -/* */ - -/** - * Option overwriting strategies are functions that handle - * how to merge a parent option value and a child option - * value into the final value. - */ -var strats = config.optionMergeStrategies; - -/** - * Options with restrictions - */ -{ - strats.el = strats.propsData = function (parent, child, vm, key) { - if (!vm) { - warn( - "option \"" + key + "\" can only be used during instance " + - 'creation with the `new` keyword.' - ); - } - return defaultStrat(parent, child) - }; -} - -/** - * Helper that recursively merges two data objects together. - */ -function mergeData (to, from) { - if (!from) { return to } - var key, toVal, fromVal; - - var keys = hasSymbol - ? Reflect.ownKeys(from) - : Object.keys(from); - - for (var i = 0; i < keys.length; i++) { - key = keys[i]; - // in case the object is already observed... - if (key === '__ob__') { continue } - toVal = to[key]; - fromVal = from[key]; - if (!hasOwn(to, key)) { - set(to, key, fromVal); - } else if ( - toVal !== fromVal && - isPlainObject(toVal) && - isPlainObject(fromVal) - ) { - mergeData(toVal, fromVal); - } - } - return to -} - -/** - * Data - */ -function mergeDataOrFn ( - parentVal, - childVal, - vm -) { - if (!vm) { - // in a Vue.extend merge, both should be functions - if (!childVal) { - return parentVal - } - if (!parentVal) { - return childVal - } - // when parentVal & childVal are both present, - // we need to return a function that returns the - // merged result of both functions... no need to - // check if parentVal is a function here because - // it has to be a function to pass previous merges. - return function mergedDataFn () { - return mergeData( - typeof childVal === 'function' ? childVal.call(this, this) : childVal, - typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal - ) - } - } else { - return function mergedInstanceDataFn () { - // instance merge - var instanceData = typeof childVal === 'function' - ? childVal.call(vm, vm) - : childVal; - var defaultData = typeof parentVal === 'function' - ? parentVal.call(vm, vm) - : parentVal; - if (instanceData) { - return mergeData(instanceData, defaultData) - } else { - return defaultData - } - } - } -} - -strats.data = function ( - parentVal, - childVal, - vm -) { - if (!vm) { - if (childVal && typeof childVal !== 'function') { - warn( - 'The "data" option should be a function ' + - 'that returns a per-instance value in component ' + - 'definitions.', - vm - ); - - return parentVal - } - return mergeDataOrFn(parentVal, childVal) - } - - return mergeDataOrFn(parentVal, childVal, vm) -}; - -/** - * Hooks and props are merged as arrays. - */ -function mergeHook ( - parentVal, - childVal -) { - var res = childVal - ? parentVal - ? parentVal.concat(childVal) - : Array.isArray(childVal) - ? childVal - : [childVal] - : parentVal; - return res - ? dedupeHooks(res) - : res -} - -function dedupeHooks (hooks) { - var res = []; - for (var i = 0; i < hooks.length; i++) { - if (res.indexOf(hooks[i]) === -1) { - res.push(hooks[i]); - } - } - return res -} - -LIFECYCLE_HOOKS.forEach(function (hook) { - strats[hook] = mergeHook; -}); - -/** - * Assets - * - * When a vm is present (instance creation), we need to do - * a three-way merge between constructor options, instance - * options and parent options. - */ -function mergeAssets ( - parentVal, - childVal, - vm, - key -) { - var res = Object.create(parentVal || null); - if (childVal) { - assertObjectType(key, childVal, vm); - return extend(res, childVal) - } else { - return res - } -} - -ASSET_TYPES.forEach(function (type) { - strats[type + 's'] = mergeAssets; -}); - -/** - * Watchers. - * - * Watchers hashes should not overwrite one - * another, so we merge them as arrays. - */ -strats.watch = function ( - parentVal, - childVal, - vm, - key -) { - // work around Firefox's Object.prototype.watch... - if (parentVal === nativeWatch) { parentVal = undefined; } - if (childVal === nativeWatch) { childVal = undefined; } - /* istanbul ignore if */ - if (!childVal) { return Object.create(parentVal || null) } - { - assertObjectType(key, childVal, vm); - } - if (!parentVal) { return childVal } - var ret = {}; - extend(ret, parentVal); - for (var key$1 in childVal) { - var parent = ret[key$1]; - var child = childVal[key$1]; - if (parent && !Array.isArray(parent)) { - parent = [parent]; - } - ret[key$1] = parent - ? parent.concat(child) - : Array.isArray(child) ? child : [child]; - } - return ret -}; - -/** - * Other object hashes. - */ -strats.props = -strats.methods = -strats.inject = -strats.computed = function ( - parentVal, - childVal, - vm, - key -) { - if (childVal && "development" !== 'production') { - assertObjectType(key, childVal, vm); - } - if (!parentVal) { return childVal } - var ret = Object.create(null); - extend(ret, parentVal); - if (childVal) { extend(ret, childVal); } - return ret -}; -strats.provide = mergeDataOrFn; - -/** - * Default strategy. - */ -var defaultStrat = function (parentVal, childVal) { - return childVal === undefined - ? parentVal - : childVal -}; - -/** - * Validate component names - */ -function checkComponents (options) { - for (var key in options.components) { - validateComponentName(key); - } -} - -function validateComponentName (name) { - if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) { - warn( - 'Invalid component name: "' + name + '". Component names ' + - 'should conform to valid custom element name in html5 specification.' - ); - } - if (isBuiltInTag(name) || config.isReservedTag(name)) { - warn( - 'Do not use built-in or reserved HTML elements as component ' + - 'id: ' + name - ); - } -} - -/** - * Ensure all props option syntax are normalized into the - * Object-based format. - */ -function normalizeProps (options, vm) { - var props = options.props; - if (!props) { return } - var res = {}; - var i, val, name; - if (Array.isArray(props)) { - i = props.length; - while (i--) { - val = props[i]; - if (typeof val === 'string') { - name = camelize(val); - res[name] = { type: null }; - } else { - warn('props must be strings when using array syntax.'); - } - } - } else if (isPlainObject(props)) { - for (var key in props) { - val = props[key]; - name = camelize(key); - res[name] = isPlainObject(val) - ? val - : { type: val }; - } - } else { - warn( - "Invalid value for option \"props\": expected an Array or an Object, " + - "but got " + (toRawType(props)) + ".", - vm - ); - } - options.props = res; -} - -/** - * Normalize all injections into Object-based format - */ -function normalizeInject (options, vm) { - var inject = options.inject; - if (!inject) { return } - var normalized = options.inject = {}; - if (Array.isArray(inject)) { - for (var i = 0; i < inject.length; i++) { - normalized[inject[i]] = { from: inject[i] }; - } - } else if (isPlainObject(inject)) { - for (var key in inject) { - var val = inject[key]; - normalized[key] = isPlainObject(val) - ? extend({ from: key }, val) - : { from: val }; - } - } else { - warn( - "Invalid value for option \"inject\": expected an Array or an Object, " + - "but got " + (toRawType(inject)) + ".", - vm - ); - } -} - -/** - * Normalize raw function directives into object format. - */ -function normalizeDirectives (options) { - var dirs = options.directives; - if (dirs) { - for (var key in dirs) { - var def$$1 = dirs[key]; - if (typeof def$$1 === 'function') { - dirs[key] = { bind: def$$1, update: def$$1 }; - } - } - } -} - -function assertObjectType (name, value, vm) { - if (!isPlainObject(value)) { - warn( - "Invalid value for option \"" + name + "\": expected an Object, " + - "but got " + (toRawType(value)) + ".", - vm - ); - } -} - -/** - * Merge two option objects into a new one. - * Core utility used in both instantiation and inheritance. - */ -function mergeOptions ( - parent, - child, - vm -) { - { - checkComponents(child); - } - - if (typeof child === 'function') { - child = child.options; - } - - normalizeProps(child, vm); - normalizeInject(child, vm); - normalizeDirectives(child); - - // Apply extends and mixins on the child options, - // but only if it is a raw options object that isn't - // the result of another mergeOptions call. - // Only merged options has the _base property. - if (!child._base) { - if (child.extends) { - parent = mergeOptions(parent, child.extends, vm); - } - if (child.mixins) { - for (var i = 0, l = child.mixins.length; i < l; i++) { - parent = mergeOptions(parent, child.mixins[i], vm); - } - } - } - - var options = {}; - var key; - for (key in parent) { - mergeField(key); - } - for (key in child) { - if (!hasOwn(parent, key)) { - mergeField(key); - } - } - function mergeField (key) { - var strat = strats[key] || defaultStrat; - options[key] = strat(parent[key], child[key], vm, key); - } - return options -} - -/** - * Resolve an asset. - * This function is used because child instances need access - * to assets defined in its ancestor chain. - */ -function resolveAsset ( - options, - type, - id, - warnMissing -) { - /* istanbul ignore if */ - if (typeof id !== 'string') { - return - } - var assets = options[type]; - // check local registration variations first - if (hasOwn(assets, id)) { return assets[id] } - var camelizedId = camelize(id); - if (hasOwn(assets, camelizedId)) { return assets[camelizedId] } - var PascalCaseId = capitalize(camelizedId); - if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] } - // fallback to prototype chain - var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; - if (warnMissing && !res) { - warn( - 'Failed to resolve ' + type.slice(0, -1) + ': ' + id, - options - ); - } - return res -} - -/* */ - - - -function validateProp ( - key, - propOptions, - propsData, - vm -) { - var prop = propOptions[key]; - var absent = !hasOwn(propsData, key); - var value = propsData[key]; - // boolean casting - var booleanIndex = getTypeIndex(Boolean, prop.type); - if (booleanIndex > -1) { - if (absent && !hasOwn(prop, 'default')) { - value = false; - } else if (value === '' || value === hyphenate(key)) { - // only cast empty string / same name to boolean if - // boolean has higher priority - var stringIndex = getTypeIndex(String, prop.type); - if (stringIndex < 0 || booleanIndex < stringIndex) { - value = true; - } - } - } - // check default value - if (value === undefined) { - value = getPropDefaultValue(vm, prop, key); - // since the default value is a fresh copy, - // make sure to observe it. - var prevShouldObserve = shouldObserve; - toggleObserving(true); - observe(value); - toggleObserving(prevShouldObserve); - } - { - assertProp(prop, key, value, vm, absent); - } - return value -} - -/** - * Get the default value of a prop. - */ -function getPropDefaultValue (vm, prop, key) { - // no default, return undefined - if (!hasOwn(prop, 'default')) { - return undefined - } - var def = prop.default; - // warn against non-factory defaults for Object & Array - if (isObject(def)) { - warn( - 'Invalid default value for prop "' + key + '": ' + - 'Props with type Object/Array must use a factory function ' + - 'to return the default value.', - vm - ); - } - // the raw prop value was also undefined from previous render, - // return previous default value to avoid unnecessary watcher trigger - if (vm && vm.$options.propsData && - vm.$options.propsData[key] === undefined && - vm._props[key] !== undefined - ) { - return vm._props[key] - } - // call factory function for non-Function types - // a value is Function if its prototype is function even across different execution context - return typeof def === 'function' && getType(prop.type) !== 'Function' - ? def.call(vm) - : def -} - -/** - * Assert whether a prop is valid. - */ -function assertProp ( - prop, - name, - value, - vm, - absent -) { - if (prop.required && absent) { - warn( - 'Missing required prop: "' + name + '"', - vm - ); - return - } - if (value == null && !prop.required) { - return - } - var type = prop.type; - var valid = !type || type === true; - var expectedTypes = []; - if (type) { - if (!Array.isArray(type)) { - type = [type]; - } - for (var i = 0; i < type.length && !valid; i++) { - var assertedType = assertType(value, type[i], vm); - expectedTypes.push(assertedType.expectedType || ''); - valid = assertedType.valid; - } - } - - var haveExpectedTypes = expectedTypes.some(function (t) { return t; }); - if (!valid && haveExpectedTypes) { - warn( - getInvalidTypeMessage(name, value, expectedTypes), - vm - ); - return - } - var validator = prop.validator; - if (validator) { - if (!validator(value)) { - warn( - 'Invalid prop: custom validator check failed for prop "' + name + '".', - vm - ); - } - } -} - -var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/; - -function assertType (value, type, vm) { - var valid; - var expectedType = getType(type); - if (simpleCheckRE.test(expectedType)) { - var t = typeof value; - valid = t === expectedType.toLowerCase(); - // for primitive wrapper objects - if (!valid && t === 'object') { - valid = value instanceof type; - } - } else if (expectedType === 'Object') { - valid = isPlainObject(value); - } else if (expectedType === 'Array') { - valid = Array.isArray(value); - } else { - try { - valid = value instanceof type; - } catch (e) { - warn('Invalid prop type: "' + String(type) + '" is not a constructor', vm); - valid = false; - } - } - return { - valid: valid, - expectedType: expectedType - } -} - -var functionTypeCheckRE = /^\s*function (\w+)/; - -/** - * Use function string name to check built-in types, - * because a simple equality check will fail when running - * across different vms / iframes. - */ -function getType (fn) { - var match = fn && fn.toString().match(functionTypeCheckRE); - return match ? match[1] : '' -} - -function isSameType (a, b) { - return getType(a) === getType(b) -} - -function getTypeIndex (type, expectedTypes) { - if (!Array.isArray(expectedTypes)) { - return isSameType(expectedTypes, type) ? 0 : -1 - } - for (var i = 0, len = expectedTypes.length; i < len; i++) { - if (isSameType(expectedTypes[i], type)) { - return i - } - } - return -1 -} - -function getInvalidTypeMessage (name, value, expectedTypes) { - var message = "Invalid prop: type check failed for prop \"" + name + "\"." + - " Expected " + (expectedTypes.map(capitalize).join(', ')); - var expectedType = expectedTypes[0]; - var receivedType = toRawType(value); - // check if we need to specify expected value - if ( - expectedTypes.length === 1 && - isExplicable(expectedType) && - isExplicable(typeof value) && - !isBoolean(expectedType, receivedType) - ) { - message += " with value " + (styleValue(value, expectedType)); - } - message += ", got " + receivedType + " "; - // check if we need to specify received value - if (isExplicable(receivedType)) { - message += "with value " + (styleValue(value, receivedType)) + "."; - } - return message -} - -function styleValue (value, type) { - if (type === 'String') { - return ("\"" + value + "\"") - } else if (type === 'Number') { - return ("" + (Number(value))) - } else { - return ("" + value) - } -} - -var EXPLICABLE_TYPES = ['string', 'number', 'boolean']; -function isExplicable (value) { - return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; }) -} - -function isBoolean () { - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; }) -} - -/* */ - -function handleError (err, vm, info) { - // Deactivate deps tracking while processing error handler to avoid possible infinite rendering. - // See: https://github.com/vuejs/vuex/issues/1505 - pushTarget(); - try { - if (vm) { - var cur = vm; - while ((cur = cur.$parent)) { - var hooks = cur.$options.errorCaptured; - if (hooks) { - for (var i = 0; i < hooks.length; i++) { - try { - var capture = hooks[i].call(cur, err, vm, info) === false; - if (capture) { return } - } catch (e) { - globalHandleError(e, cur, 'errorCaptured hook'); - } - } - } - } - } - globalHandleError(err, vm, info); - } finally { - popTarget(); - } -} - -function invokeWithErrorHandling ( - handler, - context, - args, - vm, - info -) { - var res; - try { - res = args ? handler.apply(context, args) : handler.call(context); - if (res && !res._isVue && isPromise(res) && !res._handled) { - res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); }); - // issue #9511 - // avoid catch triggering multiple times when nested calls - res._handled = true; - } - } catch (e) { - handleError(e, vm, info); - } - return res -} - -function globalHandleError (err, vm, info) { - if (config.errorHandler) { - try { - return config.errorHandler.call(null, err, vm, info) - } catch (e) { - // if the user intentionally throws the original error in the handler, - // do not log it twice - if (e !== err) { - logError(e, null, 'config.errorHandler'); - } - } - } - logError(err, vm, info); -} - -function logError (err, vm, info) { - { - warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm); - } - /* istanbul ignore else */ - if ((inBrowser || inWeex) && typeof console !== 'undefined') { - console.error(err); - } else { - throw err - } -} - -/* */ - -var isUsingMicroTask = false; - -var callbacks = []; -var pending = false; - -function flushCallbacks () { - pending = false; - var copies = callbacks.slice(0); - callbacks.length = 0; - for (var i = 0; i < copies.length; i++) { - copies[i](); - } -} - -// Here we have async deferring wrappers using microtasks. -// In 2.5 we used (macro) tasks (in combination with microtasks). -// However, it has subtle problems when state is changed right before repaint -// (e.g. #6813, out-in transitions). -// Also, using (macro) tasks in event handler would cause some weird behaviors -// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109). -// So we now use microtasks everywhere, again. -// A major drawback of this tradeoff is that there are some scenarios -// where microtasks have too high a priority and fire in between supposedly -// sequential events (e.g. #4521, #6690, which have workarounds) -// or even between bubbling of the same event (#6566). -var timerFunc; - -// The nextTick behavior leverages the microtask queue, which can be accessed -// via either native Promise.then or MutationObserver. -// MutationObserver has wider support, however it is seriously bugged in -// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It -// completely stops working after triggering a few times... so, if native -// Promise is available, we will use it: -/* istanbul ignore next, $flow-disable-line */ -if (typeof Promise !== 'undefined' && isNative(Promise)) { - var p = Promise.resolve(); - timerFunc = function () { - p.then(flushCallbacks); - // In problematic UIWebViews, Promise.then doesn't completely break, but - // it can get stuck in a weird state where callbacks are pushed into the - // microtask queue but the queue isn't being flushed, until the browser - // needs to do some other work, e.g. handle a timer. Therefore we can - // "force" the microtask queue to be flushed by adding an empty timer. - if (isIOS) { setTimeout(noop); } - }; - isUsingMicroTask = true; -} else if (!isIE && typeof MutationObserver !== 'undefined' && ( - isNative(MutationObserver) || - // PhantomJS and iOS 7.x - MutationObserver.toString() === '[object MutationObserverConstructor]' -)) { - // Use MutationObserver where native Promise is not available, - // e.g. PhantomJS, iOS7, Android 4.4 - // (#6466 MutationObserver is unreliable in IE11) - var counter = 1; - var observer = new MutationObserver(flushCallbacks); - var textNode = document.createTextNode(String(counter)); - observer.observe(textNode, { - characterData: true - }); - timerFunc = function () { - counter = (counter + 1) % 2; - textNode.data = String(counter); - }; - isUsingMicroTask = true; -} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { - // Fallback to setImmediate. - // Technically it leverages the (macro) task queue, - // but it is still a better choice than setTimeout. - timerFunc = function () { - setImmediate(flushCallbacks); - }; -} else { - // Fallback to setTimeout. - timerFunc = function () { - setTimeout(flushCallbacks, 0); - }; -} - -function nextTick (cb, ctx) { - var _resolve; - callbacks.push(function () { - if (cb) { - try { - cb.call(ctx); - } catch (e) { - handleError(e, ctx, 'nextTick'); - } - } else if (_resolve) { - _resolve(ctx); - } - }); - if (!pending) { - pending = true; - timerFunc(); - } - // $flow-disable-line - if (!cb && typeof Promise !== 'undefined') { - return new Promise(function (resolve) { - _resolve = resolve; - }) - } -} - -/* */ - -/* not type checking this file because flow doesn't play well with Proxy */ - -var initProxy; - -{ - var allowedGlobals = makeMap( - 'Infinity,undefined,NaN,isFinite,isNaN,' + - 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + - 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' + - 'require' // for Webpack/Browserify - ); - - var warnNonPresent = function (target, key) { - warn( - "Property or method \"" + key + "\" is not defined on the instance but " + - 'referenced during render. Make sure that this property is reactive, ' + - 'either in the data option, or for class-based components, by ' + - 'initializing the property. ' + - 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', - target - ); - }; - - var warnReservedPrefix = function (target, key) { - warn( - "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " + - 'properties starting with "$" or "_" are not proxied in the Vue instance to ' + - 'prevent conflicts with Vue internals. ' + - 'See: https://vuejs.org/v2/api/#data', - target - ); - }; - - var hasProxy = - typeof Proxy !== 'undefined' && isNative(Proxy); - - if (hasProxy) { - var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact'); - config.keyCodes = new Proxy(config.keyCodes, { - set: function set (target, key, value) { - if (isBuiltInModifier(key)) { - warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key)); - return false - } else { - target[key] = value; - return true - } - } - }); - } - - var hasHandler = { - has: function has (target, key) { - var has = key in target; - var isAllowed = allowedGlobals(key) || - (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data)); - if (!has && !isAllowed) { - if (key in target.$data) { warnReservedPrefix(target, key); } - else { warnNonPresent(target, key); } - } - return has || !isAllowed - } - }; - - var getHandler = { - get: function get (target, key) { - if (typeof key === 'string' && !(key in target)) { - if (key in target.$data) { warnReservedPrefix(target, key); } - else { warnNonPresent(target, key); } - } - return target[key] - } - }; - - initProxy = function initProxy (vm) { - if (hasProxy) { - // determine which proxy handler to use - var options = vm.$options; - var handlers = options.render && options.render._withStripped - ? getHandler - : hasHandler; - vm._renderProxy = new Proxy(vm, handlers); - } else { - vm._renderProxy = vm; - } - }; -} - -/* */ - -var seenObjects = new _Set(); - -/** - * Recursively traverse an object to evoke all converted - * getters, so that every nested property inside the object - * is collected as a "deep" dependency. - */ -function traverse (val) { - _traverse(val, seenObjects); - seenObjects.clear(); -} - -function _traverse (val, seen) { - var i, keys; - var isA = Array.isArray(val); - if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) { - return - } - if (val.__ob__) { - var depId = val.__ob__.dep.id; - if (seen.has(depId)) { - return - } - seen.add(depId); - } - if (isA) { - i = val.length; - while (i--) { _traverse(val[i], seen); } - } else { - keys = Object.keys(val); - i = keys.length; - while (i--) { _traverse(val[keys[i]], seen); } - } -} - -var mark; -var measure; - -{ - var perf = inBrowser && window.performance; - /* istanbul ignore if */ - if ( - perf && - perf.mark && - perf.measure && - perf.clearMarks && - perf.clearMeasures - ) { - mark = function (tag) { return perf.mark(tag); }; - measure = function (name, startTag, endTag) { - perf.measure(name, startTag, endTag); - perf.clearMarks(startTag); - perf.clearMarks(endTag); - // perf.clearMeasures(name) - }; - } -} - -/* */ - -var normalizeEvent = cached(function (name) { - var passive = name.charAt(0) === '&'; - name = passive ? name.slice(1) : name; - var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first - name = once$$1 ? name.slice(1) : name; - var capture = name.charAt(0) === '!'; - name = capture ? name.slice(1) : name; - return { - name: name, - once: once$$1, - capture: capture, - passive: passive - } -}); - -function createFnInvoker (fns, vm) { - function invoker () { - var arguments$1 = arguments; - - var fns = invoker.fns; - if (Array.isArray(fns)) { - var cloned = fns.slice(); - for (var i = 0; i < cloned.length; i++) { - invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler"); - } - } else { - // return handler return value for single handlers - return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler") - } - } - invoker.fns = fns; - return invoker -} - -function updateListeners ( - on, - oldOn, - add, - remove$$1, - createOnceHandler, - vm -) { - var name, def$$1, cur, old, event; - for (name in on) { - def$$1 = cur = on[name]; - old = oldOn[name]; - event = normalizeEvent(name); - if (isUndef(cur)) { - warn( - "Invalid handler for event \"" + (event.name) + "\": got " + String(cur), - vm - ); - } else if (isUndef(old)) { - if (isUndef(cur.fns)) { - cur = on[name] = createFnInvoker(cur, vm); - } - if (isTrue(event.once)) { - cur = on[name] = createOnceHandler(event.name, cur, event.capture); - } - add(event.name, cur, event.capture, event.passive, event.params); - } else if (cur !== old) { - old.fns = cur; - on[name] = old; - } - } - for (name in oldOn) { - if (isUndef(on[name])) { - event = normalizeEvent(name); - remove$$1(event.name, oldOn[name], event.capture); - } - } -} - -/* */ - -function mergeVNodeHook (def, hookKey, hook) { - if (def instanceof VNode) { - def = def.data.hook || (def.data.hook = {}); - } - var invoker; - var oldHook = def[hookKey]; - - function wrappedHook () { - hook.apply(this, arguments); - // important: remove merged hook to ensure it's called only once - // and prevent memory leak - remove(invoker.fns, wrappedHook); - } - - if (isUndef(oldHook)) { - // no existing hook - invoker = createFnInvoker([wrappedHook]); - } else { - /* istanbul ignore if */ - if (isDef(oldHook.fns) && isTrue(oldHook.merged)) { - // already a merged invoker - invoker = oldHook; - invoker.fns.push(wrappedHook); - } else { - // existing plain hook - invoker = createFnInvoker([oldHook, wrappedHook]); - } - } - - invoker.merged = true; - def[hookKey] = invoker; -} - -/* */ - -function extractPropsFromVNodeData ( - data, - Ctor, - tag -) { - // we are only extracting raw values here. - // validation and default values are handled in the child - // component itself. - var propOptions = Ctor.options.props; - if (isUndef(propOptions)) { - return - } - var res = {}; - var attrs = data.attrs; - var props = data.props; - if (isDef(attrs) || isDef(props)) { - for (var key in propOptions) { - var altKey = hyphenate(key); - { - var keyInLowerCase = key.toLowerCase(); - if ( - key !== keyInLowerCase && - attrs && hasOwn(attrs, keyInLowerCase) - ) { - tip( - "Prop \"" + keyInLowerCase + "\" is passed to component " + - (formatComponentName(tag || Ctor)) + ", but the declared prop name is" + - " \"" + key + "\". " + - "Note that HTML attributes are case-insensitive and camelCased " + - "props need to use their kebab-case equivalents when using in-DOM " + - "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"." - ); - } - } - checkProp(res, props, key, altKey, true) || - checkProp(res, attrs, key, altKey, false); - } - } - return res -} - -function checkProp ( - res, - hash, - key, - altKey, - preserve -) { - if (isDef(hash)) { - if (hasOwn(hash, key)) { - res[key] = hash[key]; - if (!preserve) { - delete hash[key]; - } - return true - } else if (hasOwn(hash, altKey)) { - res[key] = hash[altKey]; - if (!preserve) { - delete hash[altKey]; - } - return true - } - } - return false -} - -/* */ - -// The template compiler attempts to minimize the need for normalization by -// statically analyzing the template at compile time. -// -// For plain HTML markup, normalization can be completely skipped because the -// generated render function is guaranteed to return Array. There are -// two cases where extra normalization is needed: - -// 1. When the children contains components - because a functional component -// may return an Array instead of a single root. In this case, just a simple -// normalization is needed - if any child is an Array, we flatten the whole -// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep -// because functional components already normalize their own children. -function simpleNormalizeChildren (children) { - for (var i = 0; i < children.length; i++) { - if (Array.isArray(children[i])) { - return Array.prototype.concat.apply([], children) - } - } - return children -} - -// 2. When the children contains constructs that always generated nested Arrays, -// e.g.